Remove src/Makefile.am.

* src/Makefile.am: Rename as...
	* src/local.mk: this.
	Prefix all the paths with src/.
	(AUTOMAKE_OPTIONS): Build object files in the sub dirs.
	(AM_CPPFLAGS): Find find in builddir/src.
	(YACC): Move the flags into...
	(AM_YFLAGS): here.
	* maint.mk (sc_tight_scope): Disable.
	It used to bounce to the version in src/Makefile.am which is now
	part of this very Makefile.
	* Makefile.am, configure.ac: Adjust.
	* src/scan-code-c.c, src/scan-code.l: We can no longer rely on
	include "..." to find files "here": we are no longer in src/, so
	qualify the includes with src/.
	* doc/Makefile.am (PREPATH): No longer include the top_builddir
	prefix.
	(.x.1): Adjust to be able to create src/foo from the top level
	Makefile, instead of going bounce to src/Makefile the creation of
	foo.
This commit is contained in:
Akim Demaille
2008-09-23 15:54:56 +02:00
parent 5277c0a304
commit 0305d25eb0
13 changed files with 229 additions and 162 deletions

View File

@@ -1,3 +1,26 @@
2008-11-15 Akim Demaille <demaille@gostai.com>
Remove src/Makefile.am.
* src/Makefile.am: Rename as...
* src/local.mk: this.
Prefix all the paths with src/.
(AUTOMAKE_OPTIONS): Build object files in the sub dirs.
(AM_CPPFLAGS): Find find in builddir/src.
(YACC): Move the flags into...
(AM_YFLAGS): here.
* maint.mk (sc_tight_scope): Disable.
It used to bounce to the version in src/Makefile.am which is now
part of this very Makefile.
* Makefile.am, configure.ac: Adjust.
* src/scan-code-c.c, src/scan-code.l: We can no longer rely on
include "..." to find files "here": we are no longer in src/, so
qualify the includes with src/.
* doc/Makefile.am (PREPATH): No longer include the top_builddir
prefix.
(.x.1): Adjust to be able to create src/foo from the top level
Makefile, instead of going bounce to src/Makefile the creation of
foo.
2008-11-15 Akim Demaille <demaille@gostai.com>
Remove useless variable.

View File

@@ -17,7 +17,7 @@
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = po runtime-po lib src doc tests
SUBDIRS = po runtime-po lib . doc tests
if BISON_CXX_WORKS
SUBDIRS += examples/calc++
endif
@@ -33,10 +33,13 @@ EXTRA_DIST = .prev-version .version cfg.mk maint.mk \
djgpp/subpipe.c djgpp/subpipe.h djgpp/djunpack.bat \
djgpp/fnchange.lst djgpp/testsuite.sed
# Initialization before completion by local.mk's.
BUILT_SOURCES =
include build-aux/local.mk
include data/local.mk
include etc/local.mk
include examples/local.mk
include src/local.mk
.PHONY: maintainer-check
maintainer-check:
@@ -59,7 +62,7 @@ maintainer-xml-check:
# a developer might naively reference .version in a test case while the bison
# executable still compiles with VERSION, and so the test case might fail or
# pass incorrectly.
BUILT_SOURCES = $(top_srcdir)/.version
BUILT_SOURCES += $(top_srcdir)/.version
$(top_srcdir)/.version: configure
echo $(VERSION) > $@-t && mv $@-t $@
dist-hook:

View File

@@ -79,7 +79,7 @@ AC_ARG_ENABLE([yacc],
, [enable_yacc=yes])
case $enable_yacc in
yes)
YACC_SCRIPT=yacc
YACC_SCRIPT=src/yacc
YACC_LIBRARY=liby.a;;
*)
YACC_SCRIPT=
@@ -151,7 +151,7 @@ gt_JAVAEXEC
AC_CONFIG_FILES([Makefile
po/Makefile.in
examples/calc++/Makefile
lib/Makefile src/Makefile
lib/Makefile
doc/Makefile
doc/yacc.1])
AC_OUTPUT

View File

