Date: Thursday, January 4, 2007 @ 20:00:38
Author: marc
Path: /cvsroot/carob/carob
Added: make-includes/freebsd.mk (1.1) make-includes/gcc-compiler.mk
(1.1) make-includes/gnu-linker.mk (1.1)
Modified: GNUmakefile (1.13 -> 1.14)
First implementation of sub-makefiles gcc-compiler.mk, gnu-linker.mk and
freebsd.mk.
Related to portage issues CAROB-116, CAROB-117, CAROB-118.
-------------------------------+
GNUmakefile | 39 +++++++++++++++++++++++++++++----------
make-includes/freebsd.mk | 10 ++++++++++
make-includes/gcc-compiler.mk | 9 +++++++++
make-includes/gnu-linker.mk | 6 ++++++
4 files changed, 54 insertions(+), 10 deletions(-)
Index: carob/GNUmakefile
diff -u carob/GNUmakefile:1.13 carob/GNUmakefile:1.14
--- carob/GNUmakefile:1.13 Thu Jan 4 17:54:59 2007
+++ carob/GNUmakefile Thu Jan 4 20:00:38 2007
@@ -22,6 +22,31 @@
# Makefile for the Carob C++ API and tests
#
+#### PORTABILITY - CUSTOMIZATIOM
+
+MKINCLUDES=make-includes
+
+# Defaults
+COMPILER?=gcc
+LINKER?=gnu
+# OS?=linux # we may need this in the future?
+
+include ${MKINCLUDES}/${COMPILER}-compiler.mk
+include ${MKINCLUDES}/${LINKER}-linker.mk
+# include ${MKINCLUDES}/${OS}-os.mk
+
+# e.g. : -soname ${LIB_CAROB_LIB}
+# => "-Xlinker -soname -Xlinker ${LIB_CAROB_LIB}"
+override LDFLAGS += ${INDIRECT_LDFLAGS:%=${LD_FORWARDER} %}
+
+
+
+ifneq ($(origin CUSTOM), undefined)
+custom_files=${CUSTOM:%=${MKINCLUDES}/%.mk}
+include $(custom_files)
+endif
+
+
#General
LIB_MAJOR_VERSION = 1
@@ -64,10 +89,6 @@
override CPPFLAGS += -I${INCDIR}
-# optional CXXFLAGS
-CXXFLAGS = -g3 -Wall -O0
-# mandatory CXXFLAGS
-override CXXFLAGS += -fPIC
# Uncomment this line to use select function instead of poll
# Or using the command line: make CXXFLAGS=-DCAROB_USE_SELECT
@@ -78,13 +99,11 @@
LIB_CAROB_LIB = ${LIB_CAROB_LIB_SHORT}.${LIB_MAJOR_VERSION}
LIB_CAROB_STATIC = lib${LIB_CAROB}.a
-# LDFLAGS is not used for _static_ libcarob.a
+# LDLIBS is not used to build static libcarob.a
-LDLIBS = -lgmp -lpthread
+override LDLIBS += -lgmp -lpthread
-# mandatory LDFLAGS
-override LDFLAGS += -shared -Wl,-soname,${LIB_CAROB_LIB}
@@ -108,7 +127,7 @@
$(MAKE) -C test
${LIB_CAROB_LIB}: ${OBJS}
- ${CXX} ${CXXFLAGS} ${OBJS} ${LDFLAGS} ${LDLIBS} -o ${LIB_CAROB_LIB}
+ ${CXX} ${CXXFLAGS} ${OBJS} ${BUILD_SHARED_FLAGS} ${LDFLAGS} ${LDLIBS}
-o ${LIB_CAROB_LIB}
- ${LN} -f ${LIB_CAROB_LIB} ${LIB_CAROB_LIB_SHORT}
${LIB_CAROB_STATIC}: ${OBJS}
@@ -132,7 +151,7 @@
check: checkstatic checklib checkheaders
clean-check:
- ${RM} checkstatic checklib someheader.o
+ ${RM} checkstatic checklib someheader.cpp someheader.o
# compile each include/*.hpp, isolated
# TODO: use a GNU make loop instead of a shell script one
Index: carob/make-includes/freebsd.mk
diff -u /dev/null carob/make-includes/freebsd.mk:1.1
--- /dev/null Thu Jan 4 20:00:38 2007
+++ carob/make-includes/freebsd.mk Thu Jan 4 20:00:38 2007
@@ -0,0 +1,10 @@
+
+
+# ports pkg_add -r libgmp is installing GMP here
+override CPPFLAGS += -I/usr/local/include
+override LDFLAGS += -L/usr/local/lib
+
+# std::locale("en_US.UTF-8") does not seen to work on FreeBSD 6.2 PRERELEASE?
+# fallback on Iconv
+
+CXXFLAGS += -DCAROB_USE_ICONV
Index: carob/make-includes/gcc-compiler.mk
diff -u /dev/null carob/make-includes/gcc-compiler.mk:1.1
--- /dev/null Thu Jan 4 20:00:38 2007
+++ carob/make-includes/gcc-compiler.mk Thu Jan 4 20:00:38 2007
@@ -0,0 +1,9 @@
+
+# default CXXFLAGS
+CXXFLAGS = -g3 -Wall
+
+# mandatory CXXFLAGS
+override CXXFLAGS += -fPIC
+
+LD_FORWARDER = -Xlinker
+
Index: carob/make-includes/gnu-linker.mk
diff -u /dev/null carob/make-includes/gnu-linker.mk:1.1
--- /dev/null Thu Jan 4 20:00:38 2007
+++ carob/make-includes/gnu-linker.mk Thu Jan 4 20:00:38 2007
@@ -0,0 +1,6 @@
+
+# mandatory LDFLAGS
+BUILD_SHARED_FLAGS += -shared
+
+INDIRECT_LDFLAGS += -soname ${LIB_CAROB_LIB}
+
_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits