# -*- Makefile -*- # $Id: platform_linux_common.GNU 89516 2010-03-17 20:02:14Z shuston $ # We always include config-linux.h on Linux platforms. ACE_PLATFORM_CONFIG ?= config-linux.h exceptions ?= 1 debug ?= 1 optimize ?= 1 threads ?= 1 insure ?= 0 LSB_RELEASE_ID := $(shell lsb_release -i 2> /dev/null || echo Distributor ID: Unknown) LSB_RELEASE_RELEASE := $(shell lsb_release -r 2> /dev/null || echo Release: Unknown) 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 = PLATFORM_FOX_CPPFLAGS ?= -I/usr/include/fox PLATFORM_FOX_LIBS ?= -lFOX PLATFORM_FOX_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 ifeq (Ubuntu, $(findstring Ubuntu,$(LSB_RELEASE_ID))) PLATFORM_TK_CPPFLAGS=$(shell . /usr/lib/tk*/tkConfig.sh && echo -n $$TK_INCLUDE_SPEC $$TK_DEFS) PLATFORM_TK_LIBS=$(shell . /usr/lib/tk*/tkConfig.sh && echo -n $$TK_LIB_FLAG) PLATFORM_TK_LDFLAGS= PLATFORM_TCL_CPPFLAGS= PLATFORM_TCL_LIBS=-ltcl8.4 PLATFORM_TCL_LDFLAGS= else PLATFORM_TK_CPPFLAGS=-I$(shell . /usr/lib*/tkConfig.sh && echo -n $$TK_INC_DIR $$TK_DEFS) PLATFORM_TK_LIBS=$(shell . /usr/lib*/tkConfig.sh && echo -n $$TK_LIB_FLAG) PLATFORM_TK_LDFLAGS= PLATFORM_TCL_CPPFLAGS= PLATFORM_TCL_LIBS=-ltcl PLATFORM_TCL_LDFLAGS= endif PLATFORM_QT_CPPFLAGS ?= -I$(QTDIR)/include PLATFORM_QT_LIBS ?= -lqt-mt PLATFORM_QT_LDFLAGS ?= -L$(QTDIR)/lib 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 PLATFORM_AIO_SUPPORT := \ $(shell getconf AIO_LISTIO_MAX >/dev/null 2>&1 && echo -DACE_HAS_AIO_CALLS) GNU_LIBPTHREAD_VERSION := $(shell getconf GNU_LIBPTHREAD_VERSION 2> /dev/null || echo Unknown) ifeq (NPTL, $(word 1,$(GNU_LIBPTHREAD_VERSION))) NPTL_VERS := $(subst ., ,$(word 2,$(GNU_LIBPTHREAD_VERSION))) ifneq (0, $(word 1,$(NPTL_VERS))) nptl ?= 1 endif endif nptl ?= 0 ifeq ($(nptl),0) CPPFLAGS += -DACE_LACKS_LINUX_NPTL endif 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 SYSARCH := $(shell uname -m) ifeq ($(insure),1) CC = insure CXX = insure else ifneq ($(CROSS_COMPILE),) # Build using the cross-tools CC = ${CROSS_COMPILE}gcc CXX = ${CROSS_COMPILE}g++ AR = ${CROSS_COMPILE}ar # Cross-linker requires this for linked in shared libs that depend # themselves on other shared libs (not directly linked in) LDFLAGS += -Wl,-rpath-link,$(ACE_ROOT)/lib ifneq (,$(HOST_ROOT)) TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/ace_gperf TAO_IDL = $(HOST_ROOT)/bin/tao_idl TAO_IDL_DEP = $(TAO_IDL) TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/TAO/CIAO/bin/tao_idl3_to_idl2 TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2) # make sure to use the target compiler, not the cross-compiler # as preprocessor for the cross-compiled idl tools TAO_IDL_PREPROCESSOR = gcc endif endif endif PIC = -fPIC AR ?= ar ARFLAGS ?= rsuv RANLIB = @true