3 bin_PROGRAMS= $(NTPD_DB) $(NTPDSIM_DB)
4 libexec_PROGRAMS= $(NTPD_DL) $(NTPDSIM_DL)
5 sbin_PROGRAMS= $(NTPD_DS) $(NTPDSIM_DS)
7 noinst_LIBRARIES= libntpd.a
9 AM_CFLAGS = $(CFLAGS_NTP)
10 AM_CFLAGS += $(NTP_HARD_CFLAGS)
12 AM_CPPFLAGS = $(NTP_INCS)
13 AM_CPPFLAGS += $(LIBOPTS_CFLAGS)
14 AM_CPPFLAGS += $(CPPFLAGS_NTP)
15 AM_CPPFLAGS += $(NTP_HARD_CPPFLAGS)
17 AM_LDFLAGS = $(LDFLAGS_NTP)
18 AM_LDFLAGS += $(NTP_HARD_LDFLAGS)
20 # LDADD might need RESLIB and ADJLIB.
21 LDADD = version.o libntpd.a $(LIBPARSE)
22 AM_YFLAGS = -d -t -r all
28 CHECK_SAVECONFIG= check-saveconfig check-pslsaveconfig
30 else !SAVECONFIG_ENABLED
35 # VPHACK and VPHACK_AFTER are enabled on non-GNU makes (such as
36 # BSD make) to work around issues specific to compiling
37 # ntp_parser.y into ntp_parser.h and ntp_parser.c in a VPATH
38 # configuration where we would like (for a change) the output
39 # files ntp_parser.[ch] to be placed in the source directory,
40 # as opposed to the build directory. This allows a single
41 # host of a flock configured with Bison to update ntp_parser.[ch]
47 VPHACK_AFTER= vphack_after
54 test -e ntp_parser.c || ln -s $(srcdir)/ntp_parser.c .
55 test -e ntp_parser.h || ln -s $(srcdir)/ntp_parser.h .
58 # ylwrap script which invokes Bison replaces ntp_parser.h
59 # symlink with the updated file, when ntp_parser.h changes.
60 # vphack_after detects this and copies the updated file to srcdir
61 # and re-creates the ntp_parser.h symlink in its place.
65 test -L ntp_parser.h || ( \
66 mv ntp_parser.h $(srcdir)/ntp_parser.h && \
67 ln -s $(srcdir)/ntp_parser.h . \
70 # BUILT_SOURCES which should also be in EXTRA_DIST
72 $(srcdir)/ntpd-opts.c \
73 $(srcdir)/ntpd-opts.h \
86 man5_MANS= ntp.conf.5 ntp.keys.5
88 man_MANS= ntpd.$(NTPD_MS)
90 # ntpdsim.1 is a remnant along with all the ntpdsim-opts.* files, the
91 # simulator currently uses ntpd-opts.[ch]. This also means there is no
92 # longer a reason to have ntpdbase-opts.def split off of ntpd-opts.def.
94 LDADD_NTPD_COMMON = $(LDADD_LIBNTP) $(LIBOPTS_LDADD) $(PTHREAD_LIBS)
95 LDADD_NTPD_COMMON += $(LIBM) $(LDADD_NTP) $(LSCF)
96 ntpd_LDADD = $(LDADD) ../libntp/libntp.a $(LDADD_NTPD_COMMON) $(LDADD_LIBUTIL)
97 ntpdsim_LDADD = $(LDADD) ../libntp/libntpsim.a $(LDADD_NTPD_COMMON)
98 ntpdsim_CPPFLAGS = $(AM_CPPFLAGS) -DSIM
99 check_y2k_LDADD = $(LDADD) ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(LDADD_LIBNTP) $(PTHREAD_LIBS)
100 ## we don't want $(LDADD) in keyword_gen_LDADD
101 keyword_gen_LDADD = ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(PTHREAD_LIBS)
116 check-pslsaveconfig \
132 invoke-ntp.conf.menu \
133 invoke-ntp.conf.texi \
134 invoke-ntp.keys.menu \
135 invoke-ntp.keys.texi \
169 check_PROGRAMS = @MAKE_CHECK_Y2K@
170 EXTRA_PROGRAMS = check_y2k keyword-gen ntpd ntpdsim
173 $(srcdir)/ntp.conf.html \
174 $(srcdir)/ntp.keys.html \
175 $(srcdir)/ntpd.html \
179 $(srcdir)/invoke-ntp.conf.menu \
180 $(srcdir)/invoke-ntp.conf.texi \
181 $(srcdir)/invoke-ntp.keys.menu \
182 $(srcdir)/invoke-ntp.keys.texi \
183 $(srcdir)/invoke-ntpd.menu \
184 $(srcdir)/invoke-ntpd.texi \
185 $(srcdir)/ntp.conf.man.in \
186 $(srcdir)/ntp.conf.mdoc.in \
187 $(srcdir)/ntp.keys.man.in \
188 $(srcdir)/ntp.keys.mdoc.in \
189 $(srcdir)/ntpd.man.in \
190 $(srcdir)/ntpd.mdoc.in \
198 install-data-local: install-html
200 run_ag= cd $(srcdir) && env PATH="$(abs_builddir):$(PATH)" AUTOGEN_DNE_DATE=-D \
201 autogen -L ../sntp/include -L ../sntp/ag-tpl --writable
203 $(top_srcdir)/sntp/include/debug-opt.def \
204 $(top_srcdir)/sntp/include/autogen-version.def \
205 $(top_srcdir)/sntp/include/copyright.def \
206 $(top_srcdir)/sntp/include/homerc.def \
207 $(top_srcdir)/sntp/include/ntp.lic \
208 $(top_srcdir)/sntp/include/version.def \
211 check-local: $(MAKE_CHECK_Y2K) $(CHECK_SAVECONFIG)
212 test -z "$(MAKE_CHECK_Y2K)" || ./$(MAKE_CHECK_Y2K)
232 # libntpd_a_SOURCES do not use #ifdef SIM
234 libntpd_a_SOURCES = \
259 refclock_chronolog.c \
263 refclock_dumbclock.c \
265 refclock_gpsdjson.c \
277 refclock_neoclock4x.c \
280 refclock_palisade.c \
281 refclock_palisade.h \
294 refclock_tsyncpci.c \
297 k-g-u-submake: keyword-gen
298 ./keyword-gen $(srcdir)/ntp_parser.h > k-g.out
299 @grep -v diff_ignore_line < k-g.out > cmp1
300 @grep -v diff_ignore_line < $(srcdir)/ntp_keyword.h > cmp2
301 @cmp cmp1 cmp2 > /dev/null || \
302 { mv -f k-g.out $(srcdir)/ntp_keyword.h && \
303 echo 'Generated changed ntp_keyword.h.' ;}
304 @[ ! -f k-g.out ] || \
305 { rm k-g.out && echo 'ntp_keyword.h is up to date.' ;}
307 @echo 'keyword-gen and ntp_keyword.h are up to date.' > $@
309 $(srcdir)/keyword-gen-utd: $(srcdir)/keyword-gen.c $(srcdir)/ntp_parser.h
310 $(MAKE) $(AM_MAKEFLAGS) k-g-u-submake # avoid explicit dependency
311 grep diff_ignore_line $(srcdir)/ntp_keyword.h > k-g-u
314 $(srcdir)/ntp_keyword.h: $(srcdir)/keyword-gen-utd
315 @: do-nothing action to avoid default SCCS get
316 @: .h updated if needed by k-g-u-submake rule
318 $(srcdir)/ntpd-opts.h: $(srcdir)/ntpd-opts.c
319 @: do-nothing action to avoid default SCCS get, .h built with .c
321 $(srcdir)/ntpd-opts.c: $(srcdir)/ntpd-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list)
322 $(run_ag) ntpd-opts.def
326 $(srcdir)/ntpd.1ntpdman: $(srcdir)/ntpd-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list)
327 $(run_ag) -DMAN_SECTION=1ntpdman -Tagman-cmd.tpl ntpd-opts.def
329 $(srcdir)/ntpd.man.in: $(srcdir)/ntpd.1ntpdman $(top_srcdir)/sntp/scripts/mansec2subst.sed
330 sed -f $(top_srcdir)/sntp/scripts/mansec2subst.sed $(srcdir)/ntpd.1ntpdman > $(srcdir)/ntpd.man.in+
331 mv $(srcdir)/ntpd.man.in+ $(srcdir)/ntpd.man.in
335 $(srcdir)/ntpd.1ntpdmdoc: $(srcdir)/ntpd-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list)
336 $(run_ag) -DMAN_SECTION=1ntpdmdoc -Tagmdoc-cmd.tpl ntpd-opts.def
338 $(srcdir)/ntpd.mdoc.in: $(srcdir)/ntpd.1ntpdmdoc $(top_srcdir)/sntp/scripts/mansec2subst.sed
339 sed -f $(top_srcdir)/sntp/scripts/mansec2subst.sed $(srcdir)/ntpd.1ntpdmdoc > $(srcdir)/ntpd.mdoc.in+
340 mv $(srcdir)/ntpd.mdoc.in+ $(srcdir)/ntpd.mdoc.in
344 ntpd.$(NTPD_MS): $(srcdir)/ntpd.$(MANTAGFMT).in $(top_builddir)/config.status
345 $(top_builddir)/config.status --file=ntpd.$(NTPD_MS)+:$(srcdir)/ntpd.$(MANTAGFMT).in
346 mv ntpd.$(NTPD_MS)+ ntpd.$(NTPD_MS)
350 $(srcdir)/invoke-ntp.conf.menu: $(srcdir)/invoke-ntp.conf.texi
351 @: do-nothing action to avoid default SCCS get, .menu built with .texi
353 $(srcdir)/invoke-ntp.conf.texi: $(srcdir)/ntp.conf.def $(std_def_list)
354 $(run_ag) -Tagtexi-file.tpl -DLEVEL=section ntp.conf.def
356 $(srcdir)/invoke-ntp.keys.menu: $(srcdir)/invoke-ntp.keys.texi
357 @: do-nothing action to avoid default SCCS get, .menu built with .texi
359 $(srcdir)/invoke-ntp.keys.texi: $(srcdir)/ntp.keys.def $(std_def_list)
360 $(run_ag) -Tagtexi-file.tpl -DLEVEL=section ntp.keys.def
362 $(srcdir)/ntp.conf.html: $(srcdir)/ntp.conf.texi $(srcdir)/invoke-ntp.conf.texi $(top_srcdir)/sntp/include/version.texi
363 cd $(srcdir) && ( makeinfo --force --html --no-split -o ntp.conf.html ntp.conf.texi || true )
365 $(srcdir)/ntp.keys.html: $(srcdir)/ntp.keys.texi $(srcdir)/invoke-ntp.keys.texi $(top_srcdir)/sntp/include/version.texi
366 cd $(srcdir) && ( makeinfo --force --html --no-split -o ntp.keys.html ntp.keys.texi || true )
368 $(srcdir)/ntpd.html: $(srcdir)/ntpd.texi $(srcdir)/invoke-ntpd.texi $(top_srcdir)/sntp/include/version.texi
369 cd $(srcdir) && ( makeinfo --force --html --no-split -o ntpd.html ntpd.texi || true )
373 $(srcdir)/ntp.conf.5man: $(srcdir)/ntp.conf.def $(std_def_list)
374 $(run_ag) -DMAN_SECTION=5man -Tagman-cmd.tpl ntp.conf.def
376 $(srcdir)/ntp.conf.man.in: $(srcdir)/ntp.conf.5man $(top_srcdir)/sntp/scripts/mansec2subst.sed
377 sed -f $(top_srcdir)/sntp/scripts/mansec2subst.sed $(srcdir)/ntp.conf.5man > $(srcdir)/ntp.conf.man.in+
378 mv $(srcdir)/ntp.conf.man.in+ $(srcdir)/ntp.conf.man.in
382 $(srcdir)/ntp.conf.5mdoc: $(srcdir)/ntp.conf.def $(std_def_list)
383 $(run_ag) -DMAN_SECTION=5mdoc -Tagmdoc-cmd.tpl ntp.conf.def
385 $(srcdir)/ntp.conf.mdoc.in: $(srcdir)/ntp.conf.5mdoc $(top_srcdir)/sntp/scripts/mansec2subst.sed
386 sed -f $(top_srcdir)/sntp/scripts/mansec2subst.sed $(srcdir)/ntp.conf.5mdoc > $(srcdir)/ntp.conf.mdoc.in+
387 mv $(srcdir)/ntp.conf.mdoc.in+ $(srcdir)/ntp.conf.mdoc.in
391 ntp.conf.5: $(srcdir)/ntp.conf.$(MANTAGFMT).in $(top_builddir)/config.status
392 $(top_builddir)/config.status --file=ntp.conf.5+:$(srcdir)/ntp.conf.$(MANTAGFMT).in
393 mv ntp.conf.5+ ntp.conf.5
397 $(srcdir)/ntp.keys.5man: $(srcdir)/ntp.keys.def $(std_def_list)
398 $(run_ag) -DMAN_SECTION=5man -Tagman-file.tpl ntp.keys.def
400 $(srcdir)/ntp.keys.man.in: $(srcdir)/ntp.keys.5man $(top_srcdir)/sntp/scripts/mansec2subst.sed
401 sed -f $(top_srcdir)/sntp/scripts/mansec2subst.sed $(srcdir)/ntp.keys.5man > $(srcdir)/ntp.keys.man.in+
402 mv $(srcdir)/ntp.keys.man.in+ $(srcdir)/ntp.keys.man.in
406 $(srcdir)/ntp.keys.5mdoc: $(srcdir)/ntp.keys.def $(std_def_list)
407 $(run_ag) -DMAN_SECTION=5mdoc -Tagmdoc-file.tpl ntp.keys.def
409 $(srcdir)/ntp.keys.mdoc.in: $(srcdir)/ntp.keys.5mdoc $(top_srcdir)/sntp/scripts/mansec2subst.sed
410 sed -f $(top_srcdir)/sntp/scripts/mansec2subst.sed $(srcdir)/ntp.keys.5mdoc > $(srcdir)/ntp.keys.mdoc.in+
411 mv $(srcdir)/ntp.keys.mdoc.in+ $(srcdir)/ntp.keys.mdoc.in
415 ntp.keys.5: $(srcdir)/ntp.keys.$(MANTAGFMT).in $(top_builddir)/config.status
416 $(top_builddir)/config.status --file=ntp.keys.5+:$(srcdir)/ntp.keys.$(MANTAGFMT).in
417 mv ntp.keys.5+ ntp.keys.5
421 $(srcdir)/invoke-ntpd.menu: $(srcdir)/invoke-ntpd.texi
422 @: do-nothing action to avoid default SCCS get, .menu built with .texi
424 $(srcdir)/invoke-ntpd.texi: $(srcdir)/ntpd-opts.def $(srcdir)/ntpdbase-opts.def $(std_def_list)
425 $(run_ag) -Tagtexi-cmd.tpl -DLEVEL=section ntpd-opts.def
426 $(top_srcdir)/scripts/build/check--help $@
428 $(PROGRAMS): $(LDADD)
430 check-saveconfig: complete.conf compsave.conf
431 -diff -u complete.conf compsave.conf
432 cmp complete.conf compsave.conf && echo stamp > $@
434 compsave.conf: ntpd complete.conf
435 ./ntpd --configfile complete.conf --saveconfigquit $@+
436 grep -v '^#' $@+ > $@
438 check-pslsaveconfig: check-psl0 check-psl1 check-psl2
441 check-psl0: psl0.conf psl0save.conf
442 -diff -u $< psl0save.conf
443 cmp $< psl0save.conf && echo stamp > $@
445 psl0save.conf: psl0.conf ntpd
446 ./ntpd --configfile $< --saveconfigquit $@+
447 grep -v '^#' $@+ > $@
449 check-psl1: psl1.conf psl1save.conf
450 -diff -u $< psl1save.conf
451 cmp $< psl1save.conf && echo stamp > $@
453 psl1save.conf: psl1.conf ntpd
454 ./ntpd --configfile $< --saveconfigquit $@+
455 grep -v '^#' $@+ > $@
457 check-psl2: psl2.conf psl2save.conf
458 -diff -u $< psl2save.conf
459 cmp $< psl2save.conf && echo stamp > $@
461 psl2save.conf: psl2.conf ntpd
462 ./ntpd --configfile $< --saveconfigquit $@+
463 grep -v '^#' $@+ > $@
465 ../libntp/libntpsim.a:
466 cd ../libntp && $(MAKE) $(AM_MAKEFLAGS) libntpsim.a
468 ../libparse/libparse.a:
469 cd ../libparse && $(MAKE) $(AM_MAKEFLAGS) check-libparse
471 $(top_srcdir)/sntp/scm-rev:
472 cd ../sntp && $(MAKE) $(AM_MAKEFLAGS) check-scm-rev
474 version.c: $(ntpd_OBJECTS) ../libntp/libntp.a @LIBPARSE@ Makefile $(top_srcdir)/sntp/scm-rev
475 env CSET=`cat $(top_srcdir)/sntp/scm-rev` $(top_builddir)/scripts/build/mkver ntpd
478 env CCACHE_DISABLE=1 $(COMPILE) -c version.c -o version.o
480 $(srcdir)/Makefile.am:
483 include $(top_srcdir)/bincheck.mf
484 include $(top_srcdir)/check-libopts.mf
485 include $(top_srcdir)/sntp/check-libntp.mf
486 include $(top_srcdir)/depsver.mf
487 include $(top_srcdir)/includes.mf