Cet article présente les listes des macros courantes :
Aucune de ces commandes ne prendra en compte les macros définies dans les fichiers de spécifications, mais les deux prendront en compte les macros définies dans le fichier ~ /.rpmmacros et les macros définies sur la ligne de commande.
Certaines de ces macros peuvent être évaluées différemment en fonction des versions de Fedora ou EPEL.
Macro | Valeur retournée |
---|---|
%{_sysconfdir} | /etc |
%{_prefix} | /usr |
%{_exec_prefix} | %{_prefix} |
%{_bindir} | %{_exec_prefix}/bin |
%{_libdir} | %{_exec_prefix}/%{_lib} |
%{_libexecdir} | %{_exec_prefix}/libexec |
%{_sbindir} | %{_exec_prefix}/sbin |
%{_sharedstatedir} | /var/lib |
%{_datarootdir} | %{_prefix}/share |
%{_datadir} | %{_datarootdir} |
%{_includedir} | %{_prefix}/include |
%{_infodir} | /usr/share/info |
%{_mandir} | /usr/share/man |
%{_localstatedir} | /var |
%{_initddir} | %{_sysconfdir}/rc.d/init.d |
Ces macros doivent être utilisées pour les chemins qui ne sont pas couverts par les macros imitant les variables autoconf. La macro% {buildroot} ou la variable $RPM_BUILD_ROOT est le répertoire qui doit être supposé être le système de fichiers racine lors de l'installation de fichiers. Il est utilisé comme valeur pour la variable DESTDIR.
Macro | Valeur retournée |
---|---|
%{_var} | /var |
%{_tmppath} | %{_var}/tmp |
%{_usr} | /usr |
%{_usrsrc} | %{_usr}/src |
%{_lib} | lib (lib64 on 64bit multilib systems) |
%{_docdir} | %{_datadir}/doc |
%{buildroot} | %{_buildrootdir}/%{name}-%{version}-%{release}.%{_arch} |
RPM_BUILD_ROOT | %{buildroot} |
Ces macros doivent être utilisées comme indicateurs pour le compilateur ou l'éditeur de liens.
Les valeurs des macros ci-dessous reflètent les paramètres de Fedora 13 (i686) avec redhat-rpm-config installé.
Macro | Valeur retournée |
---|---|
%{__global_cflags} | -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 |
%{optflags} | %{__global_cflags} -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables |
RPM_OPT_FLAGS | %{optflags} |
Les macros sont généralement utilisées avec rpmbuild –define pour spécifier les répertoires que rpmbuild doit utiliser. Il est inhabituel de les utiliser dans des fichiers SPEC.
Macro | Valeur retournée |
---|---|
%{_topdir} | %{getenv:HOME}/rpmbuild |
%{_builddir} | %{_topdir}/BUILD |
%{_rpmdir} | %{_topdir}/RPMS |
%{_sourcedir} | %{_topdir}/SOURCES |
%{_specdir} | %{_topdir}/SPECS |
%{_srcrpmdir} | %{_topdir}/SRPMS |
%{_buildrootdir} | %{_topdir}/BUILDROOT |
Toutes les macros définies dans ~/.rpmmacros remplacent les macros système, ainsi dans l'exemple suivant :
%_topdir% (echo $HOME)/rpmbuild %_smp_mflags -j3 %__arch_install_post /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot