about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac28
-rw-r--r--externals/Makefile.am8
-rw-r--r--src/libexpr/Makefile.am4
-rw-r--r--src/libmain/Makefile.am2
-rw-r--r--src/libstore/Makefile.am2
-rw-r--r--src/libutil/Makefile.am4
-rw-r--r--src/nix-env/Makefile.am5
-rw-r--r--src/nix-hash/Makefile.am2
-rw-r--r--src/nix-instantiate/Makefile.am5
-rw-r--r--src/nix-store/Makefile.am4
11 files changed, 47 insertions, 18 deletions
diff --git a/Makefile.am b/Makefile.am
index cf6a13ad60..cb50401357 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,4 @@
 SUBDIRS = externals src scripts corepkgs doc
-
 EXTRA_DIST = substitute.mk nix.spec nix.spec.in
 
 include ./substitute.mk
diff --git a/configure.ac b/configure.ac
index b8d51916a6..689c2617e1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,6 +68,34 @@ AC_ARG_WITH(store-dir, AC_HELP_STRING([--with-store-dir=PATH],
   storedir=$withval, storedir='${prefix}/store')
 AC_SUBST(storedir)
 
+AC_ARG_WITH(bdb, AC_HELP_STRING([--with-bdb=PATH],
+  [prefix of Berkeley DB]),
+  bdb=$withval, bdb=)
+AM_CONDITIONAL(HAVE_BDB, test -n "$bdb")
+if test -z "$bdb"; then
+  bdb_lib='-L${top_builddir}/externals/inst-bdb/lib -ldb_cxx'
+  bdb_include='-I${top_builddir}/externals/inst-bdb/include'
+else
+  bdb_lib="-L$bdb/lib -Wl,-rpath,$bdb/lib -ldb_cxx"
+  bdb_include="-I$bdb/include"
+fi
+AC_SUBST(bdb_lib)
+AC_SUBST(bdb_include)
+
+AC_ARG_WITH(aterm, AC_HELP_STRING([--with-aterm=PATH],
+  [prefix of CWI ATerm library]),
+  aterm=$withval, aterm=)
+AM_CONDITIONAL(HAVE_ATERM, test -n "$aterm")
+if test -z "$aterm"; then
+  aterm_lib='-L${top_builddir}/externals/inst-aterm/lib -lATerm'
+  aterm_include='-I${top_builddir}/externals/inst-aterm/include'
+else
+  aterm_lib="-L$aterm/lib -Wl,-rpath,$aterm/lib -lATerm"
+  aterm_include="-I$aterm/include"
+fi
+AC_SUBST(aterm_lib)
+AC_SUBST(aterm_include)
+
 AC_CHECK_LIB(pthread, pthread_mutex_init)
 
 AM_CONFIG_HEADER([config.h])
diff --git a/externals/Makefile.am b/externals/Makefile.am
index 5f48a697d9..4819b95fea 100644
--- a/externals/Makefile.am
+++ b/externals/Makefile.am
@@ -16,16 +16,20 @@ have-db:
 	$(MAKE) $(DB)
 	touch have-db
 
+if HAVE_BDB
+build-db:
+else
 build-db: have-db
 	(pfx=`pwd` && \
 	cd $(DB)/build_unix && \
 	CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" \
-	 ../dist/configure --prefix=$$pfx/inst \
+	 ../dist/configure --prefix=$$pfx/inst-bdb \
 	 --enable-cxx --disable-shared --disable-cryptography \
          --disable-replication --disable-verify && \
 	make && \
 	make install)
 	touch build-db
+endif
 
 
 # CWI ATerm
@@ -49,7 +53,7 @@ have-aterm:
 build-aterm: have-aterm
 	(pfx=`pwd` && \
 	cd $(ATERM) && \
-	CC="$(CC)" ./configure --prefix=$$pfx/inst \
+	CC="$(CC)" ./configure --prefix=$$pfx/inst-aterm \
      --with-cflags="-DNDEBUG -DXGC_VERBOSE -DXHASHPEM -DWITH_STATS $(CFLAGS)" && \
 	make && \
 	make install)
diff --git a/src/libexpr/Makefile.am b/src/libexpr/Makefile.am
index 02269bcb8c..f3ffb6a035 100644
--- a/src/libexpr/Makefile.am
+++ b/src/libexpr/Makefile.am
@@ -7,9 +7,9 @@ libexpr_a_SOURCES = nixexpr.cc nixexpr.hh parser.cc parser.hh \
 EXTRA_DIST = lexer.l parser.y
 
 AM_CXXFLAGS = \
- -I.. -I../../externals/inst/include -I../libutil -I../libstore
+ -I.. ${bdb_include} ${aterm_include} -I../libutil -I../libstore
 AM_CFLAGS = \
- -I../../externals/inst/include
+ ${aterm_include}
 
 
 # Parser generation.
diff --git a/src/libmain/Makefile.am b/src/libmain/Makefile.am
index 72126f1135..3c28441ca1 100644
--- a/src/libmain/Makefile.am
+++ b/src/libmain/Makefile.am
@@ -8,4 +8,4 @@ AM_CXXFLAGS = \
  -DNIX_STATE_DIR=\"$(localstatedir)/nix\" \
  -DNIX_LOG_DIR=\"$(localstatedir)/log/nix\" \
  -DNIX_VERSION=\"$(VERSION)\" \
- -I.. -I../../externals/inst/include -I../libutil -I../libstore
+ -I.. ${aterm_include} -I../libutil -I../libstore
diff --git a/src/libstore/Makefile.am b/src/libstore/Makefile.am
index 3e2777f6ab..0a7b148fe2 100644
--- a/src/libstore/Makefile.am
+++ b/src/libstore/Makefile.am
@@ -7,4 +7,4 @@ libstore_a_SOURCES = \
  references.cc references.hh pathlocks.cc pathlocks.hh
 
 AM_CXXFLAGS = -Wall \
- -I.. -I../../externals/inst/include -I../libutil
+ -I.. ${bdb_include} ${aterm_include} -I../libutil
diff --git a/src/libutil/Makefile.am b/src/libutil/Makefile.am
index 92c4472f89..d5d4fcfad7 100644
--- a/src/libutil/Makefile.am
+++ b/src/libutil/Makefile.am
@@ -3,11 +3,11 @@ noinst_LIBRARIES = libutil.a
 libutil_a_SOURCES = util.cc util.hh hash.cc hash.hh \
  archive.cc archive.hh md5.c md5.h aterm.cc aterm.hh
 
-AM_CXXFLAGS = -DSYSTEM=\"@system@\" -Wall -I.. -I../../externals/inst/include
+AM_CXXFLAGS = -DSYSTEM=\"@system@\" -Wall -I.. ${aterm_include}
 
 check_PROGRAMS = test-aterm
 
 test_aterm_SOURCES = test-aterm.cc
 test_aterm_LDADD = ./libutil.a ../boost/format/libformat.a \
- -L../../externals/inst/lib -ldb_cxx -lATerm
+ ${aterm_lib}
 
diff --git a/src/nix-env/Makefile.am b/src/nix-env/Makefile.am
index e4b03943c5..3943a9d9ac 100644
--- a/src/nix-env/Makefile.am
+++ b/src/nix-env/Makefile.am
@@ -4,8 +4,7 @@ nix_env_SOURCES = main.cc names.cc names.hh \
  profiles.cc profiles.hh help.txt
 nix_env_LDADD = ../libmain/libmain.a ../libexpr/libexpr.a \
  ../libstore/libstore.a ../libutil/libutil.a \
- ../boost/format/libformat.a -L../../externals/inst/lib -ldb_cxx \
- -lATerm
+ ../boost/format/libformat.a ${bdb_lib} ${aterm_lib}
 
 main.o: help.txt.hh
 
@@ -13,7 +12,7 @@ main.o: help.txt.hh
 	../bin2c/bin2c helpText < $< > $@ || (rm $@ && exit 1)
 
 AM_CXXFLAGS = \
- -I.. -I../../externals/inst/include -I../libutil -I../libstore \
+ -I.. ${bdb_include} ${aterm_include} -I../libutil -I../libstore \
  -I../libexpr -I../libmain
 
 install-data-local:
diff --git a/src/nix-hash/Makefile.am b/src/nix-hash/Makefile.am
index 00bf6afd6e..7906285fe2 100644
--- a/src/nix-hash/Makefile.am
+++ b/src/nix-hash/Makefile.am
@@ -2,7 +2,7 @@ bin_PROGRAMS = nix-hash
 
 nix_hash_SOURCES = nix-hash.cc help.txt
 nix_hash_LDADD = ../libmain/libmain.a ../libstore/libstore.a ../libutil/libutil.a \
- ../boost/format/libformat.a -L../../externals/inst/lib -ldb_cxx -lATerm
+ ../boost/format/libformat.a ${bdb_lib} ${aterm_lib}
 
 nix-hash.o: help.txt.hh
 
diff --git a/src/nix-instantiate/Makefile.am b/src/nix-instantiate/Makefile.am
index 0726d1296f..60ee09b940 100644
--- a/src/nix-instantiate/Makefile.am
+++ b/src/nix-instantiate/Makefile.am
@@ -3,8 +3,7 @@ bin_PROGRAMS = nix-instantiate
 nix_instantiate_SOURCES = main.cc help.txt
 nix_instantiate_LDADD = ../libmain/libmain.a ../libexpr/libexpr.a \
  ../libstore/libstore.a ../libutil/libutil.a \
- ../boost/format/libformat.a -L../../externals/inst/lib -ldb_cxx \
- -lATerm
+ ../boost/format/libformat.a ${bdb_lib} ${aterm_lib}
 
 main.o: help.txt.hh
 
@@ -12,5 +11,5 @@ main.o: help.txt.hh
 	../bin2c/bin2c helpText < $< > $@ || (rm $@ && exit 1)
 
 AM_CXXFLAGS = \
- -I.. -I../../externals/inst/include -I../libutil -I../libstore \
+ -I.. ${bdb_include} ${aterm_include} -I../libutil -I../libstore \
  -I../libexpr -I../libmain
diff --git a/src/nix-store/Makefile.am b/src/nix-store/Makefile.am
index 76d3a6c6be..588d645eb6 100644
--- a/src/nix-store/Makefile.am
+++ b/src/nix-store/Makefile.am
@@ -2,7 +2,7 @@ bin_PROGRAMS = nix-store
 
 nix_store_SOURCES = main.cc dotgraph.cc dotgraph.hh help.txt
 nix_store_LDADD = ../libmain/libmain.a ../libstore/libstore.a ../libutil/libutil.a \
- ../boost/format/libformat.a -L../../externals/inst/lib -ldb_cxx -lATerm
+ ../boost/format/libformat.a ${bdb_lib} ${aterm_lib}
 
 main.o: help.txt.hh
 
@@ -10,7 +10,7 @@ main.o: help.txt.hh
 	../bin2c/bin2c helpText < $< > $@ || (rm $@ && exit 1)
 
 AM_CXXFLAGS = \
- -I.. -I../../externals/inst/include -I../libutil -I../libstore -I../libmain
+ -I.. ${bdb_include} $(aterm_include) -I../libutil -I../libstore -I../libmain
 
 init-state-local:
 	$(INSTALL) -d $(DESTDIR)$(localstatedir)/nix