From: Sami Kerola Date: Sun, 31 Mar 2019 11:53:44 +0000 (+0100) Subject: build-sys: use none-recursive build X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a3e555a98720d78ea8db448a5daa2f839846f090;p=cronie build-sys: use none-recursive build None-recursive builds are quicker, and less problematic from make(1) object tracking point of view. See reference for full explanation. References: http://miller.emu.id.au/pmiller/books/rmch/ Signed-off-by: Sami Kerola --- diff --git a/.gitignore b/.gitignore index 1635877..55f701b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ Makefile.in Makefile anacron/anacron -anacron/anacron-paths.h +anacron-paths.h anacron/Makefile anacron/Makefile.in aclocal.m4 @@ -26,8 +26,9 @@ tags src/crond src/crontab src/cronnext -src/cron-paths.h +cron-paths.h *~ *.tar.* *.orig *.patch +.dirstamp diff --git a/Makefile.am b/Makefile.am index b0e04f2..b8d6ab3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,9 +1,16 @@ -SUBDIRS = src man anacron +AM_CFLAGS = -I$(top_srcdir) + +BUILT_SOURCES = +CLEANFILES = +EXTRA_DIST = +bin_PROGRAMS = +common_nodist = +sbin_PROGRAMS = dist_noinst_HEADERS = \ cronie_common.h -EXTRA_DIST = \ +EXTRA_DIST += \ cronie.init \ crond.sysconfig \ contrib/anacrontab \ @@ -19,3 +26,7 @@ dist_pam_DATA = pam/crond else EXTRA_DIST += pam/crond endif + +include anacron/Makemodule.am +include man/Makemodule.am +include src/Makemodule.am diff --git a/anacron/Makefile.am b/anacron/Makemodule.am similarity index 54% rename from anacron/Makefile.am rename to anacron/Makemodule.am index d8642d9..394640f 100644 --- a/anacron/Makefile.am +++ b/anacron/Makemodule.am @@ -1,23 +1,28 @@ # Makefile.am - two binaries crond and crontab if ANACRON -sbin_PROGRAMS = anacron -endif - -anacron_SOURCES = \ - gregor.c lock.c log.c main.c matchrx.c readtab.c runjob.c \ - $(common_src) -common_src = global.h gregor.h matchrx.h -common_nodist = anacron-paths.h -nodist_anacron_SOURCES = $(common_nodist) -BUILT_SOURCES = $(common_nodist) +sbin_PROGRAMS += anacron/anacron +anacron_anacron_SOURCES = \ + anacron-paths.h \ + anacron/global.h \ + anacron/gregor.c \ + anacron/gregor.h \ + anacron/lock.c \ + anacron/log.c \ + anacron/main.c \ + anacron/matchrx.c \ + anacron/matchrx.h \ + anacron/readtab.c \ + anacron/runjob.c +common_nodist += anacron-paths.h +nodist_anacron_anacron_SOURCES = $(common_nodist) +BUILT_SOURCES += $(common_nodist) -AM_CFLAGS = -I$(top_srcdir) - -LDADD = $(LIBSELINUX) $(LIBPAM) $(LIBAUDIT) +anacron_anacron_LDADD = $(LIBSELINUX) $(LIBPAM) $(LIBAUDIT) # This header contains all the paths. # If they are configurable, they are declared in configure script. # Depends on this Makefile, because it uses make variables. +CLEANFILES += anacron-paths.h anacron-paths.h: Makefile @echo 'creating $@' @sed >$@ 's/ *\\$$//' <<\END #\ @@ -29,3 +34,4 @@ anacron-paths.h: Makefile #define ANACRONTAB "$(ANACRONTAB)" \ #endif /* _ANACRON_PATHS_H_ */ \ END +endif diff --git a/configure.ac b/configure.ac index 7200b24..763b5d5 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ AC_INIT([cronie],[1.5.4],[mmaslano@redhat.com,tmraz@fedoraproject.org]) AC_CONFIG_HEADER([config.h]) AC_PREREQ(2.60) -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([subdir-objects]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) @@ -260,6 +260,6 @@ if test "$enable_anacron" != no; then ANACRON_CONF_VAR([ANACRONTAB],[The anacron table for regular jobs.],[${sysconfdir}/anacrontab]) fi -AC_CONFIG_FILES([Makefile src/Makefile man/Makefile anacron/Makefile]) +AC_CONFIG_FILES([Makefile]) AC_OUTPUT diff --git a/man/Makefile.am b/man/Makefile.am deleted file mode 100644 index 965b8fd..0000000 --- a/man/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -dist_man_MANS = crontab.1 crontab.5 cron.8 crond.8 cronnext.1 -EXTRA_DIST = anacrontab.5 anacron.8 - -if ANACRON -dist_man_MANS += $(EXTRA_DIST) -endif diff --git a/man/Makemodule.am b/man/Makemodule.am new file mode 100644 index 0000000..e6479f6 --- /dev/null +++ b/man/Makemodule.am @@ -0,0 +1,16 @@ +dist_man_MANS = \ + man/cron.8 \ + man/crond.8 \ + man/cronnext.1 \ + man/crontab.1 \ + man/crontab.5 + +anacron_man = \ + man/anacrontab.5 \ + man/anacron.8 + +EXTRA_DIST += $(anacron_man) + +if ANACRON +dist_man_MANS += $(anacron_man) +endif diff --git a/src/Makefile.am b/src/Makemodule.am similarity index 68% rename from src/Makefile.am rename to src/Makemodule.am index e832f12..b531d25 100644 --- a/src/Makefile.am +++ b/src/Makemodule.am @@ -1,27 +1,55 @@ # Makefile.am - two binaries crond and crontab -sbin_PROGRAMS = crond -bin_PROGRAMS = crontab cronnext +sbin_PROGRAMS += \ + src/crond -crond_SOURCES = \ - cron.c database.c user.c job.c do_command.c popen.c security.c \ +bin_PROGRAMS += \ + src/cronnext \ + src/crontab + +src_crond_SOURCES = \ + src/cron.c \ + src/database.c \ + src/do_command.c \ + src/job.c \ + src/popen.c \ + src/security.c \ + src/user.c \ $(common_src) -crontab_SOURCES = crontab.c security.c $(common_src) -cronnext_SOURCES = \ - cronnext.c database.c user.c job.c \ + +src_crontab_SOURCES = \ + src/crontab.c \ + src/security.c \ $(common_src) -common_src = entry.c env.c misc.c pw_dup.c \ - externs.h funcs.h globals.h macros.h pathnames.h structs.h \ - bitstring.h -common_nodist = cron-paths.h -nodist_crond_SOURCES = $(common_nodist) -nodist_crontab_SOURCES = $(common_nodist) -nodist_cronnext_SOURCES = $(common_nodist) -BUILT_SOURCES = $(common_nodist) -AM_CFLAGS = -I$(top_srcdir) +src_cronnext_SOURCES = \ + src/cronnext.c \ + src/database.c \ + src/job.c \ + src/user.c \ + $(common_src) + +common_src = \ + src/bitstring.h \ + src/entry.c \ + src/env.c \ + src/externs.h \ + src/funcs.h \ + src/globals.h \ + src/macros.h \ + src/misc.c \ + src/pathnames.h \ + src/pw_dup.c \ + src/structs.h + +common_nodist += cron-paths.h +nodist_src_crond_SOURCES = $(common_nodist) +nodist_src_crontab_SOURCES = $(common_nodist) +nodist_src_cronnext_SOURCES = $(common_nodist) +BUILT_SOURCES += $(common_nodist) -LDADD = $(LIBSELINUX) $(LIBPAM) $(LIBAUDIT) +src_crond_LDADD = $(LIBSELINUX) $(LIBPAM) $(LIBAUDIT) +src_crontab_LDADD = $(LIBSELINUX) $(LIBPAM) $(LIBAUDIT) ## if DEBUG ## noinst_PROGRAMS = debug @@ -31,7 +59,7 @@ LDADD = $(LIBSELINUX) $(LIBPAM) $(LIBAUDIT) # If they are configurable, they are declared in configure script. # Depends on this Makefile, because it uses make variables. # CCD 2010/09/10 added CRON_HOSTNAME for clustered-cron. -CLEANFILES = cron-paths.h +CLEANFILES += cron-paths.h cron-paths.h: Makefile @echo 'creating $@' @sed >$@ 's/ *\\$$//' <<\END #\