diff options
Diffstat (limited to 'ACE/include/makeinclude/platform_linux.GNU')
-rw-r--r-- | ACE/include/makeinclude/platform_linux.GNU | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/ACE/include/makeinclude/platform_linux.GNU b/ACE/include/makeinclude/platform_linux.GNU new file mode 100644 index 00000000000..86a393c1762 --- /dev/null +++ b/ACE/include/makeinclude/platform_linux.GNU @@ -0,0 +1,171 @@ +# -*- Makefile -*- +# $Id$ + +# According to Bryon G. Rigg <bgrigg@opus.bcbnet.com>, this file +# should allow ACE to be built on Linux. + +# We always include config-linux.h on Linux platforms. +ACE_PLATFORM_CONFIG ?= config-linux.h + +exceptions ?= 1 +debug ?= 1 +optimize ?= 1 +threads ?= 1 + +PLATFORM_XT_CPPFLAGS= +PLATFORM_XT_LIBS=-lXt +PLATFORM_XT_LDFLAGS= + +PLATFORM_FL_CPPFLAGS= +PLATFORM_FL_LIBS=-lfltk -lfltk_forms -lfltk_gl +PLATFORM_FL_LDFLAGS= + +PLATFORM_X11_CPPFLAGS=-I/usr/X11R6/include +PLATFORM_X11_LIBS=-lX11 +PLATFORM_X11_LDFLAGS=-L/usr/X11R6/lib + +PLATFORM_GL_CPPFLAGS=-I/usr/X11R6/include +PLATFORM_GL_LIBS =-lGL +PLATFORM_GL_LDFLAGS =-L/usr/X11R6/lib + +PLATFORM_GTK_CPPFLAGS=$(shell gtk-config --cflags) +PLATFORM_GTK_LIBS =$(shell gtk-config --libs) +PLATFORM_GTK_LDFLAGS = + +# NOTE: we only support wxWindows over GTK +PLATFORM_WX_CPPFLAGS= $(shell wx-config --cxxflags) $(PLATFORM_GTK_CPPFLAGS) +PLATFORM_WX_LIBS = $(shell wx-config --libs) $(PLATFORM_GTK_LIBS) +PLATFORM_WX_LDFLAGS = $(shell wx-config --ldflags) $(PLATFORM_GTK_LDFLAGS) + +PLATFORM_BOOST_CPPFLAGS ?= +PLATFORM_BOOST_LDLAGS ?= +PLATFORM_BOOST_UTF_LIBS ?= -lboost_unit_test_framework + +PLATFORM_TCL_CPPFLAGS=-I/usr/include/tcl8.4 +PLATFORM_TCL_LIBS=-ltcl8.4 +PLATFORM_TCL_LDFLAGS= + +PLATFORM_TK_CPPFLAGS=-I$(shell . /usr/lib/tk8.4/tkConfig.sh && echo -n $$TK_INC_DIR $$TK_DEFS) +PLATFORM_TK_LIBS=$(shell . /usr/lib/tk8.4/tkConfig.sh && echo -n $$TK_LIB_FLAG) +PLATFORM_TK_LDFLAGS= + +PLATFORM_AIO_SUPPORT := \ + $(shell test "`ls -L /usr/lib/librt.so* /lib/librt.so*`" && echo -DACE_HAS_AIO_CALLS) + +ssl ?= 0 +ifeq ($(ssl),1) + # Some Linux OpenSSL installations compile in Kerberos support. Add + # the Kerberos include path to preprocessor include path. + # + # We should probably also add the Kerberos libraries to + # PLATFORM_SSL_LIBS but we can't be sure if they are needed without + # a more sophisticated check. This will only be a problem when + # statically linking the OpenSSL library. The majority of + # installations use shared OpenSSL libraries so we should be okay, + # at least until we migrate to Autoconf. + PLATFORM_SSL_CPPFLAGS += -I/usr/kerberos/include +endif # ssl + +insure ?= 0 +ifeq ($(insure),1) + CC = insure + CXX = insure +else + CC ?= gcc + CXX ?= g++ +endif + +# fix this +pipes ?= 1 + +CFLAGS += -W -Wall -Wpointer-arith +ifeq ($(threads),1) + CPPFLAGS += -D_REENTRANT $(PLATFORM_AIO_SUPPORT) +endif # threads + +ifeq ($(buildbits),32) + CFLAGS += -m32 + LDFLAGS += -m32 +endif +ifeq ($(buildbits),64) + CFLAGS += -m64 +endif + +# +# Rely on _GNU_SOURCE to set these defaults defined in /usr/include/features.h +# instead of setting them directly here (older versions of gcc don't set it +# for you): _SVID_SOURCE _BSD_SOURCE _POSIX_SOURCE _POSIX_C_SOURCE=199506L, etc... +CPPFLAGS += -D_GNU_SOURCE + +DCFLAGS += -g +DLD = $(CXX) +LD = $(CXX) +LIBS += -ldl + +ifeq ($(threads),1) + LIBS += -lpthread +endif +# look for the rt library in the usual places +LIBS += $(shell test "`ls -L /usr/lib/librt.so* /lib/librt.so*`" && echo -lrt) + +ifeq ($(optimize),1) + SOFLAGS += -Wl,-O3 +endif + +PLATFORM_QT_CPPFLAGS ?= -I$(QTDIR)/include +PLATFORM_QT_LIBS ?= -lqt-mt +PLATFORM_QT_LDFLAGS ?= -L$(QTDIR)/lib + +OCFLAGS ?= -O3 +PIC = -fPIC +AR = ar +ARFLAGS = rsuv +RANLIB = @true +SOFLAGS += $(CPPFLAGS) -shared +SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<; \ + $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o +PRELIB = @true + +# Test for template instantiation, add to SOFLAGS if SONAME set, +# add -E to LDFLAGS if using GNU ld +# +include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU + +CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG) + +# Added line below to support "Executable Shared Object" files (as +# needed by the service configurator). +# Marius Kjeldahl <mariusk@sn.no, marius@funcom.com> +ifeq ($(threads),1) + ESOBUILD = $(COMPILEESO.cc) $(PIC) -shared -o $(VSHDIR)$*.so $< + ifndef PRELIB + PRELIB = @true + endif # ! PRELIB +endif + +sctp ?= +# support for OpenSS7 SCTP +ifeq ($(sctp),openss7) + PLATFORM_SCTP_CPPFLAGS+= -DACE_HAS_OPENSS7_SCTP + PLATFORM_SCTP_LDFLAGS?= + PLATFORM_SCTP_LIBS?= +endif + +# support for LKSCTP (Linux Kernel 2.5) +ifeq ($(sctp),lksctp) + PLATFORM_SCTP_CPPFLAGS+= -DACE_HAS_LKSCTP + PLATFORM_SCTP_LDFLAGS?= -L/usr/local/lib + PLATFORM_SCTP_LIBS?= -lsctp +endif + +#### GNU gas has a string limit of 4096 characters. On Alphas, +#### builds will fail due to running over that limit. There are +#### at least two workarounds: +#### 1) Change the limit to 8192 characters and rebuild gas. See +#### ACE-INSTALL.html for more information. +#### 2) Don't use -g when compiling those files. +#### If you're building on an Alpha and you haven't hacked and +#### rebuilt gas, you might need to uncomment the following. +#### ifeq ($(debug),1) +#### SUPPRESS_DASH_G = 1 +#### endif # debug |