]> git.draconx.ca Git - cdecl99.git/blobdiff - Makefile.am
Generate specifier strings directly from cdecl.h
[cdecl99.git] / Makefile.am
index ffbc85f0947334ee519b75c1a8698e2723cc9e0e..9bef1c9f3770c119743084022053dd21647cc7e6 100644 (file)
@@ -23,16 +23,13 @@ MAINTAINERCLEANFILES = src/scan.c src/scan.h src/scan.stamp \
 
 DISTCLEANFILES =
 
-CLEANFILES = src/validtypes.h src/errtab.h src/namespecs.h src/ordspecs.h \
-             test/typegen.h $(EXTRA_LTLIBRARIES)
+CLEANFILES = $(EXTRA_LTLIBRARIES)
 
 EXTRA_DIST = bootstrap $(DX_BASEDIR)/scripts/fix-gnulib.pl m4/gnulib-cache.m4 \
-             src/types.lst src/validtypes.sed src/specs.lst src/namespecs.sed \
-             src/ordspecs.sed src/errors.lst src/strtab.sed test/typegen.sh \
-             src/parse.y src/parse.stamp src/scan.l src/scan.stamp \
-             COPYING.WTFPL2 README.md INSTALL
+             src/types.lst src/parse.y src/parse.stamp src/scan.l \
+             src/scan.stamp COPYING.WTFPL2 README.md INSTALL
 
-dist_man_MANS = doc/man/cdecl99.1 doc/man/libcdecl.3
+dist_man_MANS = doc/cdecl99.1 doc/libcdecl.3
 
 include_HEADERS = src/cdecl.h
 noinst_HEADERS = conf_pre.h conf_post.h src/scan.h src/parse.h \
@@ -43,9 +40,9 @@ noinst_DATA = $(MOFILES)
 lib_LTLIBRARIES = libcdecl.la
 libcdecl_la_LDFLAGS = -export-symbols-regex '^cdecl_[[:lower:]]' \
                       -no-undefined
-libcdecl_la_SOURCES = src/scan.c src/parse.c src/parse-decl.c src/typemap.c \
-                      src/output.c src/explain.c src/declare.c src/i18n.c \
-                      src/error.c src/normalize.c src/cdecl-internal.h
+libcdecl_la_SOURCES = src/scan.c src/parse.c src/parse-decl.c src/output.c \
+                      src/explain.c src/declare.c src/i18n.c src/error.c \
+                      src/normalize.c src/cdecl-internal.h src/errtab.h
 libcdecl_la_LIBADD = libgnu.la $(LTLIBINTL) $(LTLIBTHREAD)
 $(libcdecl_la_OBJECTS): $(gnulib_headers)
 
@@ -66,7 +63,7 @@ libmain_a_SOURCES = src/cdecl99.c src/options.h
 $(libmain_a_OBJECTS): $(gnulib_headers)
 $(libmain_a_OBJECTS): src/options.h
 
-check_PROGRAMS = test/crossparse
+check_PROGRAMS = test/crossparse test/normalize
 check_LTLIBRARIES = libtest.la
 libtest_la_LIBADD = $(GSL_LIBS)
 libtest_la_SOURCES = test/testlib.c
@@ -77,45 +74,21 @@ libtest_la_SOURCES += test/declgen.c
 check_PROGRAMS += test/randomdecl
 endif
 
-test_crossparse_LDADD = libcdecl.la libtest.la libgnu.la
+test_crossparse_LDADD = libtest.la libcdecl.la libgnu.la
 $(test_crossparse_OBJECTS): $(gnulib_headers)
-test_randomdecl_LDADD = libcdecl.la libtest.la libgnu.la
+test_randomdecl_LDADD = libtest.la libcdecl.la libgnu.la
 $(test_randomdecl_OBJECTS): $(gnulib_headers)
+test_normalize_LDADD = libtest.la src/output.lo src/normalize.lo \
+                       libcdecl.la libgnu.la
+$(test_normalize_OBJECTS): $(gnulib_headers)
 
 src/parse.lo: src/scan.h
 src/scan.lo: src/parse.h
-src/parse-decl.lo: src/scan.h src/parse.h
-src/typemap.lo: src/validtypes.h
+src/parse-decl.lo: src/scan.h src/parse.h src/typemap.h
 src/error.lo: src/errtab.h
-src/normalize.lo: src/ordspecs.h
-src/output.lo: src/namespecs.h
+src/output.lo: src/specstr.h
 test/declgen.lo: test/typegen.h
 
