summaryrefslogtreecommitdiff
path: root/macros.in
blob: b085760f21110d59228fa986a7d8975475fcd2a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#==============================================================================
# Macro naming conventions (preliminary):
#
#	Macros that begin with an underscore are "local" in the sense that
#	they (if used) will not be exported in rpm headers.
#

#==============================================================================
# ---- filesystem macros.
#
%_usr			@prefix@
%_usrsrc		%{_usr}/src
%_var			@varprefix@

#==============================================================================
# ---- path macros
#
%__bzip2                 %(which bzip2)
%__cat                   %(which cat)
%__chgrp                 %(which chgrp)
%__chmod                 %(which chmod)
%__chown                 %(which chown)
%__gzip                  %(which gzip)
%__install               %(which install)
%__libtoolize            %(which libtoolize)
%__make                  %(which make)
%__mkdir                 %(which mkdir)
%__patch                 %(which patch)
%__ranlib                %(which ranlib)
%__rm                    %(which rm)
%__strip                 %(which strip)
%__tar                   %(which tar)

#==============================================================================
# ---- rpmrc macros.
#	Macros that are initialized as a side effect of rpmrc parsing.
#	These are the default values that will be overridden by any
#	explicit values found in /usr/lib/rpm/rpmrc or /etc/rpmrc.
#
%_buildarch		Unknown
%_builddir		%{_topdir}/BUILD
%_buildos		Linux
%_bzip2bin		@BZIP2BIN@
%_dbpath		%{_var}/lib/rpm
%_defaultdocdir		/usr/doc
%_fixperms		@FIXPERMS@
%_gzipbin		@GZIPBIN@
%_rpmdir		%{_topdir}/RPMS
%_rpmfilename		%{ARCH}/%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm
%_sourcedir		%{_topdir}/SOURCES
%_specdir		%{_topdir}/SPECS
%_srcrpmdir		%{_topdir}/SRPMS
%_tmppath		%{_var}/tmp
%_topdir		%{_usrsrc}/redhat
#
# XXX use the rpmrc instantiated macro for now
#%optflags		-O2

#==============================================================================
# ---- script environment macros.
#	Macro(s) that establish the environment for running a script.
#
%_preScriptEnvironment	\
	RPM_SOURCE_DIR=\"%{_sourcedir}\"\
	RPM_BUILD_DIR=\"%{_builddir}\"\
	RPM_OPT_FLAGS=\"%{optflags}\"\
	RPM_ARCH=\"%{_target_cpu}\"\
	RPM_OS=\"%{_target_os}\"\
	export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS\
	RPM_DOC_DIR=\"%{_docdir}\"\
	export RPM_DOC_DIR\
	RPM_PACKAGE_NAME=\"%{name}\"\
	RPM_PACKAGE_VERSION=\"%{version}\"\
	RPM_PACKAGE_RELEASE=\"%{release}\"\
	export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\
	%{?buildroot:RPM_BUILD_ROOT=\"%{buildroot}\"\
	export RPM_BUILD_ROOT\
	}

#==============================================================================
# ---- configure macros.
#	Macro(s) similar to those used by configure.
#
%_prefix		@prefix@
%_build			%{_host}
%_build_alias		%{_host_alias}
%_build_cpu		%{_host_cpu}
%_build_vendor		%{_host_vendor}
%_build_os		%{_host_os}
%_host			@host@
%_host_alias		@host_alias@
%_host_cpu		@host_cpu@
%_host_vendor		@host_vendor@
%_host_os		@host_os@
%_target		%{_host}
%_target_alias		%{_host_alias)
%_target_cpu		%{_host_cpu)
%_target_vendor		%{_host_vendor)
%_target_os		%{_host_os)

#==============================================================================
# ---- specfile macros.
#	Macro(s) here can be used reliably for reproducible builds.
#	(Note: Above is the goal, below are the macros under development)
#
# The configure macro does the following:
#	optionally change to a subdirectory.
#	attempt to update onfig.guess and config.sub.
#	run configure with correct prefix, platform, and CFLAGS.
#	optionally restore current directory.
# The configure macro should be invoked as %configure (rather than %{configure})
# because the rest of the arguments will be expanded using %*. Another
# gotcha is that arguments, if present, should be on the same line as the
# %configure.
#
%configure	\
  %{?__libtoolize:[ -f configure.in ] && %{__libtoolize} --copy --force} \
  CFLAGS="%{optflags}" ./configure %{_target} --prefix=%{_prefix}