MAINTAINERCLEANFILES = src/scan.c src/scan.h src/scan.stamp \
src/parse.c src/parse.h src/parse.stamp
+CLEANFILES = src/typenames.h src/validtypes.h
+
EXTRA_DIST = m4/gnulib-cache.m4 src/parse.stamp src/scan.stamp
include_HEADERS = src/cdecl.h
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/typemap.lo: src/validtypes.h src/typenames.h
+
+src/validtypes.h: src/types.lst $(srcdir)/src/validtypes.sed
+ $(AM_V_GEN)sed -f $(srcdir)/src/validtypes.sed < src/types.lst > $@.tmp
+ $(AM_V_at)mv -f $@.tmp $@
-src/validtypes.h: src/validtypes.in $(srcdir)/src/validtypes.sed
- $(AM_V_GEN)sed -f $(srcdir)/src/validtypes.sed \
- < src/validtypes.in > $@.tmp
+src/typenames.h: src/types.lst $(srcdir)/src/typenames.sed
+ $(AM_V_GEN)sed -f $(srcdir)/src/typenames.sed < src/types.lst > $@.tmp
$(AM_V_at)mv -f $@.tmp $@
# These are required to prevent the builtin lex/yacc rules from
--- /dev/null
+1i\
+/* This file is automatically generated by validtypes.sed */
+/[^_[:alpha:][:space:]]/b
+s/[[:space:]][[:space:]]*/ /g
+h
+s/_//g
+y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
+s/LONG LONG/LLONG LONG/
+s/[[:upper:]][[:upper:]]*/(1ul<<CDECL_TYPE_&)/g
+s/ /|/g
+s/.*/case &:/
+p
+x
+s/ident//
+s/.*/ return "&";/