diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2011-11-05 06:55:15 -0500 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2011-11-08 22:17:20 -0600 |
commit | 70270b53e764bf814ebb0c771db6280b951ee6b2 (patch) | |
tree | c6cbc8cf2b0930dcab5633b0dc13803dbaa2d6e2 /solenv/gbuild/platform/macosx.mk | |
parent | 696fb8582fe54d6cb5ec54f81680ddc281500b88 (diff) |
begin factorization of common GCC stuff
a lot of configuration/definition is shared between platforms that build
using gcc.
This start to regroup things that are common into 2 files
com_GCC_defs.mk and com_GCC_class.mk
this can be expanded to be, more generically com_$(COM)_defs/class
The reson for 2 files is that some step need to modfify common definitions
based on the platform and some common definitions need platform defined
value.
with these 2 files we can do a
platform - compiler - platform - compiler - platfrom
sandwich that should cover every scenario.
Diffstat (limited to 'solenv/gbuild/platform/macosx.mk')
-rw-r--r-- | solenv/gbuild/platform/macosx.mk | 134 |
1 files changed, 20 insertions, 114 deletions
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk index 616550b69c33..45fb9a7f46b0 100644 --- a/solenv/gbuild/platform/macosx.mk +++ b/solenv/gbuild/platform/macosx.mk @@ -29,26 +29,22 @@ GUI := UNX COM := GCC +gb_SDKDIR := $(MACOSX_SDK_PATH) + +ifeq ($(CPUNAME),POWERPC) +gb_CPUDEFS := -DPPC +else +gb_CPUDEFS := -DX86 +endif + +gb_COMPILERDEFAULTOPTFLAGS := -O2 + +include $(GBUILDDIR)/platform/com_GCC_defs.mk + + # Darwin mktemp -t expects a prefix, not a pattern gb_MKTEMP ?= /usr/bin/mktemp -t gbuild. -gb_CC := cc -gb_CXX := g++ -gb_GCCP := gcc -gb_AR := ar -gb_AWK := awk -gb_CLASSPATHSEP := : -gb_YACC := bison - -# use CC/CXX if they are nondefaults -ifneq ($(origin CC),default) -gb_CC := $(CC) -gb_GCCP := $(CC) -endif -ifneq ($(origin CXX),default) -gb_CXX := $(CXX) -endif -gb_CCVER := $(shell $(gb_CC) -dumpversion | $(gb_AWK) -F. -- '{ print $$1*10000+$$2*100+$$3 }') gb_OSDEFS := \ -D$(OS) \ @@ -62,46 +58,28 @@ gb_OSDEFS := \ -DMAC_OS_X_VERSION_MAX_ALLOWED=$(MAC_OS_X_VERSION_MAX_ALLOWED) \ $(EXTRA_CDEFS) \ -gb_COMPILERDEFS := \ - -D$(COM) \ + +gb_COMPILERDEFS += \ -DHAVE_GCC_VISIBILITY_FEATURE \ - -DCPPU_ENV=gcc3 \ - -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ -ifeq ($(CPUNAME),POWERPC) -gb_CPUDEFS := -DPPC -else -gb_CPUDEFS := -DX86 -endif -gb_SDKDIR := $(MACOSX_SDK_PATH) gb_CFLAGS := \ -isysroot $(gb_SDKDIR) \ - -Wall \ - -Wendif-labels \ - -Wextra \ + $(gb_CFLAGS_COMMON) \ -Wshadow \ -fPIC \ - -fmessage-length=0 \ - -fno-common \ -fno-strict-aliasing \ - -pipe \ gb_CXXFLAGS := \ -isysroot $(gb_SDKDIR) \ - -Wall \ - -Wendif-labels \ - -Wextra \ + $(gb_CXXFLAGS_COMMON) \ + -fPIC \ -Wno-ctor-dtor-privacy \ -Wno-non-virtual-dtor \ - -fPIC \ - -fmessage-length=0 \ - -fno-common \ -fno-strict-aliasing \ -fsigned-char \ -malign-natural \ - -pipe \ #-Wshadow \ break in compiler headers already #-fsigned-char \ might be removed? #-malign-natural \ might be removed? @@ -120,24 +98,6 @@ gb_OBJCXXFLAGS := -x objective-c++ -fobjc-exceptions gb_OBJCFLAGS := -x objective-c -ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) -gb_CFLAGS_WERROR := -Werror -DLIBO_WERROR -gb_CXXFLAGS_WERROR := -Werror -DLIBO_WERROR -endif - -ifeq ($(ENABLE_LTO),TRUE) -gb_Library_LTOFLAGS := -flto -endif - -gb_LinkTarget_EXCEPTIONFLAGS := \ - -DEXCEPTIONS_ON \ - -fexceptions \ - -fno-enforce-eh-specs \ - -gb_LinkTarget_NOEXCEPTIONFLAGS := \ - -DEXCEPTIONS_OFF \ - -fno-exceptions \ - gb_LinkTarget_LDFLAGS := \ -Wl,-syslibroot,$(gb_SDKDIR) \ $(subst -L../lib , ,$(SOLARLIB)) \ @@ -153,21 +113,6 @@ endif gb_COMPILERNOOPTFLAGS := -O0 -# Helper class - -gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs) - -gb_Helper_set_ld_path := DYLD_LIBRARY_PATH=$(OUTDIR)/lib - -# convert parameters filesystem root to native notation -# does some real work only on windows, make sure not to -# break the dummy implementations on unx* -define gb_Helper_convert_native -$(1) -endef - -gb_Helper_OUTDIRLIBDIR := $(OUTDIR)/lib - # YaccTarget class ifeq ($(CPUNAME),POWERPC) @@ -194,44 +139,6 @@ $(call gb_Helper_abbreviate_dirs,\ endef endif -# CObject class - -define gb_CObject__command -$(call gb_Output_announce,$(2),$(true),C ,3) -$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) $(dir $(4)) && \ - $(gb_CC) \ - $(DEFS) \ - $(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \ - $(T_CFLAGS) \ - -c $(3) \ - -o $(1) \ - -MMD -MT $(1) \ - -MP -MF $(4) \ - -I$(dir $(3)) \ - $(INCLUDE)) -endef - - -# CxxObject class - -# N.B: $(CXXFLAGS) may contain -x objective-c++, which must come before -c -define gb_CxxObject__command -$(call gb_Output_announce,$(2),$(true),CXX,3) -$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) $(dir $(4)) && \ - $(gb_CXX) \ - $(DEFS) \ - $(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \ - $(T_CXXFLAGS) \ - -c $(3) \ - -o $(1) \ - -MMD -MT $(1) \ - -MP -MF $(4) \ - -I$(dir $(3)) \ - $(INCLUDE_STL) $(INCLUDE)) -endef - # ObjCxxObject class @@ -298,9 +205,6 @@ gb_LinkTarget_OBJCFLAGS += -g gb_LinkTarget_OBJCXXFLAGS += -g endif -gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) -gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) - # FIXME framework handling very hackish define gb_LinkTarget__get_liblinkflags $(patsubst lib%.dylib,-l%,$(foreach lib,$(filter-out $(gb_Library__FRAMEWORKS),$(1)),$(call gb_Library_get_filename,$(lib)))) \ @@ -526,4 +430,6 @@ gb_UnoApiTarget_REGVIEWCOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$( # Python gb_PYTHON_PRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib +include $(GBUILDDIR)/platform/com_GCC_class.mk + # vim: set noet sw=4: |