summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@colm.net>2019-12-15 13:39:14 +0200
committerAdrian Thurston <thurston@colm.net>2019-12-15 14:00:49 +0200
commit89e96734e0f155ba8258411df1dbf38e5c0ff809 (patch)
treec588b7ef3357db56fdb487d53fd9fa93c7fe932c
parentc73e639af4fb3a1b383d4a301929aa86783ea10f (diff)
downloadcolm-89e96734e0f155ba8258411df1dbf38e5c0ff809.tar.gz
build system fixes
1. The version.h file needs to be listed in BUILT_SOURCES ahead of it's use in a sources list. 2. The gen/if[123].h files, even though they are listed in BUILT_SOURCES, are not getting built ahead of their use in include files. Solution here is to list dependency explicitly. See note in source file. refs #87
-rw-r--r--colm/Makefile.am23
1 files changed, 15 insertions, 8 deletions
diff --git a/colm/Makefile.am b/colm/Makefile.am
index fe594521..071dfb22 100644
--- a/colm/Makefile.am
+++ b/colm/Makefile.am
@@ -71,7 +71,7 @@ colmincdir = $(includedir)/colm
colminc_HEADERS = $(RUNTIME_HDR)
-BUILT_SOURCES = include/colm
+BUILT_SOURCES = version.h include/colm
if EXTERNAL_COLM
@@ -115,14 +115,20 @@ gen/if1.h: tar/bootstrap1.tar
gen/if1.cc: tar/bootstrap1.tar
tar -C gen -xmf $< if1.cc
+# Listing if1.h in BUILT_SOURCES isn't sufficient because it depends on the
+# building of bootstrap0. Automake wants to put all built sources into a list
+# of files built before ANYTHING else (which includes bootstrap0). Not sure if
+# it is rejected by automake or make. But in any case, it doesn't work. Fixed
+# with the following additional dependency.
+BUILT_SOURCES += gen/parse1.c gen/if1.h gen/if1.cc
+loadinit.cc: gen/if1.h
+
bootstrap1_CXXFLAGS = $(common_CFLAGS) -DLOAD_INIT
bootstrap1_CFLAGS = $(common_CFLAGS)
-bootstrap1_SOURCES = loadinit.h loadinit.cc main.cc
+bootstrap1_SOURCES = loadinit.h loadinit.cc main.cc version.h
nodist_bootstrap1_SOURCES = gen/if1.h gen/if1.cc gen/parse1.c
bootstrap1_LDADD = libprog.a libcolm.la
-BUILT_SOURCES += gen/parse1.c gen/if1.h gen/if1.cc
-
#
# Bootstrap2: The input program is specified using the colm grammar used in
# bootstrap1, plus some rewrite rules that implement the final parts of
@@ -144,11 +150,13 @@ gen/if2.h: tar/bootstrap2.tar
gen/if2.cc: tar/bootstrap2.tar
tar -C gen -xmf $< if2.cc
+
BUILT_SOURCES += gen/parse2.c gen/if2.h gen/if2.cc
+loadcolm.cc: gen/if2.h
bootstrap2_CXXFLAGS = $(common_CFLAGS) -DLOAD_COLM
bootstrap2_CFLAGS = $(common_CFLAGS)
-bootstrap2_SOURCES = loadcolm.h loadcolm.cc main.cc
+bootstrap2_SOURCES = loadcolm.h loadcolm.cc main.cc version.h
nodist_bootstrap2_SOURCES = gen/if2.h gen/if2.cc gen/parse2.c
bootstrap2_LDADD = libprog.a libcolm.la
@@ -169,15 +177,14 @@ gen/if3.cc: tar/bootstrap3.tar
tar -C gen -xmf $< if3.cc
BUILT_SOURCES += gen/parse3.c gen/if3.h gen/if3.cc
+#loadcolm.cc: gen/if3.h
colm_CXXFLAGS = $(common_CFLAGS) -DLOAD_COLM
colm_CFLAGS = $(common_CFLAGS)
-colm_SOURCES = loadcolm.h loadcolm.cc main.cc
+colm_SOURCES = loadcolm.h loadcolm.cc main.cc version.h
nodist_colm_SOURCES = gen/if3.h gen/if3.cc gen/parse3.c
colm_LDADD = libprog.a libcolm.la
-BUILT_SOURCES += version.h include/colm
-
include/colm:
mkdir -p include
ln -s .. include/colm