summaryrefslogtreecommitdiff
path: root/makefiles/gmake/platform.mk
diff options
context:
space:
mode:
authorAndreas Baumann <abaumann@yahoo.com>2010-02-13 09:56:58 +0100
committerAndreas Baumann <abaumann@yahoo.com>2010-02-13 09:56:58 +0100
commit68354c7d41085d1f976a5b1d7ee542479a85f621 (patch)
treeaec761c793093e4a2e4ce18d78b3b531bcb12a42 /makefiles/gmake/platform.mk
downloadsqlitexx-68354c7d41085d1f976a5b1d7ee542479a85f621.tar.gz
sqlitexx-68354c7d41085d1f976a5b1d7ee542479a85f621.tar.bz2
imported trunk from sourceforge SVN
Diffstat (limited to 'makefiles/gmake/platform.mk')
-rw-r--r--makefiles/gmake/platform.mk235
1 files changed, 235 insertions, 0 deletions
diff --git a/makefiles/gmake/platform.mk b/makefiles/gmake/platform.mk
new file mode 100644
index 0000000..452c9e1
--- /dev/null
+++ b/makefiles/gmake/platform.mk
@@ -0,0 +1,235 @@
+# sets e. g. to LINUX, OS_MAJOR_VERSION to 2 and OS_MINOR_VERSION to 6
+# by calling the 'guess_env' shell script, where the actual probing happens
+# Also sets PLATFORM_COMPILE_FLAGS to be included when compiling C/C++ code
+#
+# requires:
+# - TOPDIR
+#
+# provides:
+# - PLATFORM
+# - OS_MAJOR_VERSION and OS_MINOR_VERSION
+# - GCC_MAJOR_VERSION and GCC_MINOR_VERSION
+# - PLATFORM_COMPILE_FLAGS
+# - EXE
+# - SO
+# - INSTALL
+#
+# author: Andreas Baumann, abaumann at yahoo dot com
+
+-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))
+endif
+
+# platform specific flags
+#########################
+
+PLATFORM_COMPILE_FLAGS = \
+ -D$(PLATFORM) \
+ -DOS_MAJOR_VERSION=$(OS_MAJOR_VERSION) \
+ -DOS_MINOR_VERSION=$(OS_MINOR_VERSION)
+
+ifeq "$(PLATFORM)" "LINUX"
+PLATFORM_COMPILE_FLAGS += \
+ -DLINUX_DIST=$(LINUX_DIST) -DLINUX_REV=$(LINUX_REV)
+endif
+
+# extensions for binaries
+ifeq "$(PLATFORM)" "CYGWIN"
+EXE = .exe
+else
+EXE =
+endif
+
+# extensions for shared libraries
+# (TOOD: HP/Unix has .shlib, Mac/X has .lib, but we can't test it currently)
+SO = .so
+
+# name if the installation program
+# (TODO: use the MIT or openradio install-sh script instead?)
+INSTALL = $(shell $(SHELL) $(TOPDIR)/makefiles/gmake/guess_env --install)
+ifeq "$(PLATFORM)" "SUNOS"
+INSTALL = /usr/ucb/install
+else
+INSTALL = install
+endif
+
+# dynamic linker
+################
+
+# the linker library for dynamically loadable modules
+# (TODO: check for all platforms, as soon we add loadable modules here from
+# old TextWolf)
+ifeq "$(PLATFORM)" "LINUX"
+LIBS_DL = -ldl
+else
+LIBS_DL =
+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
+# so nice..
+
+MSGFMT=msgfmt
+MSGMERGE=msgmerge
+XGETTEXT=xgettext
+
+# the GNU internationalization support is sometimes in separate libarries
+ifeq "$(PLATFORM)" "LINUX"
+INCLUDE_FLAGS_LT =
+LDFLAGS_LT =
+LIBS_LT =
+endif
+
+ifeq "$(PLATFORM)" "SUNOS"
+INCLUDE_FLAGS_LT = -I/usr/local/include
+LDFLAGS_LT = -L/usr/local/lib
+LIBS_LT = -lintl
+endif
+
+ifeq "$(PLATFORM)" "FREEBSD"
+INCLUDE_FLAGS_LT = -I/usr/local/include
+LDFLAGS_LT = -L/usr/local/lib
+LIBS_LT = -lintl
+endif
+
+ifeq "$(PLATFORM)" "OPENBSD"
+INCLUDE_FLAGS_LT = -I/usr/local/include
+LDFLAGS_LT = -L/usr/local/lib
+LIBS_LT = -lintl -liconv
+endif
+
+ifeq "$(PLATFORM)" "CYGWIN"
+INCLUDE_FLAGS_LT =
+LDFLAGS_LT =
+LIBS_LT = -lintl
+endif
+
+ifeq "$(PLATFORM)" "NETBSD"
+INCLUDE_FLAGS_LT =
+LDFLAGS_LT =
+LIBS_LT = -lintl
+endif
+
+PLATFORM_COMPILE_FLAGS += $(INCLUDE_FLAGS_LT)
+
+endif
+
+PLATFORM_COMPILE_FLAGS += \
+ -DENABLE_NLS=$(ENABLE_NLS) -DLOCALEDIR=\"$(localedir)\"
+
+# command line parser generator gengetopt
+########################################
+
+# location of gengetopt (default: in the path)
+GENGETOPT=gengetopt
+
+# some platform either have no getopt/getopt_long or a broken one, so
+# gengetopt can include its own one
+
+GENGETOPT_INCLUDE_GETOPT =
+
+ifeq "$(PLATFORM)" "SUNOS"
+ifeq "$(OS_MAJOR_VERSION)" "5"
+ifeq "$(OS_MINOR_VERSION)" "8"
+GENGETOPT_INCLUDE_GETOPT = --include-getopt
+endif
+endif
+
+endif
+
+# TCP/IP, DNS
+#############
+
+ifeq "$(PLATFORM)" "LINUX"
+INCLUDE_FLAGS_NET =
+LDFLAGS_NET =
+LIBS_NET =
+endif
+
+ifeq "$(PLATFORM)" "SUNOS"
+INCLUDE_FLAGS_NET =
+LDFLAGS_NET =
+LIBS_NET = -lsocket -lnsl
+endif
+
+ifeq "$(PLATFORM)" "FREEBSD"
+INCLUDE_FLAGS_NET =
+LDFLAGS_NET =
+LIBS_NET =
+endif
+
+ifeq "$(PLATFORM)" "OPENBSD"
+INCLUDE_FLAGS_NET =
+LDFLAGS_NET =
+LIBS_NET =
+endif
+
+ifeq "$(PLATFORM)" "CYGWIN"
+INCLUDE_FLAGS_NET =
+LDFLAGS_NET =
+LIBS_NET =
+endif
+
+ifeq "$(PLATFORM)" "NETBSD"
+INCLUDE_FLAGS_NET =
+LDFLAGS_NET =
+LIBS_NET =
+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)