summaryrefslogtreecommitdiff
path: root/ACE/include/makeinclude/platform_freebsd.GNU
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/include/makeinclude/platform_freebsd.GNU')
-rw-r--r--ACE/include/makeinclude/platform_freebsd.GNU70
1 files changed, 70 insertions, 0 deletions
diff --git a/ACE/include/makeinclude/platform_freebsd.GNU b/ACE/include/makeinclude/platform_freebsd.GNU
new file mode 100644
index 00000000000..a40ffbef07e
--- /dev/null
+++ b/ACE/include/makeinclude/platform_freebsd.GNU
@@ -0,0 +1,70 @@
+# $Id$
+
+# platform_freebsd.GNU
+
+## See /usr/ports/Mk/bsd.port.mk for sample usage of the OSVERSION
+## variable, especially with respect to defining the correct compiler
+## flags for threads.
+OSVERSION := $(shell sysctl -n kern.osreldate)
+
+## GNU make does not support boolean conditional expressions
+## so we have to use a dummy RET variable.
+RET = $(shell test $(OSVERSION) -ge 200000 && printf 1)
+ifeq ($(RET),1)
+versioned_so = 1
+endif
+
+exceptions ?= 1
+threads ?= 1
+debug ?= 1
+optimize ?= 1
+pipes ?= 1
+
+CC = gcc
+CXX = g++
+
+CFLAGS += -W -Wall -Wpointer-arith
+DCFLAGS += -g
+RET = $(shell test $(OSVERSION) -ge 300000 && printf 1)
+ifneq ($(RET),1)
+ LDFLAGS += -Wl,-rpath $(ACE_ROOT)/lib
+endif
+DLD = $(CXX)
+LD = $(CXX)
+OCFLAGS += -O2
+PIC = -fpic
+AR = ar
+ARFLAGS = ruv
+RANLIB = ranlib
+
+SOFLAGS += $(CPPFLAGS) -shared
+SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
+PRELIB = @echo
+
+## Set the correct compiler flags for pthreads. This
+## test is copied from /usr/ports/Mk/bsd.port.mk
+ifeq ($(threads),1)
+RET = $(shell test $(OSVERSION) -lt 500016 && printf 1)
+ifeq ($(RET),1)
+ PTHREAD_CFLAGS = -D_THREAD_SAFE
+ PTHREAD_LIBS = -pthread
+else
+ RET = $(shell test $(OSVERSION) -lt 502102 && printf 1)
+ ifeq ($(RET),1)
+ PTHREAD_LIBS = -lc_r
+ else
+ PTHREAD_LIBS = -lpthread
+ endif
+endif # RET
+
+CFLAGS += $(PTHREAD_CFLAGS)
+LIBS += $(PTHREAD_LIBS)
+
+endif # threads
+
+# 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)