1
0
mirror of https://git.savannah.gnu.org/git/gperf.git synced 2025-12-02 21:19:24 +00:00

Support CPPFLAGS as mandated by GNU standards.

This commit is contained in:
Bruno Haible
2009-12-22 11:41:37 +01:00
parent 6eda9843bc
commit ce9b2f4eb4
5 changed files with 37 additions and 24 deletions

View File

@@ -1,3 +1,15 @@
2009-12-22 Bruno Haible <bruno@clisp.org>
Support CPPFLAGS as mandated by GNU standards.
* lib/Makefile.in (CPPFLAGS): Use autoconf determined value.
* src/Makefile.in (CPPFLAGS): Likewise.
* tests/Makefile.in (CPPFLAGS): Likewise.
(check-c, check-ada, check-modula3, check-pascal, check-lang-utf8,
test.$(OBJEXT), check-lang-ucs2, test2.$(OBJEXT), check-smtp): Use
CPPFLAGS when compiling a .c file.
(VALIDATE): Pass also CPPFLAGS.
* tests/validate: Use CPPFLAGS when compiling a C or C++ file.
2009-12-20 Bruno Haible <bruno@clisp.org> 2009-12-20 Bruno Haible <bruno@clisp.org>
* doc/gperf.info: Regenerated. * doc/gperf.info: Regenerated.

View File

@@ -1,6 +1,6 @@
# Makefile for gperf/lib # Makefile for gperf/lib
# Copyright (C) 1989, 1992, 1993, 1998, 2002 Free Software Foundation, Inc. # Copyright (C) 1989, 1992, 1993, 1998, 2002, 2009 Free Software Foundation, Inc.
# Written by Douglas C. Schmidt <schmidt@ics.uci.edu> # Written by Douglas C. Schmidt <schmidt@ics.uci.edu>
# and Bruno Haible <bruno@clisp.org>. # and Bruno Haible <bruno@clisp.org>.
# #
@@ -61,7 +61,7 @@ SHELL = /bin/sh
VPATH = $(srcdir) VPATH = $(srcdir)
OBJECTS = getopt.$(OBJEXT) getopt1.$(OBJEXT) getline.$(OBJEXT) hash.$(OBJEXT) OBJECTS = getopt.$(OBJEXT) getopt1.$(OBJEXT) getline.$(OBJEXT) hash.$(OBJEXT)
CPPFLAGS = -I$(srcdir) CPPFLAGS = @CPPFLAGS@ -I$(srcdir)
TARGETLIB = libgp.a TARGETLIB = libgp.a

View File

@@ -1,6 +1,6 @@
# Makefile for gperf/src # Makefile for gperf/src
# Copyright (C) 1989, 1992, 1993, 1998, 2000, 2002, 2006 Free Software Foundation, Inc. # Copyright (C) 1989, 1992, 1993, 1998, 2000, 2002, 2006, 2009 Free Software Foundation, Inc.
# Written by Douglas C. Schmidt <schmidt@ics.uci.edu> # Written by Douglas C. Schmidt <schmidt@ics.uci.edu>
# and Bruno Haible <bruno@clisp.org>. # and Bruno Haible <bruno@clisp.org>.
# #
@@ -64,7 +64,7 @@ VPATH = $(srcdir)
OBJECTS = version.$(OBJEXT) positions.$(OBJEXT) options.$(OBJEXT) keyword.$(OBJEXT) keyword-list.$(OBJEXT) \ OBJECTS = version.$(OBJEXT) positions.$(OBJEXT) options.$(OBJEXT) keyword.$(OBJEXT) keyword-list.$(OBJEXT) \
input.$(OBJEXT) bool-array.$(OBJEXT) hash-table.$(OBJEXT) search.$(OBJEXT) output.$(OBJEXT) main.$(OBJEXT) input.$(OBJEXT) bool-array.$(OBJEXT) hash-table.$(OBJEXT) search.$(OBJEXT) output.$(OBJEXT) main.$(OBJEXT)
LIBS = ../lib/libgp.a @GPERF_LIBM@ LIBS = ../lib/libgp.a @GPERF_LIBM@
CPPFLAGS = -I. -I$(srcdir)/../lib CPPFLAGS = @CPPFLAGS@ -I. -I$(srcdir)/../lib
TARGETPROG = gperf$(EXEEXT) TARGETPROG = gperf$(EXEEXT)

View File

