AM_CPPFLAGS = \
	-include config.h \
	-I$(top_srcdir)/include \
	-DLOCALEDIR=\"$(localedir)\" \
	-D_PATH_LOCALSTATEDIR=\"${localstatedir}\"
AM_CFLAGS = -fsigned-char $(WARN_CFLAGS)
AM_LDFLAGS =

# Add gettext stuff to the global LDADD for systems with separate libintl
# library. The LTLIBINTL is generated by AM_GNU_GETTEXT macro.
#
LDADD = $(LTLIBINTL)

# Automake (at least up to 1.10) mishandles dist_man_MANS inside conditionals.
# Unlike with other dist primaries, the files are not distributed if the
# conditional is false.
# Work the bug around until it is fixed:
dist_noinst_DATA = $(dist_man_MANS)

# Paths to in-tree libraries (use ul_ prefix to avoid possible collisions) Note
# that blkid.h, libmount.h, libfdisk.h and libsmartcols.h are generated and
# stored in build dirs.
#
ul_libblkid_incdir = $(top_builddir)/libblkid/src
ul_libmount_incdir = $(top_builddir)/libmount/src
ul_libsmartcols_incdir = $(top_builddir)/libsmartcols/src
ul_libfdisk_incdir  = $(top_builddir)/libfdisk/src

ul_libuuid_incdir  = $(top_srcdir)/libuuid/src

pkgconfigdir = $(usrlib_execdir)/pkgconfig

bashcompletiondir = @bashcompletiondir@

dist_noinst_HEADERS =
noinst_PROGRAMS =
noinst_LTLIBRARIES =
usrbin_exec_PROGRAMS =
usrsbin_exec_PROGRAMS =
dist_man_MANS =
man_MANS =
pkgconfig_DATA =
usrlib_exec_LTLIBRARIES =
bin_PROGRAMS =
sbin_PROGRAMS =
dist_usrbin_exec_SCRIPTS =
systemdsystemunit_DATA =
dist_bashcompletion_DATA =
check_PROGRAMS =
dist_check_SCRIPTS =

PATHFILES =

INSTALL_EXEC_HOOKS =
UNINSTALL_HOOKS =
INSTALL_DATA_HOOKS =
CLEAN_LOCALS =
CHECK_LOCALS =

EXTRA_DIST =
CLEANFILES =

SUBDIRS = po

RCS_FIND_IGNORE = \( -name SCCS -o -name BitKeeper -o -name .svn -o \
		-name CVS -o -name .pc -o -name .hg -o -name .git \) -prune -o

ACLOCAL_AMFLAGS = -I m4

EXTRA_DIST += \
	.version \
	autogen.sh \
	Documentation \
	po/update-potfiles \
	README.licensing

include tools/Makemodule.am
include include/Makemodule.am
include lib/Makemodule.am
include libuuid/Makemodule.am
include libblkid/Makemodule.am
include libmount/Makemodule.am
include libsmartcols/Makemodule.am
include libfdisk/Makemodule.am

include schedutils/Makemodule.am
include text-utils/Makemodule.am
include term-utils/Makemodule.am
include login-utils/Makemodule.am
include sys-utils/Makemodule.am
include misc-utils/Makemodule.am
include disk-utils/Makemodule.am

include bash-completion/Makemodule.am

include tests/Makemodule.am

# pylibmountexec module must be installed after usrlib_exec libraries,
# otherwise the libtool relink step will fail to find libmount.la and
# will try -lmount which is possibly not available.
#
# So introduce this dependency rule:
# install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
@verbatim_pylibmount_dependency@

