about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-01-30T16·32+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-01-30T16·32+0000
commitc6257185139bf5f298b19177867f3afa8e5472b7 (patch)
tree59b51de23f31e4e45b6499d91249218aa943877f
parentc5baaafae69394082817ede9e6eb3910c4601a72 (diff)
* Detect flex and bison; updated the manual.
-rw-r--r--configure.ac2
-rw-r--r--doc/manual/installation.xml55
-rw-r--r--doc/manual/overview.xml4
-rw-r--r--externals/Makefile.am35
-rw-r--r--src/libexpr/Makefile.am6
5 files changed, 48 insertions, 54 deletions
diff --git a/configure.ac b/configure.ac
index e04b9684b608..c6cb782d8f6e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,6 +45,8 @@ AC_LANG_POP(C++)
 AC_PATH_PROG(wget, wget)
 AC_PATH_PROG(xmllint, xmllint)
 AC_PATH_PROG(xsltproc, xsltproc)
+AC_PATH_PROG(flex, flex, false)
+AC_PATH_PROG(bison, bison, false)
 
 AC_ARG_WITH(docbook-catalog, AC_HELP_STRING([--with-docbook-catalog=PATH],
   [path of the DocBook XML DTD]),
diff --git a/doc/manual/installation.xml b/doc/manual/installation.xml
index 39f6654ef862..1f45404e94e3 100644
--- a/doc/manual/installation.xml
+++ b/doc/manual/installation.xml
@@ -46,25 +46,42 @@ $ svn checkout https://svn.cs.uu.nl:12443/repos/trace/nix/trunk nix</screen>
     </para>
 
     <para>
-      To rebuild this manual and the man-pages you need the
-      <command>xmllint</command> and <command>xsltproc</command>, which are
-      part of the <literal>libxml2</literal> and <literal>libxslt</literal>
-      packages, respectively.  You also need the <ulink
-        url='http://docbook.sourceforge.net/projects/xsl/'>DocBook XSL
-        stylesheets</ulink> and optionally the <ulink
-        url='http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip'>
-        DocBook XML 4.2 DTD</ulink>.  Note that these are only required if you
-      modify the manual sources or when you are building from the Subversion
-      repository.
-    </para>
-
-    <para>
-      Nix uses Sleepycat's Berkeley DB, CWI's ATerm library, and SDF parser
-      library.  These are included in the Nix source distribution.  If you
-      build from the Subversion repository, you must download them yourself and
-      place them in the <filename>externals/</filename> directory.  See
-      <filename>externals/Makefile.am</filename> for the precise URLs of these
-      packages.
+      To build this manual and the man-pages you need the
+      <command>xmllint</command> and <command>xsltproc</command>
+      programs, which are part of the <literal>libxml2</literal> and
+      <literal>libxslt</literal> packages, respectively.  You also
+      need the <ulink
+      url='http://docbook.sourceforge.net/projects/xsl/'>DocBook XSL
+      stylesheets</ulink> and optionally the <ulink
+      url='http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip'>
+      DocBook XML 4.2 DTD</ulink>.  Note that these are only required
+      if you modify the manual sources or when you are building from
+      the Subversion repository.
+    </para>
+
+    <para>
+      To build the parser, very <emphasis>recent</emphasis> versions
+      of Bison and Flex are required.  (This is because Nix needs GLR
+      support in Bison and reentrancy support in Flex.)  For Bison,
+      you need version 1.875c or higher (1.875 does
+      <emphasis>not</emphasis> work), which can be obtained from the
+      <ulink url='ftp://alpha.gnu.org/pub/gnu/bison'>GNU FTP
+      server</ulink>.  For Flex, you need version 2.5.31, which is
+      available on <ulink
+      url='http://lex.sourceforge.net/'>SourceForge</ulink>.  Slightly
+      older versions may also work, but ancient versions like the
+      ubiquitous 2.5.4a won't.  Note that these are only required if
+      you modify the parser or when you are building from the
+      Subversion repository.
+    </para>
+
+    <para>
+      Nix uses Sleepycat's Berkeley DB and CWI's ATerm library.  These
+      are included in the Nix source distribution.  If you build from
+      the Subversion repository, you must download them yourself and
+      place them in the <filename>externals/</filename> directory.
+      See <filename>externals/Makefile.am</filename> for the precise
+      URLs of these packages.
     </para>
   </sect1>
 
diff --git a/doc/manual/overview.xml b/doc/manual/overview.xml
index 5525f4bc0814..a5bcccd343e3 100644
--- a/doc/manual/overview.xml
+++ b/doc/manual/overview.xml
@@ -174,8 +174,8 @@ $ nix-env -if pkgs/system/i686-linux.nix pan</screen>
 
     <screen>
 $ nix-pull
-http://catamaran.labs.cs.uu.nl/~eelco/nix/nixpkgs-<replaceable>version</replaceable>/
-obtaining list of Nix archives at http://catamaran.labs.cs.uu.nl/~eelco/nix/nixpkgs-<replaceable>version</replaceable>...
+http://catamaran.labs.cs.uu.nl/dist/nix/nixpkgs-<replaceable>version</replaceable>/
+obtaining list of Nix archives at http://catamaran.labs.cs.uu.nl/dist/nix/nixpkgs-<replaceable>version</replaceable>...
 ...</screen>
 
     <para>
diff --git a/externals/Makefile.am b/externals/Makefile.am
index c74cb227eaa3..5f48a697d9e0 100644
--- a/externals/Makefile.am
+++ b/externals/Makefile.am
@@ -56,37 +56,10 @@ build-aterm: have-aterm
 	touch build-aterm
 
 
-# SDF bundle
+all: build-db build-aterm
 
-SDF2 = sdf2-bundle-1.6
-
-$(SDF2).tar.gz:
-	@echo "Nix requires the SDF2 bundle to build."
-	@echo "Please download version 1.6 from"
-	@echo "  ftp://ftp.stratego-language.org/pub/stratego/sdf2/sdf2-bundle-1.6.tar.gz"
-	@echo "and place it in the externals/ directory."
-	false
-
-$(SDF2): $(SDF2).tar.gz
-	gunzip < $(SDF2).tar.gz | tar xvf -
-
-have-sdf2:
-	$(MAKE) $(SDF2)
-	touch have-sdf2
-
-build-sdf2: have-sdf2
-	(pfx=`pwd` && \
-	cd $(SDF2) && \
-	CC="$(CC) -pg" ./configure --prefix=$$pfx/inst --with-cflags="$(CFLAGS)" && \
-	make && \
-	make install)
-	touch build-sdf2
-
-
-all: build-db build-aterm build-sdf2
-
-EXTRA_DIST = $(DB).tar.gz $(ATERM).tar.gz $(SDF2).tar.gz
+EXTRA_DIST = $(DB).tar.gz $(ATERM).tar.gz
 
 ext-clean:
-	$(RM) -f have-db build-db have-aterm build-aterm have-sdf2 build-sdf2
-	$(RM) -rf $(DB) $(ATERM) $(SDF2)
+	$(RM) -f have-db build-db have-aterm build-aterm
+	$(RM) -rf $(DB) $(ATERM)
diff --git a/src/libexpr/Makefile.am b/src/libexpr/Makefile.am
index 66a3008ed507..7a361771e690 100644
--- a/src/libexpr/Makefile.am
+++ b/src/libexpr/Makefile.am
@@ -12,11 +12,13 @@ AM_CFLAGS = \
 
 # Parser generation.
 
+parser.o: parser-tab.h lexer-tab.h
+
 parser-tab.c parser-tab.h: parser.y
-	../grammartest/inst/bin/bison -v -o parser-tab.c parser.y -d
+	$(bison) -v -o parser-tab.c parser.y -d
 
 lexer-tab.c lexer-tab.h: lexer.l
-	flex --outfile lexer-tab.c --header-file=lexer-tab.h lexer.l 
+	$(flex) --outfile lexer-tab.c --header-file=lexer-tab.h lexer.l 
 
 
 CLEANFILES =