summaryrefslogtreecommitdiff
path: root/makefiles/gmake/platform.mk
diff options
context:
space:
mode:
authorAndreas Baumann <abaumann@yahoo.com>2012-07-12 19:18:06 +0200
committerAndreas Baumann <abaumann@yahoo.com>2012-07-12 19:18:06 +0200
commitb1e647baf2e1724838e34d25339a3672caf09e14 (patch)
tree1e305a8efc6138603c3949a4ab083b252b9e39c8 /makefiles/gmake/platform.mk
parent7d4bf0e6f0f7e65ab3b2e6465755aa00d896d76e (diff)
downloadcrawler-b1e647baf2e1724838e34d25339a3672caf09e14.tar.gz
crawler-b1e647baf2e1724838e34d25339a3672caf09e14.tar.bz2
added basic structure
Diffstat (limited to 'makefiles/gmake/platform.mk')
-rw-r--r--makefiles/gmake/platform.mk149
1 files changed, 94 insertions, 55 deletions
diff --git a/makefiles/gmake/platform.mk b/makefiles/gmake/platform.mk
index 452c9e1..6ad041e 100644
--- a/makefiles/gmake/platform.mk
+++ b/makefiles/gmake/platform.mk
@@ -16,17 +16,81 @@
#
# author: Andreas Baumann, abaumann at yahoo dot com
+-include $(HOME)/config.mk
-include $(TOPDIR)/makefiles/gmake/platform.mk.vars
-PLATFORM ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --platform $(CC) "$(CURDIR)" $(TOPDIR))
-OS_MAJOR_VERSION ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --os-major-version $(CC) "$(CURDIR)" $(TOPDIR))
-OS_MINOR_VERSION ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --os-minor-version $(CC) "$(CURDIR)" $(TOPDIR))
-COMPILER ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --compiler $(CC) "$(CURDIR)" $(TOPDIR))
-ifeq "$(PLATFORM)" "LINUX"
-LINUX_DIST ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --linux-dist $(CC) "$(CURDIR)" $(TOPDIR))
-LINUX_REV ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --linux-rev $(CC) "$(CURDIR)" $(TOPDIR))
+# set up defaults for the build switches
+WITH_SSL ?= 0
+WITH_LUA ?= 0
+WITH_SASL ?= 0
+WITH_PAM ?= 0
+WITH_SYSTEM_SQLITE3 ?= 0
+WITH_LOCAL_SQLITE3 ?= 0
+WITH_PGSQL ?= 0
+WITH_LIBXML2 ?= 0
+WITH_LIBXSLT ?= 0
+WITH_SYSTEM_LIBHPDF ?= 0
+WITH_LOCAL_LIBHPDF ?= 0
+WITH_QT ?= 0
+WITH_LIBGMP ?= 0
+WITH_EXAMPLES ?= 1
+ENABLE_NLS ?= 1
+RUN_TESTS ?= 1
+
+# variables guessed by 'guess_env'
+PLATFORM ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --platform "$(CC)" "$(CURDIR)" $(TOPDIR))
+OS_MAJOR_VERSION ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --os-major-version "$(CC)" "$(CURDIR)" $(TOPDIR))
+OS_MINOR_VERSION ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --os-minor-version "$(CC)" "$(CURDIR)" $(TOPDIR))
+COMPILER ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --compiler "$(CC)" "$(CURDIR)" $(TOPDIR))
+ifeq "$(PLATFORM)" "LINUX"
+LINUX_DIST ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --linux-dist "$(CC)" "$(CURDIR)" $(TOPDIR))
+LINUX_REV ?= $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --linux-rev "$(CC)" "$(CURDIR)" $(TOPDIR))
+endif
+
+# set library path on Intel/AMD
+
+ifeq "$(PLATFORM)" "LINUX"
+ifeq "$(ARCH)" "x86"
+ifeq "$(LINUX_DIST)" "arch"
+LIBDIR=lib32
+else
+LIBDIR=lib
+endif
+else
+LIBDIR=lib
+endif
+ifeq "$(ARCH)" "x86_64"
+ifeq "$(LINUX_DIST)" "arch"
+LIBDIR=lib
+else
+LIBDIR=lib64
+endif
+else
+LIBDIR=lib
+endif
+endif
+
+ifeq "$(PLATFORM)" "FREEBSD"
+LIBDIR=lib
endif
+ifeq "$(PLATFORM)" "OPENBSD"
+LIBDIR=lib
+endif
+
+ifeq "$(PLATFORM)" "NETBSD"
+LIBDIR=lib
+endif
+
+# Sparc or Intel, always 'lib'
+ifeq "$(PLATFORM)" "SUNOS"
+LIBDIR=lib
+endif
+
+
+# default location of system libraries per architecture
+SYSTEM_LIBDIR=/usr/$(LIBDIR)
+
# platform specific flags
#########################
@@ -53,12 +117,14 @@ SO = .so
# name if the installation program
# (TODO: use the MIT or openradio install-sh script instead?)
+ifndef INSTALL
INSTALL = $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --install)
ifeq "$(PLATFORM)" "SUNOS"
INSTALL = /usr/ucb/install
else
INSTALL = install
endif
+endif
# dynamic linker
################
@@ -72,12 +138,25 @@ else
LIBS_DL =
endif
+# Note for dlopen to work (at least on FreeBSD) with rtti information we have to export all symbols
+# in the binary and in the modules (see http://stackoverflow.com/questions/2351786/dynamic-cast-fails-when-used-with-dlopen-dlsym)
+LDFLAGS_DL =
+ifeq "$(PLATFORM)" "LINUX"
+LDFLAGS_DL = -Wl,-E
+endif
+ifeq "$(PLATFORM)" "FREEBSD"
+LDFLAGS_DL = -Wl,-E
+endif
+ifeq "$(PLATFORM)" "OPENBSD"
+LDFLAGS_DL = -Wl,-E
+endif
+ifeq "$(PLATFORM)" "NETBSD"
+LDFLAGS_DL = -Wl,-E
+endif
+
# i18n, gettext/libintl
#######################
-# enable or disable internationalization code
-ENABLE_NLS = 1
-
ifeq "$(ENABLE_NLS)" "1"
# we relly only on the GNU version, other versions (e.g. Solaris) are not
@@ -95,8 +174,9 @@ LIBS_LT =
endif
ifeq "$(PLATFORM)" "SUNOS"
-INCLUDE_FLAGS_LT = -I/usr/local/include
-LDFLAGS_LT = -L/usr/local/lib
+LIBLT_DIR ?= /usr/local
+INCLUDE_FLAGS_LT = -I$(LIBLT_DIR)/include
+LDFLAGS_LT = -L$(LIBLT_DIR)/lib
LIBS_LT = -lintl
endif
@@ -112,13 +192,13 @@ LDFLAGS_LT = -L/usr/local/lib
LIBS_LT = -lintl -liconv
endif
-ifeq "$(PLATFORM)" "CYGWIN"
+ifeq "$(PLATFORM)" "NETBSD"
INCLUDE_FLAGS_LT =
LDFLAGS_LT =
LIBS_LT = -lintl
endif
-ifeq "$(PLATFORM)" "NETBSD"
+ifeq "$(PLATFORM)" "CYGWIN"
INCLUDE_FLAGS_LT =
LDFLAGS_LT =
LIBS_LT = -lintl
@@ -192,44 +272,3 @@ endif
PLATFORM_COMPILE_FLAGS += $(INCLUDE_FLAGS_NET)
-# sqlite3
-#########
-
-# the GNU internationalization support is sometimes in separate libarries
-ifeq "$(PLATFORM)" "LINUX"
-INCLUDE_FLAGS_SQLITE3 = -I/usr/include
-LDFLAGS_SQLITE3 = -L/usr/lib
-LIBS_SQLITE3 = -lsqlite3
-endif
-
-ifeq "$(PLATFORM)" "SUNOS"
-INCLUDE_FLAGS_SQLITE3 =
-LDFLAGS_SQLITE3 =
-LIBS_SQLITE3 = -lsqlite3
-endif
-
-ifeq "$(PLATFORM)" "FREEBSD"
-INCLUDE_FLAGS_SQLITE3 =
-LDFLAGS_SQLITE3 =
-LIBS_SQLITE3 = -lsqlite3
-endif
-
-ifeq "$(PLATFORM)" "OPENBSD"
-INCLUDE_FLAGS_SQLITE3 =
-LDFLAGS_SQLITE3 =
-LIBS_SQLITE3 = -lsqlite3
-endif
-
-ifeq "$(PLATFORM)" "CYGWIN"
-INCLUDE_FLAGS_SQLITE3 =
-LDFLAGS_SQLITE3 =
-LIBS_SQLITE3 = -lsqlite3
-endif
-
-ifeq "$(PLATFORM)" "NETBSD"
-INCLUDE_FLAGS_SQLITE3 = -I/usr/pkg/include
-LDFLAGS_SQLITE3 = -L/usr/pkg/lib
-LIBS_SQLITE3 = -lsqlite3
-endif
-
-PLATFORM_COMPILE_FLAGS += $(INCLUDE_FLAGS_SQLITE3)