Date: Monday, January 8, 2007 @ 15:14:09
  Author: marc
    Path: /cvsroot/carob/carob

   Added: make-includes/README (1.1) make-includes/freebsd-os.mk (1.1)
          make-includes/linux-os.mk (1.1)
Modified: GNUmakefile (1.15 -> 1.16) make-includes/gcc-compiler.mk (1.1 ->
          1.2) make-includes/main.mk (1.2 -> 1.3)
 Removed: make-includes/freebsd.mk (1.5)

-lpthread is now always the first library on the command-line (needed for 
FreeBSD CAROB-117)
Slightly reworked .mk system: now using MK_* flags instead of playing too 
subtle games with
"override +=". Should help CAROB-116 and CAROB-118 ports.
Moved -ldl to a new linux-os.mk specific file.


-------------------------------+
 GNUmakefile                   |    7 ++++---
 make-includes/README          |   13 +++++++++++++
 make-includes/freebsd-os.mk   |   14 ++++++++++++++
 make-includes/freebsd.mk      |   15 ---------------
 make-includes/gcc-compiler.mk |    3 ++-
 make-includes/linux-os.mk     |    2 ++
 make-includes/main.mk         |   26 ++++++++++++++++++--------
 7 files changed, 53 insertions(+), 27 deletions(-)


Index: carob/GNUmakefile
diff -u carob/GNUmakefile:1.15 carob/GNUmakefile:1.16
--- carob/GNUmakefile:1.15      Thu Jan  4 20:41:34 2007
+++ carob/GNUmakefile   Mon Jan  8 15:14:09 2007
@@ -81,8 +81,9 @@
 LIB_CAROB_STATIC        = lib${LIB_CAROB}.a
 
 # LDLIBS is not used to build static libcarob.a
+# -lpthread must be first, see CAROB-117
+ALL_LDLIBS         = -lpthread -lgmp ${LDLIBS}
 
-override LDLIBS         +=  -lgmp -lpthread
 
 
 
@@ -108,7 +109,7 @@
        $(MAKE) -C test
 
 ${LIB_CAROB_LIB}: ${OBJS}
-       ${CXX} ${CXXFLAGS} ${OBJS} ${SHARED_LDFLAGS} ${LDFLAGS} ${LDLIBS} -o 
${LIB_CAROB_LIB}
+       ${CXX} ${CXXFLAGS} ${OBJS} ${SHARED_LDFLAGS} ${LDFLAGS} ${ALL_LDLIBS} 
-o ${LIB_CAROB_LIB}
        - ${LN} -f ${LIB_CAROB_LIB} ${LIB_CAROB_LIB_SHORT}
 
 ${LIB_CAROB_STATIC}: ${OBJS}
@@ -148,7 +149,7 @@
        ldd ./$<
 
 checkstatic: ${LIB_CAROB_STATIC}
-       ${CXX} ${CXXFLAGS} ${CPPFLAGS} dummymain.cpp $< ${LDFLAGS} ${LDLIBS} -o 
$@
+       ${CXX} ${CXXFLAGS} ${CPPFLAGS} dummymain.cpp $< ${LDFLAGS} 
${ALL_LDLIBS} -o $@
        ldd ./$@
 
 