@@ -66,28 +66,30 @@ MOSTLYCLEANFILES = $(srcdir)/*.t
SUFFIXES = .x .1
PREPATH = $(top_builddir)/src
PREPATH = src
.x.1:
@program=`expr "/$*" : '.*/\(.*\)'` && \
save_IFS=$IFS; \
IFS=$(PATH_SEPARATOR); \
for dir in $(PREPATH); do \
IFS=$save_IFS; \
echo cd $$dir '&&' $(MAKE) $(AM_MAKEFLAGS) $$program && \
(cd $$dir && $(MAKE) $(AM_MAKEFLAGS) $$program) || exit; \
@program=`expr "/$*" : '.*/\(.*\)'` && \
save_IFS=$IFS; \
IFS=$(PATH_SEPARATOR); \
for dir in $(PREPATH); do \
IFS=$save_IFS; \
echo cd $(top_builddir) '&&' \
$(MAKE) $(AM_MAKEFLAGS) $$dir/$$program && \
(cd $(top_builddir) && \
$(MAKE) $(AM_MAKEFLAGS) $$dir/$$program) || exit; \
done
@echo "Updating man page $@"
PATH="$(PREPATH)$(PATH_SEPARATOR)$$PATH"; \
export PATH; \
$(HELP2MAN) \
--include=$*.x \
--include=$(srcdir)/common.x \
PATH="$(top_builddir)/$(PREPATH)$(PATH_SEPARATOR)$$PATH"; \
export PATH; \
$(HELP2MAN) \
--include=$*.x \
--include=$(srcdir)/common.x \
--output=$@.t `echo '$*' | sed 's,.*/,,'`
if $(remove_time_stamp) $@ >$@a.t 2>/dev/null && \
$(remove_time_stamp) $@.t | cmp $@a.t - >/dev/null 2>&1; then \
touch $@; \
else \
mv $@.t $@; \
if $(remove_time_stamp) $@ >$@a.t 2>/dev/null && \
$(remove_time_stamp) $@.t | cmp $@a.t - >/dev/null 2>&1; then \
touch $@; \
else \
mv $@.t $@; \
fi
rm -f $@*.t

View File

@@ -404,8 +404,8 @@ sc_the_the:
{ echo '$(ME): found use of "the ''the";' 1>&2; \
exit 1; } || :
sc_tight_scope:
$(MAKE) -C src $@
#sc_tight_scope:
# $(MAKE) -C src $@
sc_trailing_blank:
@grep -n '[ ]$$' $$($(VC_LIST_EXCEPT)) && \

View File

@@ -1,115 +0,0 @@
# Make bison/src.
# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
AM_CPPFLAGS = -I$(top_srcdir)/lib
AM_YFLAGS = "-dv"
LDADD = ../lib/libbison.a $(LIBINTL)
# Use our own Bison to build the parser. Of course, you ought to
# keep a sane version of Bison nearby...
YACC = ../tests/bison -y --warnings=all,error --report=all
bin_PROGRAMS = bison
bin_SCRIPTS = $(YACC_SCRIPT)
EXTRA_SCRIPTS = yacc
bison_SOURCES = \
LR0.c LR0.h \
assoc.c assoc.h \
closure.c closure.h \
complain.c complain.h \
conflicts.c conflicts.h \
derives.c derives.h \
files.c files.h \
flex-scanner.h \
getargs.c getargs.h \
gram.c gram.h \
lalr.h lalr.c \
location.c location.h \
main.c \
muscle_tab.c muscle_tab.h \
nullable.c nullable.h \
output.c output.h \
parse-gram.h parse-gram.y \
print.c print.h \
print_graph.c print_graph.h \
print-xml.c print-xml.h \
reader.c reader.h \
reduce.c reduce.h \
relation.c relation.h \
scan-code.h scan-code-c.c \
scan-gram.h scan-gram-c.c \
scan-skel.h scan-skel-c.c \
state.c state.h \
symlist.c symlist.h \
symtab.c symtab.h \
system.h \
tables.h tables.c \
uniqstr.c uniqstr.h \
graphviz.c graphviz.h
EXTRA_bison_SOURCES = scan-code.l scan-skel.l scan-gram.l
BUILT_SOURCES = \
parse-gram.c parse-gram.h \
scan-code.c \
scan-skel.c \
scan-gram.c
MOSTLYCLEANFILES = yacc
yacc:
echo '#! /bin/sh' >$@
echo "exec '$(bindir)/bison' -y "'"$$@"' >>$@
chmod a+x $@
echo:
echo $(bison_SOURCES) $(noinst_HEADERS)
# The following rule is not designed to be portable,
# and relies on tools that not everyone has.
# Most functions in src/*.c should have static scope.
# Any that don't must be marked with `extern', but `main'
# and `usage' are exceptions. They're always extern, but
# don't need to be marked.
#
# The second nm|grep checks for file-scope variables with `extern' scope.
sc_tight_scope: $(all_programs)
@t=exceptions-$$$$; \
trap 's=$$?; rm -f $$t; exit $$s' 0 1 2 13 15; \
( printf '^main$$\n^usage$$\n'; \
grep -h -A1 '^extern .*[^;]$$' $(SOURCES) \
| grep -vE '^(extern |--)' |sed 's/^/^/;s/ .*/$$/' ) > $$t; \
if nm -e *.$(OBJEXT) \
| sed -n 's/.* T //p' \
| grep -Ev -f $$t; then \
echo 'the above functions should have static scope' 1>&2; \
exit 1; \
fi; \
( printf '^program_name$$\n'; \
sed -n 's/^extern .*[* ]\([a-zA-Z_][a-zA-Z_0-9]*\);$$/^\1$$/p' \
$$(ls $(SOURCES) | grep '\.h$$') /dev/null) > $$t; \
if nm -e *.$(OBJEXT) \
| sed -n 's/.* [BD] //p' \
| grep -Ev -f $$t; then \
echo 'the above variables should have static scope' 1>&2; \
exit 1; \
fi