#
# Don't rely on configure.ac AC_CONFIG_FILES for install paths.
#
# The paths should be expanded at make time rather than configure:
#  - to support 'make install prefix=/foo DESTDIR=/foo'
#  - to recursively expands the paths (e.g. AC_CONFIG_FILES expands
#    '@usrsbin_execdir@' to ${exec_prefix}/sbin')
#
edit_cmd = sed \
	 -e 's|@prefix[@]|$(prefix)|g' \
	 -e 's|@exec_prefix[@]|$(exec_prefix)|g' \
	 -e 's|@sysconfdir[@]|$(sysconfdir)|g' \
	 -e 's|@datadir[@]|$(datadir)|g' \
	 -e 's|@sbindir[@]|$(sbindir)|g' \
	 -e 's|@bindir[@]|$(bindir)|g' \
	 -e 's|@includedir[@]|$(includedir)|g' \
	 -e 's|@localstatedir[@]|$(localstatedir)|g' \
	 -e 's|@usrlib_execdir[@]|$(usrlib_execdir)|g' \
	 -e 's|@usrbin_execdir[@]|$(usrbin_execdir)|g' \
	 -e 's|@usrsbin_execdir[@]|$(usrsbin_execdir)|g' \
	 -e 's|@VERSION[@]|$(VERSION)|g' \
	 -e 's|@ADJTIME_PATH[@]|$(ADJTIME_PATH)|g' \
	 -e 's|@LIBUUID_VERSION[@]|$(LIBUUID_VERSION)|g' \
	 -e 's|@LIBMOUNT_VERSION[@]|$(LIBMOUNT_VERSION)|g' \
	 -e 's|@LIBMOUNT_MAJOR_VERSION[@]|$(LIBMOUNT_MAJOR_VERSION)|g' \
	 -e 's|@LIBMOUNT_MINOR_VERSION[@]|$(LIBMOUNT_MINOR_VERSION)|g' \
	 -e 's|@LIBMOUNT_PATCH_VERSION[@]|$(LIBMOUNT_PATCH_VERSION)|g' \
	 -e 's|@LIBSMARTCOLS_VERSION[@]|$(LIBSMARTCOLS_VERSION)|g' \
	 -e 's|@LIBFDISK_PC_REQUIRES[@]|$(LIBFDISK_PC_REQUIRES)|g' \
	 -e 's|@LIBFDISK_VERSION[@]|$(LIBFDISK_VERSION)|g' \
	 -e 's|@LIBFDISK_MAJOR_VERSION[@]|$(LIBFDISK_MAJOR_VERSION)|g' \
	 -e 's|@LIBFDISK_MINOR_VERSION[@]|$(LIBFDISK_MINOR_VERSION)|g' \
	 -e 's|@LIBFDISK_PATCH_VERSION[@]|$(LIBFDISK_PATCH_VERSION)|g' \
	 -e 's|@LIBBLKID_VERSION[@]|$(LIBBLKID_VERSION)|g'

CLEANFILES += $(PATHFILES)
EXTRA_DIST += $(PATHFILES:=.in)

$(PATHFILES): Makefile
	@ rm -f $@ $@.tmp
	$(AM_V_at) $(MKDIR_P) $$(dirname $@)
	$(AM_V_GEN) srcdir=''; \
		test -f ./$@.in || srcdir=$(srcdir)/; \
		$(edit_cmd) $${srcdir}$@.in >$@.tmp
	@ mv $@.tmp $@

# Arrange so that .tarball-version appears only in the distribution
# tarball, and never in a checked-out repository.
dist-hook:
	echo $(VERSION) > $(distdir)/.tarball-version
# Set ChangeLog tag reference.
	sed -i "s/log/log;h=$(VERSION)/" $(distdir)/ChangeLog

distclean-local:
	-find . -name \*~ -o -name \*.orig -o -name \*.rej | xargs rm -f
	rm -rf autom4te.cache


checkincludes:
	@find * $(RCS_FIND_IGNORE) \
		-name '*.[hcS]' -type f -print | sort -u \
		| xargs $(top_srcdir)/tools/checkincludes.pl

checkconfig:
	@find * $(RCS_FIND_IGNORE) \
		-name '*.[hcS]' -type f -print | sort -u \
		| xargs $(top_srcdir)/tools/checkconfig.sh $(top_srcdir)

checkmans:
	@$(top_srcdir)/tools/checkmans.sh

checkxalloc:
	@ $(top_srcdir)/tools/checkxalloc.sh

checkdecl:
	@ $(top_srcdir)/tools/checkdecl.sh

checkcompletion:
	@ $(top_srcdir)/tools/checkcompletion.sh $(top_srcdir)

DISTCHECK_CONFIGURE_FLAGS = \
	--disable-use-tty-group \
	--disable-silent-rules \
	--enable-all-programs \
	--enable-static-programs \
	--enable-gtk-doc \
	--with-python \
	--with-bashcompletiondir=$$dc_install_base/$(bashcompletiondir) \
	--with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)

BUILT_SOURCES = .version
.version:
	echo $(VERSION) > $@-t && mv $@-t $@

CHANGELOG_FILE = v$(VERSION)-ChangeLog

$(CHANGELOG_FILE):
	@ if test "x$$PREVIOUS_VERSION" == "x"; then \
		echo "Usage make changelog PREVIOUS_VERSION=<version>"; \
		exit 1; \
	fi
	@ echo "Changes between v$(PREVIOUS_VERSION) and v$(VERSION)" > $(CHANGELOG_FILE)
	@ echo "--------------------------------------------" >> $(CHANGELOG_FILE)
	@ echo >> $(CHANGELOG_FILE)
	$(AM_V_GEN) git log --stat v$(PREVIOUS_VERSION)..HEAD >> $(CHANGELOG_FILE)
#
#
# smatch scan -- smatch and cgcc are expected in $PATH
#
checksmatch:
	$(MAKE) CHECK="smatch --data=$(abs_top_srcdir)/tools/smatch-data" CC=cgcc

changelog: $(CHANGELOG_FILE)

install-exec-hook: $(INSTALL_EXEC_HOOKS)

uninstall-hook: $(UNINSTALL_HOOKS)

install-data-hook: $(INSTALL_DATA_HOOKS)

clean-local: $(CLEAN_LOCALS)

check-local: $(CHECK_LOCALS)