@@ -34,6 +34,7 @@ CXX = @CXX@
CXXFLAGS = @CXXFLAGS@ CXXFLAGS = @CXXFLAGS@
CXXCPP = @CXXCPP@ CXXCPP = @CXXCPP@
# Both C and C++ compiler # Both C and C++ compiler
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
OBJEXT = @OBJEXT@ OBJEXT = @OBJEXT@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
@@ -69,33 +70,33 @@ extracheck : @CHECK_LANG_SYNTAX@
check-c: test.$(OBJEXT) check-c: test.$(OBJEXT)
@echo "testing ANSI C reserved words, all items should be found in the set" @echo "testing ANSI C reserved words, all items should be found in the set"
$(GPERF) -c -l -S1 -I -o $(srcdir)/c.gperf > cinset.c $(GPERF) -c -l -S1 -I -o $(srcdir)/c.gperf > cinset.c
$(CC) $(CFLAGS) $(LDFLAGS) -o cout cinset.c test.$(OBJEXT) $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o cout cinset.c test.$(OBJEXT)
./cout -v < $(srcdir)/c.gperf | LC_ALL=C tr -d '\r' > c.out ./cout -v < $(srcdir)/c.gperf | LC_ALL=C tr -d '\r' > c.out
diff $(srcdir)/c.exp c.out diff $(srcdir)/c.exp c.out
check-ada: test.$(OBJEXT) check-ada: test.$(OBJEXT)
$(GPERF) -k1,4,'$$' -I $(srcdir)/ada.gperf > adainset.c $(GPERF) -k1,4,'$$' -I $(srcdir)/ada.gperf > adainset.c
# double '$$' is only there since make gets confused; program wants only 1 '$' # double '$$' is only there since make gets confused; program wants only 1 '$'
$(CC) $(CFLAGS) $(LDFLAGS) -o aout adainset.c test.$(OBJEXT) $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o aout adainset.c test.$(OBJEXT)
@echo "testing Ada reserved words, all items should be found in the set" @echo "testing Ada reserved words, all items should be found in the set"
./aout -v < $(srcdir)/ada.gperf | LC_ALL=C tr -d '\r' > ada-res.out ./aout -v < $(srcdir)/ada.gperf | LC_ALL=C tr -d '\r' > ada-res.out
diff $(srcdir)/ada-res.exp ada-res.out diff $(srcdir)/ada-res.exp ada-res.out
$(GPERF) -D -k1,'$$' -s 2 -I -o $(srcdir)/adadefs.gperf > preinset.c $(GPERF) -D -k1,'$$' -s 2 -I -o $(srcdir)/adadefs.gperf > preinset.c
$(CC) $(CFLAGS) $(LDFLAGS) -o preout preinset.c test.$(OBJEXT) $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o preout preinset.c test.$(OBJEXT)
@echo "testing Ada predefined words, all items should be found in the set" @echo "testing Ada predefined words, all items should be found in the set"
./preout -v < $(srcdir)/adadefs.gperf | LC_ALL=C tr -d '\r' > ada-pred.out ./preout -v < $(srcdir)/adadefs.gperf | LC_ALL=C tr -d '\r' > ada-pred.out
diff $(srcdir)/ada-pred.exp ada-pred.out diff $(srcdir)/ada-pred.exp ada-pred.out
check-modula3: test.$(OBJEXT) check-modula3: test.$(OBJEXT)
$(GPERF) -k1,2,'$$' -I -o $(srcdir)/modula3.gperf > m3inset.c $(GPERF) -k1,2,'$$' -I -o $(srcdir)/modula3.gperf > m3inset.c
$(CC) $(CFLAGS) $(LDFLAGS) -o m3out m3inset.c test.$(OBJEXT) $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o m3out m3inset.c test.$(OBJEXT)
@echo "testing Modula3 reserved words, all items should be found in the set" @echo "testing Modula3 reserved words, all items should be found in the set"
./m3out -v < $(srcdir)/modula3.gperf | LC_ALL=C tr -d '\r' > modula.out ./m3out -v < $(srcdir)/modula3.gperf | LC_ALL=C tr -d '\r' > modula.out
diff $(srcdir)/modula.exp modula.out diff $(srcdir)/modula.exp modula.out
check-pascal: test.$(OBJEXT) check-pascal: test.$(OBJEXT)
$(GPERF) -o -S2 -I < $(srcdir)/pascal.gperf > pinset.c $(GPERF) -o -S2 -I < $(srcdir)/pascal.gperf > pinset.c
$(CC) $(CFLAGS) $(LDFLAGS) -o pout pinset.c test.$(OBJEXT) $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o pout pinset.c test.$(OBJEXT)
@echo "testing Pascal reserved words, all items should be found in the set" @echo "testing Pascal reserved words, all items should be found in the set"
./pout -v < $(srcdir)/pascal.gperf | LC_ALL=C tr -d '\r' > pascal.out ./pout -v < $(srcdir)/pascal.gperf | LC_ALL=C tr -d '\r' > pascal.out
diff $(srcdir)/pascal.exp pascal.out diff $(srcdir)/pascal.exp pascal.out
@@ -103,36 +104,36 @@ check-pascal: test.$(OBJEXT)
# check for 8-bit cleanliness # check for 8-bit cleanliness
check-lang-utf8: test.$(OBJEXT) check-lang-utf8: test.$(OBJEXT)
$(GPERF) -k1 -t -I -K foreign_name < $(srcdir)/lang-utf8.gperf > lu8inset.c $(GPERF) -k1 -t -I -K foreign_name < $(srcdir)/lang-utf8.gperf > lu8inset.c
$(CC) $(CFLAGS) $(LDFLAGS) -o lu8out lu8inset.c test.$(OBJEXT) $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o lu8out lu8inset.c test.$(OBJEXT)
@echo "testing UTF-8 encoded languages, all items should be found in the set" @echo "testing UTF-8 encoded languages, all items should be found in the set"
sed -e '1,6d' -e 's/,.*//' < $(srcdir)/lang-utf8.gperf | ./lu8out -v | LC_ALL=C tr -d '\r' > lang-utf8.out sed -e '1,6d' -e 's/,.*//' < $(srcdir)/lang-utf8.gperf | ./lu8out -v | LC_ALL=C tr -d '\r' > lang-utf8.out
diff $(srcdir)/lang-utf8.exp lang-utf8.out diff $(srcdir)/lang-utf8.exp lang-utf8.out
test.$(OBJEXT) : $(srcdir)/test.c test.$(OBJEXT) : $(srcdir)/test.c
$(CC) -c $(CFLAGS) $(srcdir)/test.c $(CC) -c $(CFLAGS) $(CPPFLAGS) $(srcdir)/test.c
# check for binary keywords with NUL bytes # check for binary keywords with NUL bytes
check-lang-ucs2: test2.$(OBJEXT) check-lang-ucs2: test2.$(OBJEXT)
$(GPERF) -k4 -t -l -I -K foreign_name < $(srcdir)/lang-ucs2.gperf > lu2inset.c $(GPERF) -k4 -t -l -I -K foreign_name < $(srcdir)/lang-ucs2.gperf > lu2inset.c
$(CC) $(CFLAGS) $(LDFLAGS) -o lu2out lu2inset.c test2.$(OBJEXT) $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o lu2out lu2inset.c test2.$(OBJEXT)
@echo "testing UCS-2 encoded languages, all items should be found in the set" @echo "testing UCS-2 encoded languages, all items should be found in the set"
./lu2out -v < $(srcdir)/lang-ucs2.in | LC_ALL=C tr -d '\r' > lang-ucs2.out ./lu2out -v < $(srcdir)/lang-ucs2.in | LC_ALL=C tr -d '\r' > lang-ucs2.out
diff $(srcdir)/lang-ucs2.exp lang-ucs2.out diff $(srcdir)/lang-ucs2.exp lang-ucs2.out
test2.$(OBJEXT) : $(srcdir)/test2.c test2.$(OBJEXT) : $(srcdir)/test2.c
$(CC) -c $(CFLAGS) $(srcdir)/test2.c $(CC) -c $(CFLAGS) $(CPPFLAGS) $(srcdir)/test2.c
# check case-insensitive lookup # check case-insensitive lookup
check-smtp: check-smtp:
@echo "testing SMTP keywords, case-insensitive" @echo "testing SMTP keywords, case-insensitive"
$(GPERF) --struct-type --readonly-table --enum --global -K field_name -N header_entry --ignore-case $(srcdir)/smtp.gperf > smtp.c $(GPERF) --struct-type --readonly-table --enum --global -K field_name -N header_entry --ignore-case $(srcdir)/smtp.gperf > smtp.c
$(CC) $(CFLAGS) $(LDFLAGS) -o smtp smtp.c $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o smtp smtp.c
./smtp ./smtp
$(GPERF) --struct-type --readonly-table --enum --global -K field_name -N header_entry --ignore-case --compare-strncmp $(srcdir)/smtp.gperf > smtp.c $(GPERF) --struct-type --readonly-table --enum --global -K field_name -N header_entry --ignore-case --compare-strncmp $(srcdir)/smtp.gperf > smtp.c
$(CC) $(CFLAGS) $(LDFLAGS) -o smtp smtp.c $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o smtp smtp.c
./smtp ./smtp
$(GPERF) --struct-type --readonly-table --enum --global -K field_name -N header_entry --ignore-case --compare-lengths $(srcdir)/smtp.gperf > smtp.c $(GPERF) --struct-type --readonly-table --enum --global -K field_name -N header_entry --ignore-case --compare-lengths $(srcdir)/smtp.gperf > smtp.c
$(CC) $(CFLAGS) $(LDFLAGS) -o smtp smtp.c $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o smtp smtp.c
./smtp ./smtp
# these next 5 are demos that show off the generated code # these next 5 are demos that show off the generated code
@@ -178,7 +179,7 @@ check-test:
# usable. (There are still platforms where gcc-2.8.0's fixincludes does not # usable. (There are still platforms where gcc-2.8.0's fixincludes does not
# work well enough.) # work well enough.)
VALIDATE = CC='$(CC)' CFLAGS='$(CFLAGS)' CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' GPERF='$(GPERF)' $(srcdir)/validate VALIDATE = CC='$(CC)' CFLAGS='$(CFLAGS)' CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' GPERF='$(GPERF)' $(srcdir)/validate
check-lang-syntax : force check-lang-syntax : force
$(VALIDATE) KR-C,C,ANSI-C,C++ -k1,2 $(srcdir)/jstest1.gperf $(VALIDATE) KR-C,C,ANSI-C,C++ -k1,2 $(srcdir)/jstest1.gperf

