]> git.draconx.ca Git - cdecl99.git/blobdiff - Makefile.am
Give better errors when flex/bison are unavailable.
[cdecl99.git] / Makefile.am
index 6d2cc663917c2508ed704b9b8038a5165d8adc7c..620b37bf1af4aee3c969819616b152422a73402f 100644 (file)
@@ -26,11 +26,11 @@ DISTCLEANFILES =
 CLEANFILES = src/validtypes.h src/errtab.h src/namespecs.h src/ordspecs.h \
              test/typegen.h $(EXTRA_LTLIBRARIES)
 
-EXTRA_DIST = 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
+EXTRA_DIST = bootstrap common/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
 
 dist_man_MANS = doc/man/cdecl99.1 doc/man/libcdecl.3
 
@@ -52,7 +52,8 @@ $(libcdecl_la_OBJECTS): $(gnulib_headers)
 
 bin_PROGRAMS = cdecl99
 cdecl99_SOURCES = src/cdecl99.c
-cdecl99_LDADD = libcdecl.la libgnu.la $(LTLIBINTL) $(LTLIBREADLINE)
+cdecl99_LDADD = libcdecl.la libgnu.la \
+                $(LTLIBICONV) $(LTLIBINTL) $(LTLIBREADLINE)
 $(cdecl99_OBJECTS): $(gnulib_headers)
 
 check_PROGRAMS = test/crossparse
@@ -192,10 +193,19 @@ FLEX_V   = $(FLEX_V_@AM_V@)
 FLEX_V_  = $(FLEX_V_@AM_DEFAULT_V@)
 FLEX_V_0 = @printf '  %$(DX_ALIGN_V)s %s\n' 'FLEX    ' $<;
 
-.y.c: ;
-.l.c: ;
+DEV_TOOL_ERROR = { \
+  echo "ERROR: *** $$tool is missing on your system."; \
+  echo "       *** Because of this, I cannot compile $$toolsrc, but"; \
+  echo "       *** (perhaps because you modified it) the sources appear out"; \
+  echo "       *** of date.  If $$tool is installed but was not detected by"; \
+  echo "       *** configure, consired setting $$toolvar and re-running configure."; \
+  echo "       *** See config.log for more details."; } >&2; false
 
+.y.c: ;
 .y.stamp:
+if !HAVE_BISON
+       $(BISON_V)tool=bison toolvar=BISON toolsrc=$<; $(DEV_TOOL_ERROR)
+endif
        $(AM_V_at) touch $@.tmp
        $(BISON_V) $(BISON) $(BISON_COMPAT) -o $*.c --defines=$*.h.tmp $(BISONFLAGS) $<
        $(AM_V_at) if cmp $*.h.tmp $*.h >/dev/null 2>&1; then \
@@ -205,7 +215,11 @@ FLEX_V_0 = @printf '  %$(DX_ALIGN_V)s %s\n' 'FLEX    ' $<;
        fi
        $(AM_V_at) mv -f $@.tmp $@
 
+.l.c: ;
 .l.stamp:
+if !HAVE_FLEX
+       $(FLEX_V)tool=flex toolvar=FLEX toolsrc=$<; $(DEV_TOOL_ERROR)
+endif
        $(AM_V_at) touch $@.tmp
        $(FLEX_V) $(FLEX) -o $*.c --header-file=$*.h.tmp $(FLEXFLAGS) $<
        $(AM_V_at) if cmp $*.h.tmp $*.h >/dev/null 2>&1; then \