===== RPM Macros ===== Here are the definitions for some common specfile macros as they are defined on Fedora 13 (rpm-4.8.0-14.fc13). For definitions of more macros, examine the output of "rpm --showrc". To see the expanded definition of a macro use the command rpm --eval "%{macro}". Note that neither command will take into account macros defined inside specfiles, but both will take into account macros defined in your ~/.rpmmacros file and macros defined on the command line. Keep in mind that some of these macros may evaluate differently on older Fedora or EPEL releases. ==== Macros mimicking autoconf variables ==== %{_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 Differences in EPEL 4 & 5 * **%{_initddir}** does not exist in EPEL 4 & 5, use the deprecated **%{_initrddir}** macro instead * **%{_sharedstatedir}** expands to **%{_prefix}/com** in EPEL 4 & 5 ==== Other macros and variables for paths ==== These macros should be used for paths that are not covered by the macros mimicking autoconf variables. The %{buildroot} macro or the $RPM_BUILD_ROOT variable is the directory that should be assumed to be the root file system when installing files. Is is used as the value for the DESTDIR variable. %{_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} ==== Build flags macros and variables ==== These macros should be used as flags for the compiler or linker. Note that the values for the macros below reflect the settings on Fedora 13 (i686) with redhat-rpm-config installed. %{__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} ==== RPM directory macros ==== The macros are usually used with rpmbuild --define to specify which directories rpmbuild should use, it is unusual to use them within SPEC files. %{_topdir} %{getenv:HOME}/rpmbuild %{_builddir} %{_topdir}/BUILD %{_rpmdir} %{_topdir}/RPMS %{_sourcedir} %{_topdir}/SOURCES %{_specdir} %{_topdir}/SPECS %{_srcrpmdir} %{_topdir}/SRPMS %{_buildrootdir} %{_topdir}/BUILDROOT **%{_buildrootdir}** does not exist in EPEL 4 & 5 {{tag> rpm }}