View File

@@ -26,34 +26,34 @@ for lang in `echo $languages | sed -e 's/,/ /g'`; do
${GPERF} -I -L KR-C "$@" > valitest.c ${GPERF} -I -L KR-C "$@" > valitest.c
grep -n ' const ' valitest.c /dev/null && exit 1 grep -n ' const ' valitest.c /dev/null && exit 1
if test $use_traditional = true; then if test $use_traditional = true; then
verbose ${CC} ${CFLAGS} -traditional valitest.c -o valitest verbose ${CC} ${CFLAGS} ${CPPFLAGS} -traditional valitest.c -o valitest
./valitest ./valitest
fi fi
verbose ${CC} ${CFLAGS} -ansi -pedantic valitest.c -o valitest verbose ${CC} ${CFLAGS} ${CPPFLAGS} -ansi -pedantic valitest.c -o valitest
./valitest ./valitest
;; ;;
C ) C )
echo "${GPERF} -I -L C $@ > valitest.c" echo "${GPERF} -I -L C $@ > valitest.c"
${GPERF} -I -L C "$@" > valitest.c ${GPERF} -I -L C "$@" > valitest.c
if test $use_traditional = true; then if test $use_traditional = true; then
verbose ${CC} ${CFLAGS} -traditional -Dconst= valitest.c -o valitest verbose ${CC} ${CFLAGS} ${CPPFLAGS} -traditional -Dconst= valitest.c -o valitest
./valitest ./valitest
fi fi
verbose ${CC} ${CFLAGS} -ansi -pedantic -pedantic-errors valitest.c -o valitest verbose ${CC} ${CFLAGS} ${CPPFLAGS} -ansi -pedantic -pedantic-errors valitest.c -o valitest
./valitest ./valitest
;; ;;
ANSI-C ) ANSI-C )
echo "${GPERF} -I -L ANSI-C $@ > valitest.c" echo "${GPERF} -I -L ANSI-C $@ > valitest.c"
${GPERF} -I -L ANSI-C "$@" > valitest.c ${GPERF} -I -L ANSI-C "$@" > valitest.c
verbose ${CC} ${CFLAGS} -ansi -pedantic -pedantic-errors valitest.c -o valitest verbose ${CC} ${CFLAGS} ${CPPFLAGS} -ansi -pedantic -pedantic-errors valitest.c -o valitest
./valitest ./valitest
verbose ${CXX} ${CXXFLAGS} -ansi -pedantic -pedantic-errors valitest.c -o valitest verbose ${CXX} ${CXXFLAGS} ${CPPFLAGS} -ansi -pedantic -pedantic-errors valitest.c -o valitest
./valitest ./valitest
;; ;;
"C++" ) "C++" )
echo "${GPERF} -I -L C++ $@ > valitest.c" echo "${GPERF} -I -L C++ $@ > valitest.c"
${GPERF} -I -L C++ "$@" > valitest.c ${GPERF} -I -L C++ "$@" > valitest.c
verbose ${CXX} ${CXXFLAGS} -ansi -pedantic -pedantic-errors -DCPLUSPLUS_TEST valitest.c -o valitest verbose ${CXX} ${CXXFLAGS} ${CPPFLAGS} -ansi -pedantic -pedantic-errors -DCPLUSPLUS_TEST valitest.c -o valitest
./valitest ./valitest
;; ;;
esac esac