summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Ulrich Niedermann <hun@n-dimensional.de>2011-03-05 14:21:24 +0100
committerHans Ulrich Niedermann <hun@n-dimensional.de>2011-03-07 20:57:37 +0100
commit8f2566c5a39f758bb0db337fc106fa94f52220df (patch)
tree47107416f6164458434a5a934bebb98741c215d1
parentfef5564a64870ce438d0b1185df521fd54126171 (diff)
downloadrasdaman-upstream-8f2566c5a39f758bb0db337fc106fa94f52220df.tar.gz
rasdaman-upstream-8f2566c5a39f758bb0db337fc106fa94f52220df.tar.xz
rasdaman-upstream-8f2566c5a39f758bb0db337fc106fa94f52220df.zip
build: Support (srcdir != builddir) VDIR builds
Support (srcdir != builddir) VDIR builds. This will also help a lot with preparing for a working "make distcheck".
-rw-r--r--bin/Makefile.am4
-rw-r--r--clientcomm/Makefile.am38
-rw-r--r--configure.ac5
-rw-r--r--ecpg.mk8
-rw-r--r--include/Makefile.am7
-rw-r--r--insertutils/Makefile.am2
-rw-r--r--manuals_and_examples/Makefile.am2
-rw-r--r--reladminif/Makefile.am5
-rw-r--r--relblobif/Makefile.am5
-rw-r--r--relcatalogif/Makefile.am6
-rw-r--r--relindexif/Makefile.am4
-rw-r--r--relmddif/Makefile.am4
-rw-r--r--relstorageif/Makefile.am5
-rw-r--r--rnprotocol/rnpembedded.cc2
-rw-r--r--rnprotocol/rnprotocol.cc2
-rw-r--r--servercomm/Makefile.am2
16 files changed, 53 insertions, 48 deletions
diff --git a/bin/Makefile.am b/bin/Makefile.am
index 72a45fe..348a4b2 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -35,7 +35,7 @@ script_edit = $(SED) \
start_rasdaman.sh stop_rasdaman.sh create_db.sh: Makefile
rm -f $@
- $(script_edit) '$@.in' >$@
+ $(script_edit) "$(srcdir)/$$(basename "$@").in" >$@
chmod +x $@
chmod a-w $@
@@ -44,4 +44,4 @@ stop_rasdaman.sh: stop_rasdaman.sh.in
create_db.sh: create_db.sh.in
rasmgr.conf: rasmgr.conf.in Makefile
rm -f $@
- $(SED) -e "s|@hostname[@]|`hostname`|g" '$@.in' >$@
+ $(SED) -e "s|@hostname[@]|`hostname`|g" "$(srcdir)/$$(basename "$@").in" >$@
diff --git a/clientcomm/Makefile.am b/clientcomm/Makefile.am
index e7aa7f0..6b2bad0 100644
--- a/clientcomm/Makefile.am
+++ b/clientcomm/Makefile.am
@@ -45,7 +45,7 @@ libclientcomm_a_SOURCES = rpcif_clnt.cc rpcif_xdr.c rpcif.h \
../rnprotocol/rnpclientcomm2.cc \
../rnprotocol/rnpclientcomm.hh
libclientcomm_a_CPPFLAGS = $(AM_CPPFLAGS)
-libclientcomm_a_CPPFLAGS += -I../rnprotocol
+libclientcomm_a_CPPFLAGS += -I$(top_srcdir)/rnprotocol
libclientcomm_a_CPPFLAGS += $(CLIENT_CPPFLAGS)
EXTRA_libclientcomm_a_SOURCES = rpcif.x
@@ -53,22 +53,30 @@ BUILT_SOURCES= rpcif_clnt.cc rpcif_xdr.c rpcif.h rpcif_svc.cc
CLEANFILES=rpcif_clnt.cc rpcif_xdr.c rpcif.h rpcif.h.tmp rpcif.h.tmp2 \
rpcif_clnt.c.tmp rpcif_svc.cc.tmp rpcif_svc.cc
-rpcif.h: rpcif.x
- $(RPCGEN) -h -o rpcif.h.tmp rpcif.x
- $(AWK) -f rpcif.h.awk rpcif.h.tmp > rpcif.h.tmp2
+rpcif.h: rpcif.x rpcif.h.awk
+ $(RPCGEN) -h -o rpcif.h.tmp $(srcdir)/rpcif.x
+ $(AWK) -f $(srcdir)/rpcif.h.awk rpcif.h.tmp > rpcif.h.tmp2
$(SED) 's,_RPCIF\.H_H_RPCGEN,_RPCIF_H_H_RPCGEN,g' rpcif.h.tmp2 > rpcif.h
rm rpcif.h.tmp rpcif.h.tmp2
-rpcif_clnt.cc: rpcif.x
- $(RPCGEN) -l -o rpcif_clnt.cc.tmp rpcif.x
- $(AWK) -f rpcif_clnt.c.awk rpcif_clnt.cc.tmp > rpcif_clnt.cc
- rm rpcif_clnt.cc.tmp
+FIX_INCLUDE = $(SED)
+FIX_INCLUDE += 's,^\#include "../../clientcomm/rpcif.h"$$,\#include "clientcomm/rpcif.h",'
-rpcif_xdr.c: rpcif.x
- -rm rpcif_xdr.c
- $(RPCGEN) -c -o rpcif_xdr.c rpcif.x
+rpcif_clnt.cc: rpcif.x rpcif_clnt.c.awk Makefile
+ -rm rpcif_clnt.cc.tmp
+ $(RPCGEN) -l -o rpcif_clnt.cc.tmp $(srcdir)/rpcif.x
+ $(AWK) -f $(srcdir)/rpcif_clnt.c.awk rpcif_clnt.cc.tmp > rpcif_clnt.cc.tmp2
+ $(FIX_INCLUDE) rpcif_clnt.cc.tmp2 > rpcif_clnt.cc
+ rm rpcif_clnt.cc.tmp rpcif_clnt.cc.tmp2
-rpcif_svc.cc: rpcif.x
- $(RPCGEN) -m -o rpcif_svc.cc.tmp rpcif.x
- $(AWK) -f rpcif_svc.c.awk rpcif_svc.cc.tmp > rpcif_svc.cc
- rm rpcif_svc.cc.tmp
+rpcif_xdr.c: rpcif.x Makefile
+ -rm rpcif_xdr.c.tmp
+ $(RPCGEN) -c -o rpcif_xdr.c.tmp $(srcdir)/rpcif.x
+ $(FIX_INCLUDE) rpcif_xdr.c.tmp > rpcif_xdr.c
+ rm rpcif_xdr.c.tmp
+
+rpcif_svc.cc: rpcif.x rpcif_svc.c.awk Makefile
+ $(RPCGEN) -m -o rpcif_svc.cc.tmp $(srcdir)/rpcif.x
+ $(AWK) -f $(srcdir)/rpcif_svc.c.awk rpcif_svc.cc.tmp > rpcif_svc.cc.tmp2
+ $(FIX_INCLUDE) rpcif_svc.cc.tmp2 > rpcif_svc.cc
+ rm rpcif_svc.cc.tmp rpcif_svc.cc.tmp2
diff --git a/configure.ac b/configure.ac
index 59f3601..04d3805 100644
--- a/configure.ac
+++ b/configure.ac
@@ -279,7 +279,7 @@ AS_IF([test "$with_default_basedb" == postgresql],
# TODO: change main to something sensible
AC_CHECK_LIB([pq], [main], , [AC_MSG_FAILURE([Library not found! Please install...])])
AC_CHECK_LIB([pgtypes], [main], , [AC_MSG_FAILURE([Library not found! Please install...])])
- EMBEDDEDSQLPRECOMPILER="$ECPG -o"
+ EMBEDDEDSQLPRECOMPILER="\$(ECPG)"
BASEDBSTRING=pgsql
],
[AC_MSG_ERROR([unsupported base DBMS: $with_default_basedb])])
@@ -335,7 +335,8 @@ LDFLAGS=""
COMPDATE=`date +"%d.%m.%Y %H:%M:%S"`
AC_DEFINE_UNQUOTED([COMPDATE], ["$COMPDATE"])
-AM_CPPFLAGS+=" -I$abs_top_srcdir -I$abs_top_srcdir/debug -I$abs_top_srcdir/include"
+AM_CPPFLAGS+=" -I\${top_builddir}"
+AM_CPPFLAGS+=" -I\${top_srcdir} -I\${top_srcdir}/debug -I\${top_srcdir}/include"
# Our special install locations
AC_SUBST([pkgdatadir], ["\${datadir}/\${RDM_SUBDIR}"])
diff --git a/ecpg.mk b/ecpg.mk
new file mode 100644
index 0000000..3e6ead7
--- /dev/null
+++ b/ecpg.mk
@@ -0,0 +1,8 @@
+# -*- Makefile -*-
+# ecpg.mk
+
+SUFFIXES = .@EMBEDDEDSQLEXT@ .@EMBEDDEDSQLOUT@
+
+.@EMBEDDEDSQLEXT@.@EMBEDDEDSQLOUT@:
+ set -x; cwd="$$PWD"; \
+ cd "$$(dirname "$<")" && $(EMBEDDEDSQLPRECOMPILER) -o "$$cwd/$@" "$$(basename "$<")"
diff --git a/include/Makefile.am b/include/Makefile.am
index 9f79a2a..7dcd344 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -22,4 +22,9 @@
#
###################################################################
-pkginclude_HEADERS=*.h *.hh
+pkginclude_HEADERS =
+pkginclude_HEADERS += basictypes.hh
+pkginclude_HEADERS += bool.h
+pkginclude_HEADERS += globals.hh
+pkginclude_HEADERS += rasdaman.hh
+pkginclude_HEADERS += stdexcept.h
diff --git a/insertutils/Makefile.am b/insertutils/Makefile.am
index 4eb646e..b8f74fe 100644
--- a/insertutils/Makefile.am
+++ b/insertutils/Makefile.am
@@ -48,6 +48,6 @@ insertdemo.sh: insertdemo.sh.in Makefile
rm -f insertdemo.sh
sed -e 's|@bindir[@]|$(bindir)/|g' \
-e 's|@pkgdatadir[@]|$(pkgdatadir)/|g'\
- <insertdemo.sh.in >insertdemo.sh
+ < $(srcdir)/insertdemo.sh.in > insertdemo.sh
chmod +x insertdemo.sh
chmod a-w insertdemo.sh
diff --git a/manuals_and_examples/Makefile.am b/manuals_and_examples/Makefile.am
index ee89bc1..c9acbe6 100644
--- a/manuals_and_examples/Makefile.am
+++ b/manuals_and_examples/Makefile.am
@@ -52,4 +52,4 @@ install-data-hook:
(cd ..; doxygen manuals_and_examples/doxygen-all.cfg)
(cd ..; doxygen manuals_and_examples/doxygen-api.cfg)
(cd ..; doxygen manuals_and_examples/doxygen-basedbms.cfg)
- cp -r manuals/ $(DESTDIR)$(pkgdatadir)/doc
+ cp -r $(srcdir)/manuals/ $(DESTDIR)$(pkgdatadir)/doc
diff --git a/reladminif/Makefile.am b/reladminif/Makefile.am
index 0bdb68f..7f4c907 100644
--- a/reladminif/Makefile.am
+++ b/reladminif/Makefile.am
@@ -30,10 +30,7 @@
#
##################################################################
-.SUFFIXES= .@EMBEDDEDSQLEXT@ .@EMBEDDEDSQLOUT@
-.@EMBEDDEDSQLEXT@.@EMBEDDEDSQLOUT@:
- $(EMBEDDEDSQLPRECOMPILER) $@ $<
-
+include $(top_srcdir)/ecpg.mk
pkglib_LIBRARIES=libreladminif.a
libreladminif_a_SOURCES=adminifcommon.cc adminif.hh databaseifcommon.cc databaseif.hh \
diff --git a/relblobif/Makefile.am b/relblobif/Makefile.am
index e1da954..60d7c3d 100644
--- a/relblobif/Makefile.am
+++ b/relblobif/Makefile.am
@@ -29,10 +29,7 @@
#
##################################################################
-.SUFFIXES= .@EMBEDDEDSQLEXT@ .@EMBEDDEDSQLOUT@
-.@EMBEDDEDSQLEXT@.@EMBEDDEDSQLOUT@:
- $(EMBEDDEDSQLPRECOMPILER) $@ $<
-
+include $(top_srcdir)/ecpg.mk
pkglib_LIBRARIES=librelblobif.a
librelblobif_a_SOURCES= blobtile.hh \
diff --git a/relcatalogif/Makefile.am b/relcatalogif/Makefile.am
index 6fec2cc..cafbd97 100644
--- a/relcatalogif/Makefile.am
+++ b/relcatalogif/Makefile.am
@@ -31,11 +31,7 @@
# This Makefile only works with GNU Make!
#
-######################### Definitions ############################
-
-.SUFFIXES= .@EMBEDDEDSQLEXT@ .@EMBEDDEDSQLOUT@
-.@EMBEDDEDSQLEXT@.@EMBEDDEDSQLOUT@:
- $(EMBEDDEDSQLPRECOMPILER) $@ $<
+include $(top_srcdir)/ecpg.mk
pkglib_LIBRARIES=librelcatalogif.a
librelcatalogif_a_SOURCES= type.C type.hh basetype.C basetype.hh atomictype.C ulongtype.C ulongtype.hh ushorttype.C ushorttype.hh \
diff --git a/relindexif/Makefile.am b/relindexif/Makefile.am
index 40711d0..adb5aaa 100644
--- a/relindexif/Makefile.am
+++ b/relindexif/Makefile.am
@@ -26,9 +26,7 @@
#
##################################################################
-.SUFFIXES= .@EMBEDDEDSQLEXT@ .@EMBEDDEDSQLOUT@
-.@EMBEDDEDSQLEXT@.@EMBEDDEDSQLOUT@:
- $(EMBEDDEDSQLPRECOMPILER) $@ $<
+include $(top_srcdir)/ecpg.mk
pkglib_LIBRARIES=librelindexif.a
librelindexif_a_SOURCES=dbrcindexdscommon.cc dbrcindexds.hh \
diff --git a/relmddif/Makefile.am b/relmddif/Makefile.am
index daf85ac..aab618b 100644
--- a/relmddif/Makefile.am
+++ b/relmddif/Makefile.am
@@ -29,9 +29,7 @@
#
##################################################################
-.SUFFIXES= .@EMBEDDEDSQLEXT@ .@EMBEDDEDSQLOUT@
-.@EMBEDDEDSQLEXT@.@EMBEDDEDSQLOUT@:
- $(EMBEDDEDSQLPRECOMPILER) $@ $<
+include $(top_srcdir)/ecpg.mk
pkglib_LIBRARIES=librelmddif.a
librelmddif_a_SOURCES=dbmddsetcommon.cc dbmddobj.hh dbmddset.hh dbiterid.hh mddid.hh
diff --git a/relstorageif/Makefile.am b/relstorageif/Makefile.am
index 03d3284..653826a 100644
--- a/relstorageif/Makefile.am
+++ b/relstorageif/Makefile.am
@@ -28,10 +28,7 @@
#
##################################################################
-.SUFFIXES= .@EMBEDDEDSQLEXT@
-.@EMBEDDEDSQLEXT@.@EMBEDDEDSQLOUT@:
- $(EMBEDDEDSQLPRECOMPILER) $@ $<
-
+include $(top_srcdir)/ecpg.mk
pkglib_LIBRARIES=librelstorageif.a
librelstorageif_a_SOURCES= dbstoragelayout.hh storageid.hh empty.cc
diff --git a/rnprotocol/rnpembedded.cc b/rnprotocol/rnpembedded.cc
index c0362bb..318764c 100644
--- a/rnprotocol/rnpembedded.cc
+++ b/rnprotocol/rnpembedded.cc
@@ -27,7 +27,7 @@ rasdaman GmbH.
*
****************************************************************************/
-#include <rnpembedded.hh>
+#include "rnpembedded.hh"
#include <assert.h>
#include "debug.hh"
diff --git a/rnprotocol/rnprotocol.cc b/rnprotocol/rnprotocol.cc
index ce0deec..5c05f40 100644
--- a/rnprotocol/rnprotocol.cc
+++ b/rnprotocol/rnprotocol.cc
@@ -27,7 +27,7 @@ rasdaman GmbH.
*
****************************************************************************/
-#include <rnprotocol.hh>
+#include "rnprotocol.hh"
#include <assert.h>
using namespace rnp;
diff --git a/servercomm/Makefile.am b/servercomm/Makefile.am
index 6bb13f6..8fa5104 100644
--- a/servercomm/Makefile.am
+++ b/servercomm/Makefile.am
@@ -50,7 +50,7 @@ libservercomm_a_SOURCES=../clientcomm/rpcif_xdr.c ../clientcomm/rpcif_svc.cc ser
../rnprotocol/rnpservercomm.hh
libservercomm_a_CPPFLAGS = $(AM_CPPFLAGS)
-libservercomm_a_CPPFLAGS += -I../rnprotocol
+libservercomm_a_CPPFLAGS += -I$(top_srcdir)/rnprotocol
libservercomm_a_CPPFLAGS += $(BASEDB_CPPFLAGS)
BUILT_SOURCES=../clientcomm/rpcif_xdr.c ../clientcomm/rpcif.h ../clientcomm/rpcif_svc.cc