154
src/local.mk Normal file
View File

@@ -0,0 +1,154 @@
## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
## Foundation, Inc.
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
AUTOMAKE_OPTIONS = subdir-objects
AM_CPPFLAGS = -I$(top_srcdir)/lib
# Find builddir/src/scan-code.c etc.
AM_CPPFLAGS += -I$(top_builddir)
AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
LDADD = $(top_builddir)/lib/libbison.a $(LIBINTL)
# Use our own Bison to build the parser. Of course, you ought to
# keep a sane version of Bison nearby...
YACC = $(top_builddir)/tests/bison -y
AM_YFLAGS = -dv --warnings=all,error --report=all
bin_PROGRAMS = src/bison
bin_SCRIPTS = $(YACC_SCRIPT)
EXTRA_SCRIPTS = src/yacc
src_bison_SOURCES = \
src/LR0.c \
src/LR0.h \
src/assoc.c \
src/assoc.h \
src/closure.c \
src/closure.h \
src/complain.c \
src/complain.h \
src/conflicts.c \
src/conflicts.h \
src/derives.c \
src/derives.h \
src/files.c \
src/files.h \
src/flex-scanner.h \
src/getargs.c \
src/getargs.h \
src/gram.c \
src/gram.h \
src/graphviz.c \
src/graphviz.h \
src/lalr.c \
src/lalr.h \
src/location.c \
src/location.h \
src/main.c \
src/muscle_tab.c \
src/muscle_tab.h \
src/nullable.c \
src/nullable.h \
src/output.c \
src/output.h \
src/parse-gram.h \
src/parse-gram.y \
src/print-xml.c \
src/print-xml.h \
src/print.c \
src/print.h \
src/print_graph.c \
src/print_graph.h \
src/reader.c \
src/reader.h \
src/reduce.c \
src/reduce.h \
src/relation.c \
src/relation.h \
src/scan-code-c.c \
src/scan-code.h \
src/scan-gram-c.c \
src/scan-gram.h \
src/scan-skel-c.c \
src/scan-skel.h \
src/state.c \
src/state.h \
src/symlist.c \
src/symlist.h \
src/symtab.c \
src/symtab.h \
src/system.h \
src/tables.c \
src/tables.h \
src/uniqstr.c \
src/uniqstr.h
EXTRA_src_bison_SOURCES = \
src/scan-code.l \
src/scan-gram.l \
src/scan-skel.l
BUILT_SOURCES += \
src/parse-gram.c \
src/parse-gram.h \
src/scan-code.c \
src/scan-gram.c \
src/scan-skel.c
MOSTLYCLEANFILES = src/yacc
src/yacc:
rm -f $@ $@.tmp
echo '#! /bin/sh' >$@.tmp
echo "exec '$(bindir)/bison' -y "'"$$@"' >>$@.tmp
chmod a+x $@.tmp
mv $@.tmp $@
echo:
echo $(src_bison_SOURCES) $(noinst_HEADERS)
# The following rule is not designed to be portable,
# and relies on tools that not everyone has.
# Most functions in src/*.c should have static scope.
# Any that don't must be marked with `extern', but `main'
# and `usage' are exceptions. They're always extern, but
# don't need to be marked.
#
# The second nm|grep checks for file-scope variables with `extern' scope.
sc_tight_scope: $(all_programs)
@t=exceptions-$$$$; \
trap 's=$$?; rm -f $$t; exit $$s' 0 1 2 13 15; \
( printf '^main$$\n^usage$$\n'; \
grep -h -A1 '^extern .*[^;]$$' $(SOURCES) \
| grep -vE '^(extern |--)' |sed 's/^/^/;s/ .*/$$/' ) > $$t; \
if nm -e *.$(OBJEXT) \
| sed -n 's/.* T //p' \
| grep -Ev -f $$t; then \
echo 'the above functions should have static scope' 1>&2; \
exit 1; \
fi; \
( printf '^program_name$$\n'; \
sed -n 's/^extern .*[* ]\([a-zA-Z_][a-zA-Z_0-9]*\);$$/^\1$$/p' \
$$(ls $(SOURCES) | grep '\.h$$') /dev/null) > $$t; \
if nm -e *.$(OBJEXT) \
| sed -n 's/.* [BD] //p' \
| grep -Ev -f $$t; then \
echo 'the above variables should have static scope' 1>&2; \
exit 1; \
fi

