dnl Choose defaults for the build_parsers and build_manual vars. If the dist
dnl file is present in the root then default to no, otherwise go for it.
AC_CHECK_FILES( $srcdir/DIST,
- [ build_parsers=no; build_manual=no; ],
+ [ . $srcdir/DIST; ],
[ build_parsers=yes; build_manual=yes; ] )
dnl Set to true if the build system should generate parsers from ragel and kelbt
dnl Check for definition of MAKE.
AC_PROG_MAKE_SET
+# Checks to carry out if we are building parsers.
if test "x$build_parsers" = "xyes"; then
-dnl Check for Ragel
AC_CHECK_PROG(RAGEL, ragel, ragel)
if test -z "$RAGEL"; then
echo
exit 1
fi
-dnl Check for Kelbt
AC_CHECK_PROG(KELBT, kelbt, kelbt)
if test -z "$KELBT"; then
echo
exit 1
fi
-fi # BUILD_PARSERS
+fi
+
+# Checks to carry out if we are building the manual.
+if test "x$build_manual" = "xyes"; then
+
+AC_CHECK_PROG(FIG2DEV, fig2dev, fig2dev)
+if test -z "$FIG2DEV"; then
+ echo
+ echo "error: fig2dev is required to build the manual"
+ echo
+ exit 1
+fi
+
+AC_CHECK_PROG(PDFLATEX, pdflatex, pdflatex)
+if test -z "$PDFLATEX"; then
+ echo
+ echo "error: pdflatex is required to build the manual"
+ echo
+ exit 1
+fi
+
+fi
dnl Check for the D compiler
AC_CHECK_PROG(GDC, gdc, gdc)
#
-# Copyright 2002-2007 Adrian Thurston <thurston@complang.org>
+# Copyright 2002-2009 Adrian Thurston <thurston@complang.org>
#
# This file is part of Ragel.
FLEX = flex
RE2C = re2c
-TARGS = \
+noinst_PROGRAMS = \
atoi awkemu clang concurrent cppscan format gotocallret mailbox params \
pullscan rlscan statechart
-#########################################
-
-all: $(TARGS)
-
-#%.o: %.c
-# gcc $(CFLAGS) -Wall -g -c -O3 -o $@ $<
-
-#%.o: %.cpp
-# g++ $(CXXFLAGS) -Wall -g -c -O3 -o $@ $<
-
-#########################################
-
-gotocallret: gotocallret.o
- g++ -g -o gotocallret gotocallret.o
+EXTRA_DIST = \
+ gotocallret.rl pullscan.rl concurrent.rl rlscan.rl statechart.rl \
+ params.rl clang.rl cppscan.rl format.rl awkemu.rl mailbox.rl atoi.rl
+
+gotocallret_SOURCES = gotocallret.cpp
+pullscan_SOURCES = pullscan.c
+concurrent_SOURCES = concurrent.cpp
+rlscan_SOURCES = rlscan.cpp
+statechart_SOURCES = statechart.cpp
+params_SOURCES = params.c
+clang_SOURCES = clang.c
+cppscan_SOURCES = cppscan.cpp
+format_SOURCES = format.c
+awkemu_SOURCES = awkemu.c
+mailbox_SOURCES = mailbox.cpp
+atoi_SOURCES = atoi.cpp
gotocallret.cpp: gotocallret.rl
$(RAGEL) -G2 -o gotocallret.cpp gotocallret.rl
-gotocallret.o: gotocallret.cpp
- g++ -Wall -g -c -O3 -o $@ $<
-
-
-pullscan: pullscan.o
- gcc -g -o $@ $<
-
pullscan.c: pullscan.rl $(RAGEL)
$(RAGEL) -G2 -o $@ pullscan.rl
-concurrent: concurrent.o
- g++ -g -o concurrent concurrent.o
-
concurrent.cpp: concurrent.rl $(RAGEL)
$(RAGEL) -G2 -o concurrent.cpp concurrent.rl
-rlscan: rlscan.o
- g++ -g -o rlscan rlscan.o
-
rlscan.cpp: rlscan.rl
$(RAGEL) -G2 -o rlscan.cpp rlscan.rl
-statechart: statechart.o
- g++ -g -o statechart statechart.o
-
statechart.cpp: statechart.rl
$(RAGEL) -G2 -o statechart.cpp statechart.rl
-statechart.o: statechart.cpp
- g++ -Wall -g -c -O3 -o $@ $<
-
-params: params.o
- gcc -g -o params params.o
-
params.c: params.rl
$(RAGEL) -G2 -o params.c params.rl
-clang: clang.o
- gcc -g -o clang clang.o
-
clang.c: clang.rl
$(RAGEL) -G2 -o clang.c clang.rl
-optional: lex-cppscan re2c-cppscan
-
-cppscan: cppscan.o
- g++ -g -o $@ $<
-
-lex-cppscan: lex-cppscan.o
- g++ -g -o $@ $<
-
-re2c-cppscan: re2c-cppscan.o
- g++ -g -o $@ $<
-
cppscan.cpp: cppscan.rl
$(RAGEL) -G2 -o $@ cppscan.rl
-lex-cppscan.cpp: cppscan.lex
- $(FLEX) -f -o $@ $<
-
-re2c-cppscan.cpp: cppscan.rec
- $(RE2C) -s $< > $@
-
-example.cpp: example.rec
- $(RE2C) -s $< > $@
-
-format: format.o
- gcc -g -o format format.o
-
format.c: format.rl
$(RAGEL) -G2 -o format.c format.rl
-awkemu: awkemu.o
- gcc -g -o awkemu awkemu.o
-
awkemu.c: awkemu.rl
$(RAGEL) -G2 -o awkemu.c awkemu.rl
-
-mailbox: mailbox.o
- g++ -g -o mailbox mailbox.o
-
mailbox.cpp: mailbox.rl
$(RAGEL) -G2 -o mailbox.cpp mailbox.rl
-atoi: atoi.o
- g++ -g -o atoi atoi.o
-
atoi.cpp: atoi.rl
$(RAGEL) -G2 -o atoi.cpp atoi.rl
-atoi.o: atoi.cpp
- g++ -Wall -g -c -O3 -o $@ $<
+###
+
+lex-cppscan.cpp: cppscan.lex
+ $(FLEX) -f -o $@ $<
+
+re2c-cppscan.cpp: cppscan.rec
+ $(RE2C) -s $< > $@
+
+example.cpp: example.rec
+ $(RE2C) -s $< > $@