summaryrefslogtreecommitdiff
path: root/ACE/include/makeinclude/platform_linux.GNU
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/include/makeinclude/platform_linux.GNU')
-rw-r--r--ACE/include/makeinclude/platform_linux.GNU171
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