-src/validtypes.h: $(srcdir)/src/types.lst $(srcdir)/src/validtypes.sed
-       $(AM_V_GEN)sed -f $(srcdir)/src/validtypes.sed \
-               < $(srcdir)/src/types.lst > $@.tmp
-       $(AM_V_at)mv -f $@.tmp $@
-
-src/namespecs.h: $(srcdir)/src/specs.lst $(srcdir)/src/namespecs.sed
-       $(AM_V_GEN) sed -f $(srcdir)/src/namespecs.sed \
-               < $(srcdir)/src/specs.lst > $@.tmp
-       $(AM_V_at) mv -f $@.tmp $@
-
-src/ordspecs.h: $(srcdir)/src/specs.lst $(srcdir)/src/ordspecs.sed
-       $(AM_V_GEN) sed -f $(srcdir)/src/ordspecs.sed \
-               < $(srcdir)/src/specs.lst > $@.tmp
-       $(AM_V_at) mv -f $@.tmp $@
-
-src/errtab.h: $(srcdir)/src/errors.lst $(srcdir)/src/strtab.sed
-       $(AM_V_GEN)sed -f $(srcdir)/src/strtab.sed \
-               < $(srcdir)/src/errors.lst > $@.tmp
-       $(AM_V_at)mv -f $@.tmp $@
-
-test/typegen.h: $(srcdir)/src/types.lst $(srcdir)/test/typegen.sh
-       $(AM_V_GEN) $(SHELL) $(srcdir)/test/typegen.sh \
-               < $(srcdir)/src/types.lst > $@.tmp
-       $(AM_V_at)mv -f $@.tmp $@
-
 # Supporting rules for gettext.
 include $(top_srcdir)/common/snippet/gettext.mk
 
@@ -128,11 +101,9 @@ XGETTEXT_OPTS = -D $(builddir) -D $(srcdir) --from-code=utf-8 \
        --msgid-bugs-address=$(PACKAGE_BUGREPORT) \
        --keyword=_ --keyword=N_ --keyword=PN_:1c,2
 
-po/$(PACKAGE).pot: $(SOURCES) src/errors.lst
+po/$(PACKAGE).pot: $(SOURCES)
        $(AM_V_at)  $(MKDIR_P) $(@D)
        $(AM_V_GEN) $(XGETTEXT) $(XGETTEXT_OPTS) -o $@.tmp $(SOURCES)
-       $(AM_V_at)  $(XGETTEXT) $(XGETTEXT_OPTS) --omit-header -Lc \
-               -ajo $@.tmp src/errors.lst
        $(AM_V_at)  mv -f $@.tmp $@
 
 # These are required to prevent the builtin lex/yacc rules from
@@ -192,6 +163,14 @@ distcheck-hook:
              echo '       *** be the stub from a git checkout.  The "git" and "perl"'; \
              echo '       *** programs are required for ChangeLog generation to work.'; \
              $(TEST_DISTRIBUTION_OR_ERROR); } >&2
+       $(GENERIC_V) : 'CHECK   ' NEWS; \
+         $(AWK) 'NR == 1 && $$NF != "$(PACKAGE_VERSION):" \
+           { print FILENAME ":" NR ":", $$0; exit 1}' \
+           $(distdir)/NEWS || { \
+             echo 'ERROR: *** First line of NEWS should match the package version'; \
+             echo '       *** $(PACKAGE_VERSION), but that does not appear to be the case.'; \
+             echo '       *** Remember to update NEWS before preparing a release.'; \
+             $(TEST_DISTRIBUTION_OR_ERROR); } >&2
 
 OPTFILES = src/options.opt
 .opt.h:
@@ -201,7 +180,7 @@ $(OPTFILES:.opt=.h): $(DX_BASEDIR)/scripts/gen-options.awk
 MAINTAINERCLEANFILES += $(OPTFILES:.opt=.h)
 EXTRA_DIST += $(DX_BASEDIR)/scripts/gen-options.awk $(OPTFILES)
 
-STRFILES = src/commands.str
+STRFILES = src/commands.str src/errtab.str
 .str.h:
        $(AM_V_GEN) $(AWK) -f $(DX_BASEDIR)/scripts/gen-strtab.awk $< >$@.tmp
        $(AM_V_at) mv -f $@.tmp $@
@@ -218,6 +197,27 @@ src/cmdlist.h: src/gen-cmdlist.awk src/execute.c
 DISTCLEANFILES += src/cmdlist.h
 EXTRA_DIST += src/gen-cmdlist.awk
 
+src/specstr.h: src/gen-specstr.awk src/cdecl.h
+       $(AM_V_GEN) $(AWK) -f $(srcdir)/src/gen-specstr.awk \
+                             $(srcdir)/src/cdecl.h >$@.tmp
+       $(AM_V_at) mv -f $@.tmp $@
+DISTCLEANFILES += src/specstr.h
+EXTRA_DIST += src/gen-specstr.awk
+
+src/typemap.h: src/gen-typemap.awk src/types.lst
+       $(AM_V_GEN) $(AWK) -f $(srcdir)/src/gen-typemap.awk \
+                             $(srcdir)/src/types.lst >$@.tmp
+       $(AM_V_at) mv -f $@.tmp $@
+DISTCLEANFILES += src/typemap.h
+EXTRA_DIST += src/gen-typemap.awk
+
+test/typegen.h: test/gen-typegen.awk src/types.lst
+       $(AM_V_GEN) $(AWK) -f $(srcdir)/test/gen-typegen.awk \
+                             $(srcdir)/src/types.lst >$@.tmp
+       $(AM_V_at) mv -f $@.tmp $@
+DISTCLEANFILES += test/typegen.h
+EXTRA_DIST += test/gen-typegen.awk
+
 # Supporting rules for bison/flex.
 
 BISON_V   = $(BISON_V_@AM_V@)