From: Kim Nguyễn Date: Mon, 3 Mar 2014 16:00:05 +0000 (+0100) Subject: Modify configure.in and Remakefile.in to use menhir instead of ocamlyacc. X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=commitdiff_plain;h=91d60f0cf46661abde8df94fead3688ec43a2db9 Modify configure.in and Remakefile.in to use menhir instead of ocamlyacc. (This only modify the build process, not the parser itself, so the parser is still a plain ocamlyacc file). --- diff --git a/Remakefile.in b/Remakefile.in index 1ff0b30..1b54199 100644 --- a/Remakefile.in +++ b/Remakefile.in @@ -3,8 +3,8 @@ OCAMLFINDPACKAGES = "ulex,unix,expat,camlp4.macro,bigarray" OCAMLFINDSYNTAX = camlp4o OCAMLFINDPPOPTS = $(addprefix "-ppopt ", @CAMLP4FLAGS@ -I include) OCAMLFINDINCLUDES = $(addprefix "-I ", src) -OCAMLFINDFLAGS = -syntax $(OCAMLFINDSYNTAX) -package $(OCAMLFINDPACKAGES) \ - $(OCAMLFINDPPOPTS) $(OCAMLFINDINCLUDES) +OCAMLFINDFLAGSNOSYNTAX = -package $(OCAMLFINDPACKAGES) $(OCAMLFINDPPOPTS) $(OCAMLFINDINCLUDES) +OCAMLFINDFLAGS = -syntax $(OCAMLFINDSYNTAX) $(OCAMLFINDFLAGSNOSYNTAX) OCAMLFINDLINKFLAGS = -linkpkg PACKAGE = @PACKAGE_TARNAME@ SRC = src @@ -17,13 +17,18 @@ OCAMLDEP = @OCAMLDEP@ ODEPS = tools/odeps.sh $(OCAMLDEP) OCAMLC = @OCAMLC@ OCAMLOPT = @OCAMLOPT@ -OCAMLFLAGS = @OCAMLFLAGS@ +OCAMLFLAGS = @OCAMLFLAGS@ OCAMLOPTFLAGS = @OCAMLOPTFLAGS@ OCAMLCFLAGS = @OCAMLCFLAGS@ -OCAMLYACC = @OCAMLYACC@ +MENHIR = @MENHIR@ + + all: $(BIN) +src/xpath/xpath_internal_parser.cmx: OCAMLFINDFLAGS = $(OCAMLFINDFLAGSNOSYNTAX) +src/xpath/xpath_internal_parser.cmo: OCAMLFINDFLAGS = $(OCAMLFINDFLAGSNOSYNTAX) + tools: tools/xml_diff.native$(EXE) tools/XPathEval.class tools/split_path.native$(EXE) Remakefile: Remakefile.in config.status @@ -77,7 +82,7 @@ distclean: clean test_clean %.ml: if test -f $*.mly; then $(REMAKE) $*.mly - $(OCAMLYACC) $*.mly + $(MENHIR) $*.mly elif test -f $*.mll; then $(REMAKE) $*.mll $(OCAMLLEX) $*.mll @@ -97,10 +102,7 @@ distclean: clean test_clean REMAKE="$(REMAKE) OCAMLNATIVE=$NATIVE" OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)" SRC=$(SRC) - if test -f "$base".flags; then - FLAGS=`cat "$base".flags` - fi - COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS) $FLAGS" + COMPILE="$(OCAMLOPT) $(OCAMLFLAGS) $(OCAMLOPTFLAGS) $(OCAMLFINDFLAGS)" . tools/ocamldriver.sh %.cmo %.depo: @@ -109,9 +111,10 @@ distclean: clean test_clean DEPEXT=depo NATIVE="" REMAKE="$(REMAKE) OCAMLNATIVE=$NATIVE" - OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS)" + OCAMLDEP="$(OCAMLDEP) $(OCAMLFINDFLAGS) $(OCAMLFIND_EXTRAFLAGS)" SRC=$(SRC) - COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFINDFLAGS)" + COMPILE="$(OCAMLC) $(OCAMLFLAGS) $(OCAMLCFLAGS) $(OCAMLFIND_EXTRAFLAGS) " + . tools/ocamldriver.sh %.cmi: diff --git a/configure.in b/configure.in index 5bcb4c0..34a9e31 100644 --- a/configure.in +++ b/configure.in @@ -68,49 +68,50 @@ esac AC_SUBST(OCAMLVERSION) +dnl ocamlyacc and ocamllex are not needed #detect ocamlyacc -OCAMLYACC=ocamlyacc -AC_ARG_WITH([ocamlyacc], - AS_HELP_STRING([--with-ocamlyacc=PATH], [location of the ocamlyacc binary]), - [OCAMLYACC="$withval"]) -AC_MSG_CHECKING([for ocamlyacc ($OCAMLYACC)]) -OCAMLYACC_VERSION=$($OCAMLYACC -version 2>/dev/null || echo foo) -case "$OCAMLYACC_VERSION" in - *$OCAMLVERSION) - AC_MSG_RESULT([ok]) - ;; - foo) - AC_MSG_RESULT([failed]) - AC_MSG_ERROR([Cannot find ocamlyacc]) - ;; - *) - AC_MSG_RESULT([failed]) - AC_MSG_ERROR([Bad ocamlyacc version]) - ;; -esac -AC_SUBST([OCAMLYACC]) - -#detect ocamllex -OCAMLLEX=ocamllex -AC_ARG_WITH([ocamllex], - AS_HELP_STRING([--with-ocamllex=PATH], [location of the ocamllex binary]), - [OCAMLLEX="$withval"]) -AC_MSG_CHECKING([for ocamllex ($OCAMLLEX)]) -OCAMLLEX_VERSION=$($OCAMLLEX -version 2>/dev/null || echo foo) -case "$OCAMLLEX_VERSION" in - *$OCAMLVERSION) - AC_MSG_RESULT([ok]) - ;; - foo) - AC_MSG_RESULT([failed]) - AC_MSG_ERROR([Cannot find ocamllex]) - ;; - *) - AC_MSG_RESULT([failed]) - AC_MSG_ERROR([Bad ocamllex version]) - ;; -esac -AC_SUBST([OCAMLLEX]) +dnl OCAMLYACC=ocamlyacc +dnl AC_ARG_WITH([ocamlyacc], +dnl AS_HELP_STRING([--with-ocamlyacc=PATH], [location of the ocamlyacc binary]), +dnl [OCAMLYACC="$withval"]) +dnl AC_MSG_CHECKING([for ocamlyacc ($OCAMLYACC)]) +dnl OCAMLYACC_VERSION=$($OCAMLYACC -version 2>/dev/null || echo foo) +dnl case "$OCAMLYACC_VERSION" in +dnl *$OCAMLVERSION) +dnl AC_MSG_RESULT([ok]) +dnl ;; +dnl foo) +dnl AC_MSG_RESULT([failed]) +dnl AC_MSG_ERROR([Cannot find ocamlyacc]) +dnl ;; +dnl *) +dnl AC_MSG_RESULT([failed]) +dnl AC_MSG_ERROR([Bad ocamlyacc version]) +dnl ;; +dnl esac +dnl AC_SUBST([OCAMLYACC]) + +dnl #detect ocamllex +dnl OCAMLLEX=ocamllex +dnl AC_ARG_WITH([ocamllex], +dnl AS_HELP_STRING([--with-ocamllex=PATH], [location of the ocamllex binary]), +dnl [OCAMLLEX="$withval"]) +dnl AC_MSG_CHECKING([for ocamllex ($OCAMLLEX)]) +dnl OCAMLLEX_VERSION=$($OCAMLLEX -version 2>/dev/null || echo foo) +dnl case "$OCAMLLEX_VERSION" in +dnl *$OCAMLVERSION) +dnl AC_MSG_RESULT([ok]) +dnl ;; +dnl foo) +dnl AC_MSG_RESULT([failed]) +dnl AC_MSG_ERROR([Cannot find ocamllex]) +dnl ;; +dnl *) +dnl AC_MSG_RESULT([failed]) +dnl AC_MSG_ERROR([Bad ocamllex version]) +dnl ;; +dnl esac +dnl AC_SUBST([OCAMLLEX]) #detect camlp4 @@ -157,6 +158,32 @@ else AC_MSG_ERROR([Cannot find ulex.]) fi + +MENHIR=menhir +AC_ARG_WITH([menhir], + AS_HELP_STRING([--with-menhir=PATH], [location of the menhir binary]), + [MENHIR="$withval"]) + +AC_MSG_CHECKING([for menhir ($MENHIR)]) + +MENHIR_VERSION=$($MENHIR --version 2>/dev/null || echo not_found) +MENHIR_VERSION=$(echo "$MENHIR_VERSION" | cut -f 2- -d ',' | cut -f 2- -d ' ') +case "$MENHIR_VERSION" in + 'version 201'[[0-9]]*) + AC_MSG_RESULT([ok (${MENHIR_VERSION})]) + ;; + not_found) + AC_MSG_RESULT([failed]) + AC_MSG_ERROR([Cannot find menhir]) + ;; + *) + AC_MSG_RESULT([failed]) + AC_MSG_ERROR([Your version of menhir is too old (${MENHIR_VERSION})]) + ;; +esac +AC_SUBST([MENHIR]) + + AC_MSG_CHECKING([for expat]) expat_path=`$OCAMLFIND query expat 2>/dev/null` if test "$expat_path" ; then