From b1e647baf2e1724838e34d25339a3672caf09e14 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Thu, 12 Jul 2012 19:18:06 +0200 Subject: added basic structure --- makefiles/gmake/platform.mk | 149 ++++++++++++++++++++++++++++---------------- 1 file changed, 94 insertions(+), 55 deletions(-) (limited to 'makefiles/gmake/platform.mk') 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) -- cgit v1.2.3-54-g00ecf