View File

@@ -1,3 +1,3 @@
#include <config.h>
#include "system.h"
#include "scan-code.c"
#include "src/scan-code.c"

View File

@@ -27,16 +27,16 @@
#define code_wrap() 1
#define FLEX_PREFIX(Id) code_ ## Id
#include "flex-scanner.h"
#include <src/flex-scanner.h>
#include "complain.h"
#include "reader.h"
#include "getargs.h"
#include <src/complain.h>
#include <src/reader.h>
#include <src/getargs.h>
#include <get-errno.h>
#include <quote.h>
#include "scan-code.h"
#include "symlist.h"
#include <src/scan-code.h>
#include <src/symlist.h>
/* The current calling start condition: SC_RULE_ACTION or
SC_SYMBOL_ACTION. */

View File

@@ -1,3 +1,3 @@
#include <config.h>
#include "system.h"
#include "scan-gram.c"
#include "src/scan-gram.c"

View File

@@ -28,19 +28,19 @@
#define gram_wrap() 1
#define FLEX_PREFIX(Id) gram_ ## Id
#include "flex-scanner.h"
#include <src/flex-scanner.h>
#include "complain.h"
#include "files.h"
#include "gram.h"
#include "quotearg.h"
#include "reader.h"
#include "uniqstr.h"
#include <src/complain.h>
#include <src/files.h>
#include <src/gram.h>
#include <quotearg.h>
#include <src/reader.h>
#include <src/uniqstr.h>
#include <mbswidth.h>
#include <quote.h>
#include "scan-gram.h"
#include <src/scan-gram.h>
#define YY_DECL GRAM_LEX_DECL

View File

@@ -1,3 +1,3 @@
#include <config.h>
#include "system.h"
#include "scan-skel.c"
#include "src/scan-skel.c"

View File

@@ -1,6 +1,6 @@
/* Scan Bison Skeletons. -*- C -*-
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -28,16 +28,16 @@
#define skel_wrap() 1
#define FLEX_PREFIX(Id) skel_ ## Id
#include "flex-scanner.h"
#include <src/flex-scanner.h>
#include <dirname.h>
#include <error.h>
#include <quotearg.h>
#include "complain.h"
#include "getargs.h"
#include "files.h"
#include "scan-skel.h"
#include <src/complain.h>
#include <src/getargs.h>
#include <src/files.h>
#include <src/scan-skel.h>
#define YY_DECL static int skel_lex (void)
YY_DECL;