diff options
Diffstat (limited to 'ntpd/Makefile.am')
-rw-r--r-- | ntpd/Makefile.am | 282 |
1 files changed, 226 insertions, 56 deletions
diff --git a/ntpd/Makefile.am b/ntpd/Makefile.am index 6896b4564b89..144371aaa8fa 100644 --- a/ntpd/Makefile.am +++ b/ntpd/Makefile.am @@ -1,108 +1,278 @@ -AUTOMAKE_OPTIONS= ../util/ansi2knr - -bindir= ${exec_prefix}/${BINSUBDIR} +NULL= +AUTOMAKE_OPTIONS= +if NTP_BINSUBDIR_IS_BIN bin_PROGRAMS= ntpd @MAKE_NTPDSIM@ +else +sbin_PROGRAMS= ntpd @MAKE_NTPDSIM@ +endif noinst_LIBRARIES= libntpd.a -AM_CPPFLAGS= -I$(top_srcdir)/include -I../include $(LIBOPTS_CFLAGS) +AM_CPPFLAGS= -I$(top_srcdir)/include -I$(top_srcdir)/lib/isc/include \ + -I$(top_srcdir)/lib/isc/nothreads/include \ + -I$(top_srcdir)/lib/isc/unix/include $(LIBOPTS_CFLAGS) + # LDADD might need RESLIB and ADJLIB. LDADD= version.o libntpd.a @LIBPARSE@ +AM_YFLAGS= -d -t -r all + +if SAVECONFIG_ENABLED +if NTP_CROSSCOMPILE +CHECK_SAVECONFIG= +else +CHECK_SAVECONFIG= check-saveconfig +endif +else !SAVECONFIG_ENABLED +CHECK_SAVECONFIG= +endif + +# +# VPHACK and VPHACK_AFTER are enabled on non-GNU makes (such as +# BSD make) to work around issues specific to compiling +# ntp_parser.y into ntp_parser.h and ntp_parser.c in a vPATH +# configuration where we would like (for a change) the output +# files ntp_parser.[ch] to be placed in the source directory, +# as opposed to the build directory. This allows a single +# host of a flock configured with Bison to update ntp_parser.[ch] +# used by the rest. +# + +if VPATH_HACK +VPHACK= vphack +VPHACK_AFTER= vphack_after +else +VPHACK= +VPHACK_AFTER= +endif + +vphack: + test -e ntp_parser.c || ln -s $(srcdir)/ntp_parser.c . + test -e ntp_parser.h || ln -s $(srcdir)/ntp_parser.h . -BUILT_SOURCES= ntpd-opts.c ntpd-opts.h ntpd.1 ntpd-opts.texi ntpd-opts.menu -man_MANS= ntpd.1 +# +# ylwrap script which invokes Bison replaces ntp_parser.h +# symlink with the updated file, when ntp_parser.h changes. +# vphack_after detects this and copies the updated file to srcdir +# and re-creates the ntp_parser.h symlink in its place. +# -BUILT_SOURCES+= ntpdsim-opts.c ntpdsim-opts.h ntpdsim.1 ntpdsim-opts.texi ntpdsim-opts.menu -man_MANS+= ntpdsim.1 +vphack_after: + test -L ntp_parser.h || ( \ + mv ntp_parser.h $(srcdir)/ntp_parser.h && \ + ln -s $(srcdir)/ntp_parser.h . \ + ) + +# BUILT_SOURCES which should also be in EXTRA_DIST +B_S_DIST= \ + ntpd-opts.c \ + ntpd-opts.h \ + $(NULL) + +BUILT_SOURCES= \ + $(VPHACK) \ + ntp_parser.c \ + ntp_parser.h \ + $(VPHACK_AFTER) \ + $(B_S_DIST) \ + $(NULL) + +man_MANS= $(srcdir)/ntpd.1 + +# ntpdsim.1 is a remnant along with all the ntpdsim-opts.* files, the +# simulator currently uses ntpd-opts.[ch]. This also means there is no +# longer a reason to have ntpdbase-opts.def split off of ntpd-opts.def. # ntpd may need: # log10 refclock_wwv.o # sqrt ntp_control.o # floor refclock_wwv.o # which are (usually) provided by -lm. -ntpd_LDADD = $(LDADD) -lm @LCRYPTO@ $(LIBOPTS_LDADD) ../libntp/libntp.a -ntpdsim_LDADD = $(LDADD) ../libntp/libntpsim.a -lm @LCRYPTO@ $(LIBOPTS_LDADD) +ntpd_LDADD = $(LDADD) $(LIBOPTS_LDADD) ../libntp/libntp.a -lm @LCRYPTO@ @LSCF@ +ntpdsim_LDADD = $(LDADD) $(LIBOPTS_LDADD) ../libntp/libntpsim.a -lm @LCRYPTO@ @LSCF@ ntpdsim_CFLAGS = $(CFLAGS) -DSIM check_y2k_LDADD = $(LDADD) ../libntp/libntp.a -DISTCLEANFILES = .version version.c -EXTRA_DIST = ntpd-opts.def ntpdbase-opts.def ntpdsim-opts.def \ +keyword_gen_LDADD = ../libntp/libntp.a # we don't want $(LDADD) here + +DISTCLEANFILES = \ + keyword-gen \ + .version \ + version.c \ + $(NULL) + +CLEANFILES = \ + check-saveconfig \ + compsave.conf \ + k-g-u-submake \ + $(NULL) + +EXTRA_DIST = \ + complete.conf \ + keyword-gen-utd \ + ntpd.1 \ + ntpd-opts.def \ + ntpd-opts.menu \ + ntpd-opts.texi \ + ntpdbase-opts.def \ refclock_msfees.c \ refclock_trak.c \ - $(BUILT_SOURCES) + $(B_S_DIST) \ + $(NULL) + ETAGS_ARGS = Makefile.am ### Y2Kfixes check_PROGRAMS = @MAKE_CHECK_Y2K@ -EXTRA_PROGRAMS = check_y2k ntpdsim -run_ag = cd $(srcdir) && autogen -L ../include --writable -std_def_list= $(top_srcdir)/include/debug-opt.def \ - $(top_srcdir)/include/autogen-version.def \ +EXTRA_PROGRAMS = check_y2k ntpdsim keyword-gen +noinst_DATA = $(srcdir)/ntpd-opts.texi $(srcdir)/ntpd-opts.menu +run_ag= cd $(srcdir) && env PATH="$(abs_builddir):$(PATH)" \ + autogen -L ../include --writable +std_def_list= $(top_srcdir)/include/autogen-version.def \ $(top_srcdir)/include/copyright.def \ $(top_srcdir)/include/version.def -check-local: @MAKE_CHECK_Y2K@ +check-local: @MAKE_CHECK_Y2K@ $(CHECK_SAVECONFIG) test -z "@MAKE_CHECK_Y2K@" || ./@MAKE_CHECK_Y2K@ -# SIM: cmd_args.c ntp_config.c ntp_io.c ntpd.c + ntpsim.c (include/ntpsim.h) -# ntp_resolver.c is presently unused... -ntpd_SOURCES = cmd_args.c ntp_config.c ntp_io.c ntpd.c ntpd-opts.c ntpd-opts.h -ntpdsim_SOURCES = $(ntpd_SOURCES) ntpsim.c ntpdsim-opts.c ntpdsim-opts.h -libntpd_a_SOURCES = jupiter.h ntp_control.c \ - ntp_crypto.c ntp_filegen.c \ - ntp_intres.c ntp_loopfilter.c ntp_monitor.c ntp_peer.c \ - ntp_proto.c ntp_refclock.c ntp_request.c \ - ntp_restrict.c ntp_timer.c ntp_util.c \ - ppsapi_timepps.h \ - refclock_acts.c refclock_arbiter.c refclock_arc.c refclock_as2201.c \ - refclock_atom.c refclock_bancomm.c refclock_chronolog.c \ - refclock_chu.c refclock_conf.c refclock_datum.c refclock_dumbclock.c \ - refclock_fg.c refclock_gpsvme.c refclock_heath.c refclock_hopfser.c \ - refclock_hopfpci.c refclock_hpgps.c refclock_irig.c refclock_jjy.c \ - refclock_jupiter.c refclock_leitch.c refclock_local.c \ - refclock_mx4200.c refclock_neoclock4x.c \ - refclock_nmea.c refclock_oncore.c refclock_palisade.c \ - refclock_palisade.h refclock_parse.c \ - refclock_pcf.c refclock_pst.c refclock_ripencc.c refclock_shm.c \ - refclock_tpro.c refclock_true.c refclock_tt560.c \ - refclock_ulink.c refclock_wwv.c refclock_wwvb.c \ - refclock_zyfer.c +ntpd_SOURCES = \ + cmd_args.c \ + ntp_config.c \ + ntp_data_structures.c \ + ntp_keyword.h \ + ntp_io.c \ + ntp_parser.y \ + ntp_scanner.c \ + ntp_scanner.h \ + ntpd.c \ + ntpd-opts.c \ + ntpd-opts.h \ + $(NULL) + +ntpdsim_SOURCES = \ + $(ntpd_SOURCES) \ + ntpsim.c \ + $(NULL) + +# libntpd_a_SOURCES do not use #ifdef SIM + +libntpd_a_SOURCES = \ + jupiter.h \ + ntp_control.c \ + ntp_crypto.c \ + ntp_filegen.c \ + ntp_intres.c \ + ntp_loopfilter.c \ + ntp_monitor.c \ + ntp_peer.c \ + ntp_proto.c \ + ntp_refclock.c \ + ntp_request.c \ + ntp_restrict.c \ + ntp_signd.c \ + ntp_timer.c \ + ntp_util.c \ + ppsapi_timepps.h \ + refclock_acts.c \ + refclock_arbiter.c \ + refclock_arc.c \ + refclock_as2201.c \ + refclock_atom.c \ + refclock_bancomm.c \ + refclock_chronolog.c \ + refclock_chu.c \ + refclock_conf.c \ + refclock_datum.c \ + refclock_dumbclock.c \ + refclock_fg.c \ + refclock_gpsvme.c \ + refclock_heath.c \ + refclock_hopfser.c \ + refclock_hopfpci.c \ + refclock_hpgps.c \ + refclock_irig.c \ + refclock_jjy.c \ + refclock_jupiter.c \ + refclock_leitch.c \ + refclock_local.c \ + refclock_mx4200.c \ + refclock_neoclock4x.c \ + refclock_nmea.c \ + refclock_oncore.c \ + refclock_palisade.c \ + refclock_palisade.h \ + refclock_parse.c \ + refclock_pcf.c \ + refclock_pst.c \ + refclock_ripencc.c \ + refclock_shm.c \ + refclock_tpro.c \ + refclock_true.c \ + refclock_tt560.c \ + refclock_ulink.c \ + refclock_wwv.c \ + refclock_wwvb.c \ + refclock_zyfer.c \ + $(NULL) + +k-g-u-submake: keyword-gen + ./keyword-gen $(srcdir)/ntp_parser.h > k-g.out + @grep -v diff_ignore_line < k-g.out > cmp1 + @grep -v diff_ignore_line < $(srcdir)/ntp_keyword.h > cmp2 + @cmp cmp1 cmp2 > /dev/null || \ + { mv -f k-g.out $(srcdir)/ntp_keyword.h && \ + echo 'Generated changed ntp_keyword.h.' ;} + @[ ! -f k-g.out ] || \ + { rm k-g.out && echo 'ntp_keyword.h is up to date.' ;} + @rm cmp1 cmp2 + @echo 'keyword-gen and ntp_keyword.h are up to date.' > $@ + +$(srcdir)/keyword-gen-utd: $(srcdir)/keyword-gen.c $(srcdir)/ntp_parser.h + $(MAKE) k-g-u-submake # avoid explicit dependency + grep diff_ignore_line $(srcdir)/ntp_keyword.h > k-g-u + mv -f k-g-u $@ + +$(srcdir)/ntp_keyword.h: $(srcdir)/keyword-gen-utd + @: do-nothing action to avoid default SCCS get + @: .h updated if needed by k-g-u-submake rule $(srcdir)/ntpd-opts.h: $(srcdir)/ntpd-opts.c + @: do-nothing action to avoid default SCCS get, .h built with .c + $(srcdir)/ntpd-opts.c: $(srcdir)/ntpd-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list) $(run_ag) ntpd-opts.def $(srcdir)/ntpd.1: $(srcdir)/ntpd-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list) $(run_ag) -Tagman1.tpl -bntpd ntpd-opts.def -$(srcdir)/ntpd-opts.texi $(srcdir)/ntpd-opts.menu: $(srcdir)/ntpd-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list) +$(srcdir)/ntpd-opts.menu: $(srcdir)/ntpd-opts.texi + @: do-nothing action to avoid default SCCS get, .menu built with .texi + +$(srcdir)/ntpd-opts.texi: $(srcdir)/ntpd-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list) $(run_ag) -Taginfo.tpl -DLEVEL=section ntpd-opts.def + $(top_srcdir)/scripts/check--help $@ -$(srcdir)/ntpdsim-opts.h: $(srcdir)/ntpdsim-opts.c -$(srcdir)/ntpdsim-opts.c: $(srcdir)/ntpdsim-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list) $(top_srcdir)/include/homerc.def - $(run_ag) ntpdsim-opts.def +$(PROGRAMS): $(LDADD) -$(srcdir)/ntpdsim.1: $(srcdir)/ntpdsim-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list) $(top_srcdir)/include/homerc.def - $(run_ag) -Tagman1.tpl -bntpdsim ntpdsim-opts.def +compsave.conf: ntpd $(srcdir)/complete.conf + ./ntpd --configfile $(srcdir)/complete.conf --saveconfigquit $@ -$(srcdir)/ntpdsim-opts.texi $(srcdir)/ntpdsim-opts.menu: $(srcdir)/ntpdsim-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list) $(top_srcdir)/include/homerc.def - $(run_ag) -Taginfo.tpl -DLEVEL=section ntpdsim-opts.def +check-saveconfig: $(srcdir)/complete.conf compsave.conf + cmp $(srcdir)/complete.conf compsave.conf && echo stamp > $@ -$(PROGRAMS): $(LDADD) +../libopts/libopts.la: + cd ../libopts && $(MAKE) libopts.la ../libntp/libntp.a: cd ../libntp && $(MAKE) libntp.a -../libntp/libntpsim.a: - cd ../libntp && $(MAKE) libntpsim.a - ../libparse/libparse.a: - cd ../libparse && $(MAKE) + cd ../libparse && $(MAKE) libparse.a -$(top_srcdir)/version : +$(top_srcdir)/version: cd $(top_srcdir) && $(MAKE) version version.o: $(ntpd_OBJECTS) ../libntp/libntp.a @LIBPARSE@ Makefile $(top_srcdir)/version env CSET=`cat $(top_srcdir)/version` $(top_builddir)/scripts/mkver ntpd $(COMPILE) -c version.c -include ../bincheck.mf +include $(top_srcdir)/bincheck.mf +include $(top_srcdir)/depsver.mf |