summaryrefslogtreecommitdiff
path: root/src/Makefile.am
diff options
context:
space:
mode:
authorWill Estes <westes575@gmail.com>2015-12-07 15:37:01 -0500
committerWill Estes <westes575@gmail.com>2015-12-07 15:37:01 -0500
commit53e3088d75eb966101e4f229a0fe8e0fdd73ab7e (patch)
tree4455d099a153acf8275e1e98e781e5d55b57f251 /src/Makefile.am
parente0877888da128c7a1fcb24f5a7b5959c54631e18 (diff)
Built flex with itself.
Changes in scan.l need to be built into flex with the same version of flex in some cases. Since this build requirement is minimal, we simply bootstrap flex unconditionally. We intentionally exclude from version control the bootstrap artifacts as the extra copy of the lexer, the intermediate scanner and the bootstrap executable are not of interest.
Diffstat (limited to 'src/Makefile.am')
-rw-r--r--src/Makefile.am18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 475120c..97e0317 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -6,11 +6,20 @@ LIBS = @LIBINTL@ @LIBS@
m4 = @M4@
bin_PROGRAMS = flex
+noinst_PROGRAMS = stage1flex
lib_LTLIBRARIES = \
libfl.la \
libfl_pic.la
+stage1flex_SOURCES = \
+ scan.l \
+ $(COMMON_SOURCES)
+
flex_SOURCES = \
+ stage1scan.l \
+ $(COMMON_SOURCES)
+
+COMMON_SOURCES = \
buf.c \
ccl.c \
dfa.c \
@@ -23,7 +32,6 @@ flex_SOURCES = \
options.c \
parse.y \
regex.c \
- scan.l \
scanflags.c \
scanopt.c \
skel.c \
@@ -64,6 +72,8 @@ EXTRA_DIST = \
mkskel.sh \
gettext.h
+DISTCLEANFILES = stage1scan.c
+
MAINTAINERCLEANFILES = skel.c
$(srcdir)/skel.c: flex.skl mkskel.sh flexint.h tables_shared.h
@@ -76,6 +86,12 @@ $(srcdir)/skel.c: flex.skl mkskel.sh flexint.h tables_shared.h
$(SHELL) $(srcdir)/mkskel.sh >skel.c.tmp
mv skel.c.tmp $(srcdir)/skel.c
+stage1scan.l: scan.l
+ cp $(srcdir)/scan.l $(srcdir)/stage1scan.l
+
+stage1scan.c: stage1scan.l stage1flex$(EXEEXT)
+ $(top_builddir)/src/stage1flex$(EXEEXT) -o $@ $<
+
# Explicitly describe dependencies.
# You can recreate this with `gcc -I. -MM *.c'
buf.o: buf.c flexdef.h flexint.h