mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
Currently, the examples are extracted on the user's side. Unfortunately, that requires that the user has Perl, which is otherwise not needed for Bison. Let's ship the examples instead. The examples were handled this way so that we could depend on configure flags: if --enable-gcc-warnings is passed, it is understood as "I'm a maintainer", so the examples are generated with `#line`s. Regular users should not see them, so they are now unconditionally removed when rolling a tarball. Reported by Mike Frysinger. https://lists.gnu.org/archive/html/bison-patches/2015-04/msg00000.html * examples/local.mk: Ship all the extracted files. (examples-unline): New. Make sure that the generated tarballs do not contain the #lines.
82 lines
2.3 KiB
Makefile
82 lines
2.3 KiB
Makefile
## Copyright (C) 2005, 2008-2015, 2018 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/>.
|
|
|
|
dist_noinst_SCRIPTS = %D%/extexi %D%/test
|
|
TEST_LOG_COMPILER = $(top_srcdir)/%D%/test
|
|
|
|
AM_CXXFLAGS = \
|
|
$(WARN_CXXFLAGS) $(WARN_CXXFLAGS_TEST) $(WERROR_CXXFLAGS)
|
|
|
|
## ------------ ##
|
|
## Extracting. ##
|
|
## ------------ ##
|
|
|
|
doc = $(top_srcdir)/doc/bison.texi
|
|
extexi = $(top_srcdir)/%D%/extexi
|
|
if ENABLE_GCC_WARNINGS
|
|
EXTEXIFLAGS = --synclines
|
|
endif
|
|
extract = VERSION="$(VERSION)" $(PERL) $(extexi) $(EXTEXIFLAGS) $(doc) --
|
|
extracted =
|
|
EXTRA_DIST += $(extracted)
|
|
MAINTAINERCLEANFILES += $(extracted) %D%/extracted.stamp
|
|
%D%/extracted.stamp: $(doc) $(extexi)
|
|
$(AM_V_GEN)rm -f $@ $@.tmp
|
|
$(AM_V_at)$(MKDIR_P) %D%
|
|
$(AM_V_at)touch $@.tmp
|
|
$(AM_V_at)$(extract) $(extracted)
|
|
$(AM_V_at)mv $@.tmp $@
|
|
|
|
$(extracted): %D%/extracted.stamp
|
|
@test -f $@ || rm -f %D%/extracted.stamp
|
|
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) %D%/extracted.stamp
|
|
|
|
|
|
## ------ ##
|
|
## Dist. ##
|
|
## ------ ##
|
|
|
|
# Ship the stamp file, otherwise it will be recreated, which is what
|
|
# we want to avoid.
|
|
EXTRA_DIST += %D%/extracted.stamp
|
|
|
|
# Suppress the #lines from the examples when rolling the tarball, so
|
|
# that regular users have readable examples even before installing
|
|
# Bison.
|
|
dist-hook: examples-unline
|
|
.PHOMY: examples-unline
|
|
examples-unline:
|
|
for e in $(extracted); \
|
|
do \
|
|
e=$(distdir)/$$e; \
|
|
sed -e '/#line/d' $$e >$$e.tmp; \
|
|
mv -f $$e.tmp $$e; \
|
|
done
|
|
|
|
|
|
## ---------- ##
|
|
## Examples. ##
|
|
## ---------- ##
|
|
|
|
examplesdir = $(docdir)/examples
|
|
dist_examples_DATA = %D%/README
|
|
|
|
CLEANDIRS += %D%/*.dSYM
|
|
|
|
include %D%/calc++/local.mk
|
|
include %D%/c++/local.mk
|
|
include %D%/mfcalc/local.mk
|
|
include %D%/rpcalc/local.mk
|