diff options
-rw-r--r-- | colm/Makefile.am | 42 | ||||
-rw-r--r-- | colm/prog.lm | 13 | ||||
-rw-r--r-- | configure.ac | 16 |
3 files changed, 54 insertions, 17 deletions
diff --git a/colm/Makefile.am b/colm/Makefile.am index e1e758fd..cce19986 100644 --- a/colm/Makefile.am +++ b/colm/Makefile.am @@ -25,7 +25,6 @@ AM_CPPFLAGS = -I$(top_srcdir)/aapl -Iinclude AUTOMAKE_OPTIONS = subdir-objects bin_PROGRAMS = colm -noinst_PROGRAMS = bootstrap0 bootstrap1 RUNTIME_SRC = \ map.c pdarun.c list.c input.c stream.c debug.c \ @@ -38,7 +37,6 @@ RUNTIME_HDR = \ pdarun.h map.h type.h tree.h struct.h program.h colm.h internal.h lib_LTLIBRARIES = libcolm.la - noinst_LIBRARIES = libprog.a libcolm_la_SOURCES = $(RUNTIME_SRC) @@ -69,18 +67,6 @@ libprog_a_SOURCES = \ libprog_a_CXXFLAGS = $(common_CFLAGS) -bootstrap0_CXXFLAGS = $(common_CFLAGS) -DCONS_INIT -bootstrap0_SOURCES = consinit.cc consinit.h main.cc -bootstrap0_LDADD = libprog.a libcolm.la - -bootstrap1_CXXFLAGS = $(common_CFLAGS) -DLOAD_INIT -bootstrap1_CFLAGS = $(common_CFLAGS) -bootstrap1_SOURCES = \ - loadinit.h loadinit.cc main.cc -nodist_bootstrap1_SOURCES = \ - gen/if1.h gen/if1.cc gen/parse1.c -bootstrap1_LDADD = libprog.a libcolm.la - colm_CXXFLAGS = $(common_CFLAGS) -DLOAD_COLM colm_CFLAGS = $(common_CFLAGS) colm_SOURCES = \ @@ -93,6 +79,32 @@ colmincdir = $(includedir)/colm colminc_HEADERS = $(RUNTIME_HDR) +if EXTERNAL_COLM + +gen/parse2.c: $(EXTERNAL_COLM)/bin/colm prog.lm + mkdir -p gen + $(EXTERNAL_COLM)/bin/colm -c -o gen/parse2.c -e gen/if2.h -x gen/if2.cc prog.lm + +gen/if2.h: gen/parse2.c +gen/if2.cc: gen/parse2.c + +gen/colm-if2.$(OBJEXT): gen/if2.h gen/if2.cc gen/parse2.c +colm-loadcolm.$(OBJEXT): gen/if2.h gen/if2.cc gen/parse2.c + +else + +noinst_PROGRAMS = bootstrap0 bootstrap1 + +bootstrap0_CXXFLAGS = $(common_CFLAGS) -DCONS_INIT +bootstrap0_SOURCES = consinit.cc consinit.h main.cc +bootstrap0_LDADD = libprog.a libcolm.la + +bootstrap1_CXXFLAGS = $(common_CFLAGS) -DLOAD_INIT +bootstrap1_CFLAGS = $(common_CFLAGS) +bootstrap1_SOURCES = loadinit.h loadinit.cc main.cc +nodist_bootstrap1_SOURCES = gen/if1.h gen/if1.cc gen/parse1.c +bootstrap1_LDADD = libprog.a libcolm.la + gen/parse1.c: bootstrap0$(EXEEXT) mkdir -p gen $(builddir)/bootstrap0 -c -o gen/parse1.c -e gen/if1.h -x gen/if1.cc @@ -113,6 +125,8 @@ bootstrap1-loadinit.$(OBJEXT): gen/if1.h gen/if1.cc gen/parse1.c gen/colm-if2.$(OBJEXT): gen/if2.h gen/if2.cc gen/parse2.c colm-loadcolm.$(OBJEXT): gen/if2.h gen/if2.cc gen/parse2.c +endif + BUILT_SOURCES = version.h include/colm include/colm: diff --git a/colm/prog.lm b/colm/prog.lm new file mode 100644 index 00000000..ab201e94 --- /dev/null +++ b/colm/prog.lm @@ -0,0 +1,13 @@ +include 'colm.lm' + +export ColmTree: start +export ColmError: str + +A: str = argv->pop() +F: stream = open( A, 'r' ) +parse P: start [ F ] + +ColmTree = P +ColmError = error + + diff --git a/configure.ac b/configure.ac index bbf267bd..932e3af3 100644 --- a/configure.ac +++ b/configure.ac @@ -275,12 +275,22 @@ SED_SUBST="$SED_SUBST -e 's|@CRACK_BIN@|${CRACK_BIN}|g'" AC_SUBST(CRACK_BIN) +dnl Generic dependency specification. +AC_ARG_WITH(colm, + [AC_HELP_STRING([--with-colm], [colm install to build bootstrap programs])], + [EXTERNAL_COLM="$withval"], + [] +) -AC_SUBST(SED_SUBST) +AM_CONDITIONAL([EXTERNAL_COLM], [test "x$EXTERNAL_COLM" != x]) +AC_SUBST(EXTERNAL_COLM) -AC_CONFIG_HEADERS([src/config.h colm/defs.h]) +dnl +dnl Wrap up. +dnl -dnl write output files +AC_SUBST(SED_SUBST) +AC_CONFIG_HEADERS([src/config.h colm/defs.h]) AC_OUTPUT([ Makefile aapl/Makefile |