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