Index: carob/make-includes/README
diff -u /dev/null carob/make-includes/README:1.1
--- /dev/null   Mon Jan  8 15:14:09 2007
+++ carob/make-includes/README  Mon Jan  8 15:14:09 2007
@@ -0,0 +1,13 @@
+
+Example:
+
+ make check OS=freebsd CUSTOM="libmysequoia.mk warnings.mk"
+
+
+To allow flags to be defined both using the command line and here in
+.mk files, respect the following convention:
+
+command line:     CXXFLAGS=-O3
+in .mk files:     MK_CXXFLAGS=-g3
+
+
Index: carob/make-includes/freebsd-os.mk
diff -u /dev/null carob/make-includes/freebsd-os.mk:1.1
--- /dev/null   Mon Jan  8 15:14:09 2007
+++ carob/make-includes/freebsd-os.mk   Mon Jan  8 15:14:09 2007
@@ -0,0 +1,14 @@
+
+
+# ports pkg_add -r libgmp is installing GMP here
+# same thing for libiconv
+MK_CPPFLAGS += -I/usr/local/include
+MK_LDFLAGS  += -L/usr/local/lib
+
+
+# std::locale("en_US.UTF-8") does not seen to work on FreeBSD 6.2 PRERELEASE?
+# fallback on Iconv
+
+MK_CXXFLAGS += -DCAROB_USE_ICONV
+MK_LDLIBS   += -liconv
+
Index: carob/make-includes/freebsd.mk
diff -u carob/make-includes/freebsd.mk:1.5 
carob/make-includes/freebsd.mk:removed
--- carob/make-includes/freebsd.mk:1.5  Fri Jan  5 17:49:52 2007
+++ carob/make-includes/freebsd.mk      Mon Jan  8 15:14:09 2007
@@ -1,15 +0,0 @@
-
-
-# ports pkg_add -r libgmp is installing GMP here
-# same thing for libiconv
-override CPPFLAGS += -I/usr/local/include
-override LDFLAGS  += -L/usr/local/lib
-# this forces pthread to be linked before any other libs
-# TODO: this should be the default!
-override LDLIBS   += -lpthread
-
-# std::locale("en_US.UTF-8") does not seen to work on FreeBSD 6.2 PRERELEASE?
-# fallback on Iconv
-
-override CXXFLAGS += -DCAROB_USE_ICONV
-override LDLIBS   += -liconv # prevents -ldl to be defined in 
test/GNUmakefile... ugly
Index: carob/make-includes/gcc-compiler.mk
diff -u carob/make-includes/gcc-compiler.mk:1.1 
carob/make-includes/gcc-compiler.mk:1.2
--- carob/make-includes/gcc-compiler.mk:1.1     Thu Jan  4 20:00:38 2007
+++ carob/make-includes/gcc-compiler.mk Mon Jan  8 15:14:09 2007
@@ -3,7 +3,8 @@
 CXXFLAGS = -g3 -Wall
 
 # mandatory CXXFLAGS
-override CXXFLAGS       += -fPIC
+# (actually this is not needed for tests but we don't care)
+MK_CXXFLAGS       += -fPIC
 
 LD_FORWARDER = -Xlinker
 
Index: carob/make-includes/linux-os.mk
diff -u /dev/null carob/make-includes/linux-os.mk:1.1
--- /dev/null   Mon Jan  8 15:14:09 2007
+++ carob/make-includes/linux-os.mk     Mon Jan  8 15:14:09 2007
@@ -0,0 +1,2 @@
+
+MK_LDLIBS += -ldl
Index: carob/make-includes/main.mk
diff -u carob/make-includes/main.mk:1.2 carob/make-includes/main.mk:1.3
--- carob/make-includes/main.mk:1.2     Thu Jan  4 21:10:12 2007
+++ carob/make-includes/main.mk Mon Jan  8 15:14:09 2007
@@ -10,17 +10,11 @@
 # Defaults
 COMPILER?=gcc
 LINKER?=gnu
-# OS?=linux # we may need this in the future?
+OS?=linux
 
 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} %}
-override SHARED_LDFLAGS += ${SHARED_INDIRECT_LDFLAGS:%=${LD_FORWARDER} %}
-override TEST_LDFLAGS += ${TEST_INDIRECT_LDFLAGS:%=${LD_FORWARDER} %}
+include ${MKINCLUDES}/${OS}-os.mk
 
 
 ifneq ($(origin CUSTOM), undefined)
@@ -28,3 +22,19 @@
 include $(custom_files)
 endif
 
+
+# Forward flags from the compiler to the linker
+# e.g.                -soname          ${LIB_CAROB_LIB}
+# becomes:   -Xlinker -soname -Xlinker ${LIB_CAROB_LIB}
+
+MK_LDFLAGS += ${INDIRECT_LDFLAGS:%=${LD_FORWARDER} %}
+SHARED_LDFLAGS += ${SHARED_INDIRECT_LDFLAGS:%=${LD_FORWARDER} %}
+TEST_LDFLAGS += ${TEST_INDIRECT_LDFLAGS:%=${LD_FORWARDER} %}
+
+
+# Append MK_ flags from .mk files
+
+override CPPFLAGS += ${MK_CPPFLAGS}
+override CXXFLAGS += ${MK_CXXFLAGS}
+override LDFLAGS += ${MK_LDFLAGS}
+override LDLIBS += ${MK_LDLIBS}

_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits

Reply via email to