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

Reply via email to