diff options
Diffstat (limited to 'trunk/ACE/include/makeinclude/platform_gnuwin32_common.GNU')
-rw-r--r-- | trunk/ACE/include/makeinclude/platform_gnuwin32_common.GNU | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/trunk/ACE/include/makeinclude/platform_gnuwin32_common.GNU b/trunk/ACE/include/makeinclude/platform_gnuwin32_common.GNU new file mode 100644 index 00000000000..50d7c42af90 --- /dev/null +++ b/trunk/ACE/include/makeinclude/platform_gnuwin32_common.GNU @@ -0,0 +1,119 @@ +# $Id$ + +ifneq ($(mingw32),1) + ifneq ($(cygwin32),1) + fail := \ + $(shell \ + echo "You should not use this file but one of"; \ + echo "platform_mingw32.GNU or platform_cygwin32.GNU"; \ + exit 1) + endif +endif + +# debug = 1 +# optimize = 1 +# exceptions = 0 + +GNUWIN32_DLL_ALLOW_EXECP = 0 + +GNUWIN32_CXX_VERSION := $(shell $(CXX) -dumpversion) +#exceptions across dll boundries are ok in gcc 3+ +ifeq (2.95,$(findstring 2.95,$(GNUWIN32_CXX_VERSION))) + GNUWIN32_DLL_ALLOW_EXECP = 0 +else + ifeq (3.,$(findstring 3.,$(GNUWIN32_CXX_VERSION))) + GNUWIN32_DLL_ALLOW_EXECP = 1 + else + GNUWIN32_DLL_ALLOW_EXECP = 0 + endif +endif + +winsock2 ?= 1 +exceptions ?= 1 +debug ?= 1 +optimize ?= 1 +threads ?= 1 +pipes ?= 1 + +ifeq ($(debug),0) +CFLAGS += -DNDEBUG +endif + +CC = gcc +CXX = g++ +RC = windres + +ifeq (3.4,$(findstring 3.4,$(GNUWIN32_CXX_VERSION))) + MODEL_FLAGS += -mtune=$(TCPU) +else + MODEL_FLAGS += -mcpu=$(TCPU) +endif + +CFLAGS += -W -Wall -Wpointer-arith +ifeq ($(threads),1) + MODEL_FLAGS += -mthreads +endif # threads + +CFLAGS += $(MODEL_FLAGS) + +EXEEXT = .exe + +DCFLAGS += -g +DLD = $(CXX) +LD = $(CXX) + +ifeq ($(mingw32),1) +ifeq ($(winsock2),1) +LIBS += -lws2_32 -lmswsock +endif +LIBS += -lwsock32 -lnetapi32 +endif + +OCFLAGS += -O3 +PIC = +AR = ar +ARFLAGS = rsuv +RANLIB = ranlib +SOEXT = dll +SOFLAGS += $(MODEL_FLAGS) $(CPPFLAGS) +SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $< + +PLATFORM_FL_CPPFLAGS ?= +PLATFORM_FL_LIBS ?= -lfltk -lfltk_forms -lfltk_gl -lfltk_images +PLATFORM_FL_LDFLAGS ?= + +PLATFORM_GL_CPPFLAGS ?= -I/usr/X11R6/include +PLATFORM_GL_LIBS ?= -lGL +PLATFORM_GL_LDFLAGS ?= -L/usr/X11R6/lib + +PLATFORM_WX_CPPFLAGS ?= $(shell wx-config --cxxflags) -I/usr/local/include +PLATFORM_WX_LIBS ?= $(shell wx-config --libs) +PLATFORM_WX_LDFLAGS ?= $(shell wx-config --ldflags) + +# The sed below is to strip comments on the .def file, +# to workaround to a bug in ld. +SHLIBBUILD = \ + $(RM) $(VSHDIR)/$@.def.old $(VSHDIR)/$@.def; \ + dlltool --export-all --output-def $(VSHDIR)/$@.def --dllname $@ \ + $(VSHOBJS) \ + && mv $(VSHDIR)/$@.def $(VSHDIR)/$@.def.old \ + && sed 's/;.*$$//g' < $(VSHDIR)/$@.def.old > $(VSHDIR)/$@.def \ + && $(SOLINK.cc) -Wl,--enable-auto-image-base -Wl,--out-implib,$@.a \ + -shared -o $@ $(LDFLAGS) -Wl,$(VSHDIR)/$@.def \ + $(VSHOBJS) $(ACE_SHLIBS) $(LIBS) + +ifneq ($(GNUWIN32_DLL_ALLOW_EXECP), 1) + ifeq ($(exceptions),1) + SHLIBBUILD += \ + ;echo "Warning: exceptions fail when mixing DLL and non DLL calls." + endif +endif + +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) |