1AM_CPPFLAGS = \
2	-include config.h \
3	-I$(top_srcdir)/include \
4	-DLOCALEDIR=\"$(localedir)\" \
5	-D_PATH_RUNSTATEDIR=\"${runstatedir}\" \
6	-D_PATH_SYSCONFSTATICDIR=\"${sysconfstaticdir}\"
7
8if USE_VENDORDIR
9AM_CPPFLAGS += \
10	-D_PATH_VENDORDIR=\"${vendordir}\"
11endif
12
13AM_CFLAGS = -fsigned-char $(WARN_CFLAGS)
14AM_LDFLAGS = $(ASAN_LDFLAGS) $(UBSAN_LDFLAGS)
15
16# Add gettext stuff to the global LDADD for systems with separate libintl
17# library. The LTLIBINTL is generated by AM_GNU_GETTEXT macro.
18#
19LDADD = $(LTLIBINTL)
20
21# Automake (at least up to 1.10) mishandles dist_man_MANS inside conditionals.
22# Unlike with other dist primaries, the files are not distributed if the
23# conditional is false.
24# Work the bug around until it is fixed:
25dist_noinst_DATA = $(dist_man_MANS)
26
27# Paths to in-tree libraries (use ul_ prefix to avoid possible collisions) Note
28# that blkid.h, libmount.h, libfdisk.h and libsmartcols.h are generated and
29# stored in build dirs.
30#
31ul_libblkid_incdir = $(top_builddir)/libblkid/src
32ul_libmount_incdir = $(top_builddir)/libmount/src
33ul_libsmartcols_incdir = $(top_builddir)/libsmartcols/src
34ul_libfdisk_incdir  = $(top_builddir)/libfdisk/src
35
36ul_libuuid_incdir  = $(top_srcdir)/libuuid/src
37
38bashcompletiondir = @bashcompletiondir@
39
40dist_noinst_HEADERS =
41noinst_PROGRAMS =
42noinst_LTLIBRARIES =
43usrbin_exec_PROGRAMS =
44usrsbin_exec_PROGRAMS =
45dist_man_MANS =
46man_MANS =
47pkgconfig_DATA =
48usrlib_exec_LTLIBRARIES =
49bin_PROGRAMS =
50sbin_PROGRAMS =
51dist_usrbin_exec_SCRIPTS =
52systemdsystemunit_DATA =
53dist_bashcompletion_DATA =
54check_PROGRAMS =
55dist_check_SCRIPTS =
56
57PATHFILES =
58
59INSTALL_EXEC_HOOKS =
60UNINSTALL_HOOKS =
61INSTALL_DATA_HOOKS =
62CLEAN_LOCALS =
63CHECK_LOCALS =
64
65EXTRA_DIST =
66CLEANFILES =
67
68SUBDIRS = # po
69
70RCS_FIND_IGNORE = \( -name SCCS -o -name BitKeeper -o -name .svn -o \
71		-name CVS -o -name .pc -o -name .hg -o -name .git \) -prune -o
72
73ACLOCAL_AMFLAGS = -I m4
74
75EXTRA_DIST += \
76	.version \
77	autogen.sh \
78	Documentation \
79	README.licensing
80
81include tools/Makemodule.am
82include include/Makemodule.am
83include lib/Makemodule.am
84include libuuid/Makemodule.am
85include libblkid/Makemodule.am
86include libmount/Makemodule.am
87include libsmartcols/Makemodule.am
88include libfdisk/Makemodule.am
89
90include schedutils/Makemodule.am
91include text-utils/Makemodule.am
92include term-utils/Makemodule.am
93include login-utils/Makemodule.am
94include sys-utils/Makemodule.am
95include misc-utils/Makemodule.am
96include disk-utils/Makemodule.am
97
98include bash-completion/Makemodule.am
99
100include tests/Makemodule.am
101
102# pylibmountexec module must be installed after usrlib_exec libraries,
103# otherwise the libtool relink step will fail to find libmount.la and
104# will try -lmount which is possibly not available.
105#
106# So introduce this dependency rule:
107# install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
108@verbatim_pylibmount_dependency@
109
110#
111# Don't rely on configure.ac AC_CONFIG_FILES for install paths.
112#
113# The paths should be expanded at make time rather than configure:
114#  - to support 'make install prefix=/foo DESTDIR=/foo'
115#  - to recursively expands the paths (e.g. AC_CONFIG_FILES expands
116#    '@usrsbin_execdir@' to ${exec_prefix}/sbin')
117#
118edit_cmd = sed \
119	 -e 's|@prefix[@]|$(prefix)|g' \
120	 -e 's|@exec_prefix[@]|$(exec_prefix)|g' \
121	 -e 's|@sysconfdir[@]|$(sysconfdir)|g' \
122	 -e 's|@datadir[@]|$(datadir)|g' \
123	 -e 's|@sbindir[@]|$(sbindir)|g' \
124	 -e 's|@bindir[@]|$(bindir)|g' \
125	 -e 's|@docdir[@]|$(docdir)|g' \
126	 -e 's|@includedir[@]|$(includedir)|g' \
127	 -e 's|@runstatedir[@]|$(runstatedir)|g' \
128	 -e 's|@usrlib_execdir[@]|$(usrlib_execdir)|g' \
129	 -e 's|@usrbin_execdir[@]|$(usrbin_execdir)|g' \
130	 -e 's|@usrsbin_execdir[@]|$(usrsbin_execdir)|g' \
131	 -e 's|@VERSION[@]|$(VERSION)|g' \
132	 -e 's|@ADJTIME_PATH[@]|$(ADJTIME_PATH)|g' \
133	 -e 's|@LIBUUID_VERSION[@]|$(LIBUUID_VERSION)|g' \
134	 -e 's|@LIBMOUNT_VERSION[@]|$(LIBMOUNT_VERSION)|g' \
135	 -e 's|@LIBMOUNT_MAJOR_VERSION[@]|$(LIBMOUNT_MAJOR_VERSION)|g' \
136	 -e 's|@LIBMOUNT_MINOR_VERSION[@]|$(LIBMOUNT_MINOR_VERSION)|g' \
137	 -e 's|@LIBMOUNT_PATCH_VERSION[@]|$(LIBMOUNT_PATCH_VERSION)|g' \
138	 -e 's|@LIBSMARTCOLS_VERSION[@]|$(LIBSMARTCOLS_VERSION)|g' \
139	 -e 's|@LIBFDISK_PC_REQUIRES[@]|$(LIBFDISK_PC_REQUIRES)|g' \
140	 -e 's|@LIBFDISK_VERSION[@]|$(LIBFDISK_VERSION)|g' \
141	 -e 's|@LIBFDISK_MAJOR_VERSION[@]|$(LIBFDISK_MAJOR_VERSION)|g' \
142	 -e 's|@LIBFDISK_MINOR_VERSION[@]|$(LIBFDISK_MINOR_VERSION)|g' \
143	 -e 's|@LIBFDISK_PATCH_VERSION[@]|$(LIBFDISK_PATCH_VERSION)|g' \
144	 -e 's|@LIBBLKID_VERSION[@]|$(LIBBLKID_VERSION)|g'
145
146if HAVE_SELINUX
147edit_cmd += -e 's|@LIBSELINUX[@]|libselinux|g'
148else
149edit_cmd += -e 's|@LIBSELINUX[@]||g'
150endif
151
152if HAVE_CRYPTSETUP
153if CRYPTSETUP_VIA_DLOPEN
154edit_cmd += -e 's|@LIBCRYPTSETUP[@]||g'
155edit_cmd += -e 's|@LIBDL[@]|-ldl|g'
156else
157edit_cmd += -e 's|@LIBCRYPTSETUP[@]|libcryptsetup|g'
158edit_cmd += -e 's|@LIBDL[@]||g'
159endif
160else
161edit_cmd += -e 's|@LIBCRYPTSETUP[@]||g'
162edit_cmd += -e 's|@LIBDL[@]||g'
163endif
164
165if USE_VENDORDIR
166edit_cmd += -e 's|@vendordir[@]|$(vendordir)|g'
167else
168edit_cmd += -e 's|@vendordir[@]||g'
169endif
170
171CLEANFILES += $(PATHFILES)
172EXTRA_DIST += $(PATHFILES:=.in)
173
174$(PATHFILES): Makefile
175	@ rm -f $@ $@.tmp
176	$(AM_V_at) $(MKDIR_P) $$(dirname $@)
177	$(AM_V_GEN) srcdir=''; \
178		test -f ./$@.in || srcdir=$(srcdir)/; \
179		$(edit_cmd) $${srcdir}$@.in >$@.tmp
180	@ mv $@.tmp $@
181
182# Arrange so that .tarball-version appears only in the distribution
183# tarball, and never in a checked-out repository.
184dist-hook:
185	echo $(VERSION) > $(distdir)/.tarball-version
186# Set ChangeLog tag reference.
187	sed -i "s!log!log?h=v$(VERSION)!" $(distdir)/ChangeLog
188
189distclean-local:
190	-find . -name \*~ -o -name \*.orig -o -name \*.rej | xargs rm -f
191	rm -rf autom4te.cache
192
193
194checkincludes:
195	@find * $(RCS_FIND_IGNORE) \
196		-name '*.[hcS]' -type f -print | sort -u \
197		| xargs $(top_srcdir)/tools/checkincludes.pl
198
199checkconfig:
200	@find * $(RCS_FIND_IGNORE) \
201		-name '*.[hcS]' -type f -print | sort -u \
202		| xargs $(top_srcdir)/tools/checkconfig.sh $(top_srcdir)
203
204checkmans:
205	@$(top_srcdir)/tools/checkmans.sh
206
207checkxalloc:
208	@ $(top_srcdir)/tools/checkxalloc.sh
209
210checkdecl:
211	@ $(top_srcdir)/tools/checkdecl.sh
212
213checkcompletion:
214	@ $(top_srcdir)/tools/checkcompletion.sh $(top_srcdir)
215
216checkusage:
217	@ $(top_srcdir)/tools/checkusage.sh \
218		$(bin_PROGRAMS) $(sbin_PROGRAMS) \
219		$(usrbin_exec_PROGRAMS) $(usrsbin_exec_PROGRAMS)
220checklibdoc:
221	@ $(top_srcdir)/tools/checklibdocs.sh \
222		$(top_srcdir)/libmount/src/libmount.sym \
223		$(top_srcdir)/libmount/docs/libmount-sections.txt
224	@ $(top_srcdir)/tools/checklibdocs.sh \
225		$(top_srcdir)/libfdisk/src/libfdisk.sym \
226		$(top_srcdir)/libfdisk/docs/libfdisk-sections.txt
227	@ $(top_srcdir)/tools/checklibdocs.sh \
228		$(top_srcdir)/libsmartcols/src/libsmartcols.sym \
229		$(top_srcdir)/libsmartcols/docs/libsmartcols-sections.txt
230	@ $(top_srcdir)/tools/checklibdocs.sh \
231		$(top_srcdir)/libblkid/src/libblkid.sym \
232		$(top_srcdir)/libblkid/docs/libblkid-sections.txt
233
234DISTCHECK_CONFIGURE_FLAGS = \
235	--disable-use-tty-group \
236	--disable-silent-rules \
237	--enable-all-programs \
238	--disable-makeinstall-chown \
239	--enable-static-programs \
240	--enable-gtk-doc \
241	--with-python \
242	--with-bashcompletiondir=$$dc_install_base/$(bashcompletiondir) \
243	--with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
244
245BUILT_SOURCES = .version
246.version:
247	echo $(VERSION) > $@-t && mv $@-t $@
248
249CHANGELOG_FILE = v$(VERSION)-ChangeLog
250
251$(CHANGELOG_FILE):
252	@ if test "x$$PREVIOUS_VERSION" == "x"; then \
253		echo "Usage make changelog PREVIOUS_VERSION=<version>"; \
254		exit 1; \
255	fi
256	@ echo "Changes between v$(PREVIOUS_VERSION) and v$(VERSION)" > $(CHANGELOG_FILE)
257	@ echo "--------------------------------------------" >> $(CHANGELOG_FILE)
258	@ echo >> $(CHANGELOG_FILE)
259	$(AM_V_GEN) git log --stat v$(PREVIOUS_VERSION)..HEAD >> $(CHANGELOG_FILE)
260#
261#
262# smatch scan -- smatch and cgcc are expected in $PATH
263#
264checksmatch:
265	$(MAKE) CHECK="smatch --data=$(abs_top_srcdir)/tools/smatch-data" CC=cgcc
266
267check-programs: $(check_PROGRAMS)
268
269changelog: $(CHANGELOG_FILE)
270
271install-exec-hook: $(INSTALL_EXEC_HOOKS)
272
273uninstall-hook: $(UNINSTALL_HOOKS)
274
275install-data-hook: $(INSTALL_DATA_HOOKS)
276
277clean-local: $(CLEAN_LOCALS)
278
279check-local: $(CHECK_LOCALS)
280