From: thurston Date: Wed, 1 Jul 2009 22:37:41 +0000 (+0000) Subject: A number of build system improvements: source the DIST file, which contains X-Git-Tag: 2.0_alpha~11 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d98a79f1fdb5866b4d7390766113f5ebd2bc7f6c;hp=cb73256a4ebe325420a2a57967c67cd76014e024;p=external%2Fragel.git A number of build system improvements: source the DIST file, which contains settings for build_parsers and build_manual. This allows the user of a dist to enable only one. Added missing files to doc/Makefile.am and examples/Makefile.am. Added checks for pdflatex and fig2dev is build_manual is on. git-svn-id: http://svn.complang.org/ragel/trunk@939 052ea7fc-9027-0410-9066-f65837a77df0 --- diff --git a/Makefile.am b/Makefile.am index ca0cf6e..bbed893 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ -SUBDIRS = ragel aapl -DIST_SUBDIRS = $(SUBDIRS) contrib examples test doc +SUBDIRS = ragel doc +DIST_SUBDIRS = $(SUBDIRS) aapl contrib examples test dist_doc_DATA = CREDITS ChangeLog EXTRA_DIST = ragel.vim @@ -8,5 +8,12 @@ EXTRA_DIST = ragel.vim # This file is checked for by the configure script and its existence causes the # parsers and the manual to not be built when the distribution is built. dist-hook: - echo "This is a distribution of Ragel $(VERSION)." > $(distdir)/DIST + ( \ + echo "#!/bin/sh"; \ + echo ""; \ + echo "# Change to yes to enable building of parsers or manual. Reconfigure"; \ + echo "# afterwards."; \ + echo "build_parsers=no;"; \ + echo "build_manual=no;"; \ + ) > $(distdir)/DIST diff --git a/configure.in b/configure.in index f944cb6..c5c40bf 100644 --- a/configure.in +++ b/configure.in @@ -28,7 +28,7 @@ AC_CONFIG_HEADER(ragel/config.h) 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 @@ -54,9 +54,9 @@ AC_LANG_CPLUSPLUS 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 @@ -65,7 +65,6 @@ if test -z "$RAGEL"; then exit 1 fi -dnl Check for Kelbt AC_CHECK_PROG(KELBT, kelbt, kelbt) if test -z "$KELBT"; then echo @@ -74,7 +73,28 @@ if test -z "$KELBT"; then 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) diff --git a/doc/Makefile.am b/doc/Makefile.am index 4d1c620..1cbc742 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -22,6 +22,16 @@ man_MANS = ragel.1 dist_doc_DATA = ragel-guide.pdf +EXTRA_DIST = ragel-guide.tex \ + bmconcat.fig bmregex.fig dropdown.fig exdoneact.fig \ + exoutact1.fig exstrongsubtr.fig lines2.fig smallscanner.fig bmnull.fig \ + comments1.fig entryguard.fig exinter.fig exoutact2.fig exsubtr.fig \ + lmkleene.fig stembed.fig bmnum.fig comments2.fig exaction.fig \ + exnegate.fig explus.fig finguard.fig opconcat.fig bmor.fig conds1.fig \ + exallact.fig exoption.fig exstact.fig leftguard.fig opor.fig \ + bmrange.fig conds2.fig exconcat.fig exor.fig exstar.fig lines1.fig \ + opstar.fig + if BUILD_MANUAL .fig.pdf: diff --git a/examples/Makefile.am b/examples/Makefile.am index 959af6a..b4c6a94 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,5 +1,5 @@ # -# Copyright 2002-2007 Adrian Thurston +# Copyright 2002-2009 Adrian Thurston # # This file is part of Ragel. @@ -22,118 +22,70 @@ RAGEL = ../ragel/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 $< > $@