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,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;