1### Makefile.am 2include $(top_builddir)/version.mk 3 4AM_CFLAGS = $(EXTRA_CFLAGS) 5AM_CPPFLAGS = -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_BSD_SOURCE 6AM_CPPFLAGS += -DHAVE_VERSION_H 7AM_LDFLAGS = 8AM_YFLAGS = -d 9 10M4 = m4 11 12bin_PROGRAMS = 13noinst_PROGRAMS = 14noinst_HEADERS = 15noinst_LIBRARIES = 16BUILT_SOURCES = 17CLEANFILES = 18GGO_HELPERS = 19EXTRA_DIST = $(BUILT_SOURCES) $(GGO_HELPERS) 20SUFFIXES = 21 22DT_INCLUDES = -I$(top_srcdir)/lib -I$(top_builddir)/lib 23DT_LIBS = $(top_builddir)/lib/libdut.a 24 25ANALYZE = clang 26ANALYZE_FLAGS = "--analyze" 27# Based on COMPILE target 28ANALYZE_COMMAND = $(ANALYZE) \ 29 $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 30 $(CPPFLAGS) $(DT_INCLUDES) $(AM_CFLAGS) $(CFLAGS) \ 31 $(ANALYZE_FLAGS) 32 33noinst_LIBRARIES += libdutio.a 34libdutio_a_SOURCES = 35libdutio_a_SOURCES += dt-io.c dt-io.h 36libdutio_a_SOURCES += dt-io-zone.c dt-io-zone.h 37libdutio_a_SOURCES += alist.c alist.h 38libdutio_a_SOURCES += prchunk.c prchunk.h 39libdutio_a_SOURCES += dexpr.h 40libdutio_a_CPPFLAGS = $(AM_CPPFLAGS) 41libdutio_a_CPPFLAGS += $(DT_INCLUDES) 42libdutio_a_CPPFLAGS += -DTZMAP_DIR='"$(pkgdatadir)"' 43EXTRA_DIST += strpdt-special.gperf 44BUILT_SOURCES += strpdt-special.c 45 46## all them binaries, alphabetical 47bin_PROGRAMS += dadd 48bin_PROGRAMS += dconv 49bin_PROGRAMS += ddiff 50bin_PROGRAMS += dgrep 51bin_PROGRAMS += dround 52bin_PROGRAMS += dseq 53bin_PROGRAMS += dsort 54bin_PROGRAMS += dtest 55bin_PROGRAMS += dzone 56 57if WITH_OLD_LINKS 58CREATE_OLD_LINKS = $(LN_S) date$$prog$(EXEEXT) d$$prog$(EXEEXT); 59endif 60 61if !WITH_OLD_NAMES 62install-exec-hook: 63 cd $(DESTDIR)$(bindir) && \ 64 for prog in add conv diff grep round seq sort test zone; do \ 65 mv -f d$$prog$(EXEEXT) date$$prog$(EXEEXT) ; \ 66 $(CREATE_OLD_LINKS) \ 67 done 68 69uninstall-hook: 70 cd $(DESTDIR)$(bindir) && \ 71 for prog in add conv diff grep round seq sort test zone; do \ 72 $(RM) date$$prog$(EXEEXT) ; \ 73 done 74endif ## !WITH_OLD_NAMES 75 76dseq_SOURCES = dseq.c dseq.yuck 77dseq_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) 78dseq_LDFLAGS = $(AM_LDFLAGS) 79dseq_LDADD = libdutio.a 80dseq_LDADD += $(DT_LIBS) 81BUILT_SOURCES += dseq.yucc 82 83if HAVE_STRPTIME 84bin_PROGRAMS += strptime 85strptime_SOURCES = strptime.c strptime.yuck 86strptime_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) 87strptime_LDFLAGS = $(AM_LDFLAGS) 88strptime_LDADD = libdutio.a 89strptime_LDADD += $(DT_LIBS) 90endif 91BUILT_SOURCES += strptime.yucc 92 93dconv_SOURCES = dconv.c dconv.yuck 94dconv_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) 95dconv_LDFLAGS = $(AM_LDFLAGS) 96dconv_LDADD = libdutio.a 97dconv_LDADD += $(DT_LIBS) 98BUILT_SOURCES += dconv.yucc 99 100dtest_SOURCES = dtest.c dtest.yuck 101dtest_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) 102dtest_LDFLAGS = $(AM_LDFLAGS) 103dtest_LDADD = libdutio.a 104dtest_LDADD += $(DT_LIBS) 105BUILT_SOURCES += dtest.yucc 106 107dadd_SOURCES = dadd.c dadd.yuck 108dadd_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) 109dadd_LDFLAGS = $(AM_LDFLAGS) 110dadd_LDADD = libdutio.a 111dadd_LDADD += $(DT_LIBS) 112BUILT_SOURCES += dadd.yucc 113 114ddiff_SOURCES = ddiff.c ddiff.yuck 115ddiff_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) 116ddiff_LDFLAGS = $(AM_LDFLAGS) 117ddiff_LDADD = libdutio.a 118ddiff_LDADD += $(DT_LIBS) 119BUILT_SOURCES += ddiff.yucc 120 121dgrep_SOURCES = dgrep.c dgrep.yuck 122dgrep_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) 123dgrep_LDFLAGS = $(AM_LDFLAGS) 124dgrep_LDADD = libdutio.a 125dgrep_LDADD += $(DT_LIBS) 126BUILT_SOURCES += dgrep.yucc 127 128dround_SOURCES = dround.c dround.yuck 129dround_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) 130dround_LDFLAGS = $(AM_LDFLAGS) 131dround_LDADD = libdutio.a 132dround_LDADD += $(DT_LIBS) 133BUILT_SOURCES += dround.yucc 134 135dzone_SOURCES = dzone.c dzone.yuck 136dzone_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) 137dzone_LDFLAGS = $(AM_LDFLAGS) 138dzone_LDADD = libdutio.a 139dzone_LDADD += $(DT_LIBS) 140BUILT_SOURCES += dzone.yucc 141 142dsort_SOURCES = dsort.c dsort.yuck 143dsort_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) 144dsort_LDFLAGS = $(AM_LDFLAGS) 145dsort_LDADD = libdutio.a 146dsort_LDADD += $(DT_LIBS) 147BUILT_SOURCES += dsort.yucc 148 149if BUILD_DEXPR 150noinst_PROGRAMS += dexpr 151dexpr_SOURCES = dexpr.c 152dexpr_SOURCES += dexpr-scanner.l 153dexpr_SOURCES += dexpr-parser.y 154dexpr_CPPFLAGS = $(AM_CPPFLAGS) $(DT_INCLUDES) -DSTANDALONE 155dexpr_LDFLAGS = $(AM_LDFLAGS) 156dexpr_LDADD = libdutio.a 157dexpr_LDADD += $(DT_LIBS) 158endif ## BUILD_DEXPR 159BUILT_SOURCES += dexpr-scanner.c dexpr-parser.c dexpr-parser.h 160 161 162## yuck rule 163SUFFIXES += .yuck 164SUFFIXES += .yucc 165.yuck.yucc: 166 $(AM_V_GEN) PATH=$(top_builddir)/build-aux:"$${PATH}" \ 167 yuck$(EXEEXT) gen -o $@ $< 168 169## gperf rule 170SUFFIXES += .gperf 171.gperf.c: 172 $(AM_V_GEN) $(GPERF) -L ANSI-C $< --output-file $@ 173 174 175## just for parallel builds 176dexpr-parser.h: dexpr-parser.c 177 178# 179# Help the developers get nice post-processed source files 180 181## Create preprocessor output (debugging purposes only) 182.c.i: 183 $(COMPILE) -E -o $@ $< 184 185## Create assembler output (debugging purposes only) 186.c.s: 187 $(COMPILE) -S -c $(AM_CFLAGS) $< 188 189## Run Clang static analyzer over sources. 190anal: $(SOURCES) 191 @list='$(SOURCES)'; \ 192 result=0; \ 193 for file in $$list; do \ 194 if echo $$file | grep '\.c$$' >/dev/null 2>&1; then \ 195 echo "Analyzing $$file"; \ 196 $(ANALYZE_COMMAND) $(srcdir)/$$file; \ 197 status=$$?; \ 198 if test $$status != 0; then \ 199 result=1; \ 200 fi; \ 201 fi; \ 202 done; \ 203 set -e; exit $$result 204