summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-06 21:09:13 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-06 21:09:13 +0100
commit23dd856d3c70a63dd47ae2a09a75833267296432 (patch)
tree3ed426d983d5a46cc48dc1ee873ac5627b867f05 /solenv
parent5106b38a9cc64677b3fa4a0aea7450560775e78e (diff)
parent7e5b321535977ccddc6703c0ad4e5d25af797654 (diff)
Merge branch 'feature/gbuild_extensions'
Conflicts: extensions/source/ole/servreg.cxx extensions/source/plugin/util/makefile.mk postprocess/packcomponents/makefile.mk postprocess/prj/build.lst tail_build/prj/build.lst
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/Configuration.mk5
-rw-r--r--solenv/gbuild/Library.mk2
-rw-r--r--solenv/gbuild/LinkTarget.mk14
-rw-r--r--solenv/gbuild/platform/WNT_INTEL_GCC.mk2
-rw-r--r--solenv/gbuild/platform/WNT_INTEL_MSC.mk14
-rw-r--r--solenv/gbuild/platform/macosx.mk18
6 files changed, 45 insertions, 10 deletions
diff --git a/solenv/gbuild/Configuration.mk b/solenv/gbuild/Configuration.mk
index b0134c02e910..0674837c1311 100644
--- a/solenv/gbuild/Configuration.mk
+++ b/solenv/gbuild/Configuration.mk
@@ -309,6 +309,11 @@ $(call gb_Configuration_get_target,%) :
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $@) && touch $@)
+# TODO: ?
+define gb_Configuration_Configuration_nozip
+$$(eval $$(call gb_Module_register_target,$(call gb_Configuration_get_target,$(1)),$(call gb_Configuration_get_clean_target,$(1))))
+endef
+
# $(call gb_Configuration_Configuration,zipfile,repo,nodeliver)
# cannot use target local variable for REPO because it's needed in prereq
# last parameter may be used to turn off delivering of files
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 133496494e01..b9173ea74645 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -148,6 +148,7 @@ $(eval $(foreach method,\
add_asmobject \
add_asmobjects \
add_exception_objects \
+ add_x64_generated_exception_objects \
add_noexception_objects \
add_generated_cobjects \
add_generated_cxxobjects \
@@ -167,6 +168,7 @@ $(eval $(foreach method,\
set_include \
add_ldflags \
set_ldflags \
+ set_x64 \
add_libs \
set_library_path_flags \
add_api \
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index eec7612b84bb..e4dbd469a96d 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -416,6 +416,7 @@ $(call gb_LinkTarget_get_headers_target,%) : $(call gb_LinkTarget_get_external_h
# on clean.
# - TARGETTYPE is the type of linktarget as some platforms need very different
# command to link different targettypes.
+# - LIBRARY_X64 is only relevent for building a x64 library on windows.
#
# Since most variables are set on the linktarget and not on the object, the
# object learns about these setting via GNU makes scoping of target variables.
@@ -465,6 +466,7 @@ $(call gb_LinkTarget_get_target,$(1)) : LINKED_LIBS :=
$(call gb_LinkTarget_get_target,$(1)) : LINKED_STATIC_LIBS :=
$(call gb_LinkTarget_get_target,$(1)) : LIBS :=
$(call gb_LinkTarget_get_target,$(1)) : TARGETTYPE :=
+$(call gb_LinkTarget_get_target,$(1)) : LIBRARY_X64 :=
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : PDBFILE :=
$(call gb_LinkTarget_get_target,$(1)) : EXTRAOBJECTLISTS :=
@@ -489,6 +491,7 @@ $(call gb_LinkTarget_get_dep_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS
$(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE := $$(gb_LinkTarget_INCLUDE)
$(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE_STL := $$(gb_LinkTarget_INCLUDE_STL)
$(call gb_LinkTarget_get_dep_target,$(1)) : TARGETTYPE :=
+$(call gb_LinkTarget_get_dep_target,$(1)) : LIBRARY_X64 :=
$(call gb_LinkTarget_get_dep_target,$(1)) : EXTRAOBJECTLISTS :=
endif
@@ -869,6 +872,12 @@ define gb_LinkTarget_add_exception_objects
$(foreach obj,$(2),$(call gb_LinkTarget_add_exception_object,$(1),$(obj)))
endef
+#only useful for building x64 libraries on windows
+define gb_LinkTarget_add_x64_generated_exception_objects
+$(foreach obj,$(2),$(call gb_LinkTarget_add_generated_exception_object,$(1),$(obj)))
+$(foreach obj,$(2),$(eval $(call gb_GenCxxObject_get_target,$(obj)) : CXXOBJECT_X64 := YES))
+endef
+
define gb_LinkTarget_add_generated_cobjects
$(foreach obj,$(2),$(call gb_LinkTarget_add_generated_c_object,$(1),$(obj),$(3)))
endef
@@ -890,6 +899,11 @@ $(call gb_LinkTarget_get_target,$(1)) \
$(call gb_LinkTarget_get_dep_target,$(1)) : TARGETTYPE := $(2)
endef
+define gb_LinkTarget_set_x64
+$(call gb_LinkTarget_get_target,$(1)) \
+$(call gb_LinkTarget_get_dep_target,$(1)) : LIBRARY_X64 := $(2)
+endef
+
define gb_LinkTarget_set_dlltarget
$(call gb_LinkTarget_get_clean_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : DLLTARGET := $(2)
diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
index 9e0109b350b8..d68157035292 100644
--- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
@@ -265,10 +265,12 @@ gb_Library_PLAINLIBS_NONE += \
oleaut32 \
shell32 \
shlwapi \
+ urlmon \
user32 \
uuid \
winmm \
version \
+ wininet \
winspool \
ws2_32 \
diff --git a/solenv/gbuild/platform/WNT_INTEL_MSC.mk b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
index ab8446d46481..318e0d2c580f 100644
--- a/solenv/gbuild/platform/WNT_INTEL_MSC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
@@ -69,9 +69,7 @@ gb_RCDEFS := \
gb_RCFLAGS := \
-V
-# FIXME: When porting to Windows64, we should use only:
-# /c /Cp
-gb_AFLAGS := /c /Cp /coff /safeseh
+gb_AFLAGS := /c /Cp
gb_CFLAGS := \
-Gd \
@@ -201,7 +199,6 @@ gb_LinkTarget_NOEXCEPTIONFLAGS := \
-DEXCEPTIONS_OFF \
gb_LinkTarget_LDFLAGS := \
- -MACHINE:IX86 \
-MANIFEST \
$(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \
@@ -296,13 +293,14 @@ define gb_CxxObject__command
$(call gb_Output_announce,$(2).cxx,$(true),CXX,3)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) $(dir $(4)) && \
- $(gb_CXX) \
+ $(if $(filter YES,$(CXXOBJECT_X64)), $(CXX_X64_BINARY), $(gb_CXX)) \
$(DEFS) \
$(T_CXXFLAGS) \
-Fd$(PDBFILE) \
$(gb_COMPILERDEPFLAGS) \
-I$(realpath $(dir $(3))) \
$(INCLUDE_STL) $(INCLUDE) \
+ $(if $(filter YES,$(CXXOBJECT_X64)), -U_X86_ -D_AMD64_,) \
-c $(realpath $(3)) \
-Fo$(1)) $(call gb_create_deps,$(1),$(4),$(realpath $(3)))
endef
@@ -347,11 +345,13 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
$(foreach extraobjectlist,$(EXTRAOBJECTLISTS),$(shell cat $(extraobjectlist))) \
$(NATIVERES))) && \
- $(gb_LINK) \
+ $(if $(filter YES,$(LIBRARY_X64)), $(LINK_X64_BINARY), $(gb_LINK)) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(if $(filter StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \
$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
$(if $(filter YES,$(TARGETGUI)), -SUBSYSTEM:WINDOWS, -SUBSYSTEM:CONSOLE) \
+ $(if $(filter YES,$(LIBRARY_X64)), -MACHINE:X64, -MACHINE:IX86) \
+ $(if $(filter YES,$(LIBRARY_X64)), -LIBPATH:$(COMPATH)/lib/amd64 -LIBPATH:$(WINDOWS_SDK_HOME)/lib/x64,) \
$(T_LDFLAGS) \
@$${RESPONSEFILE} \
$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))) \
@@ -370,7 +370,6 @@ gb_Windows_PE_TARGETTYPEFLAGS := \
-opt:noref \
-incremental:no \
-debug \
- -safeseh \
-nxcompat \
-dynamicbase \
@@ -417,6 +416,7 @@ gb_Library_PLAINLIBS_NONE += \
user32 \
uuid \
version \
+ wininet \
winmm \
winspool \
ws2_32 \
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 2c61e8fa6401..13abade7d908 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -84,7 +84,7 @@ endif
# (see toolkit module for a case where it is necessary to do it this way)
gb_OBJCXXFLAGS := -x objective-c++ -fobjc-exceptions
-gb_OBJCFLAGS := -x objective-c
+gb_OBJCFLAGS := -x objective-c -fobjc-exceptions
gb_LinkTarget_LDFLAGS := \
-Wl,-syslibroot,$(gb_SDKDIR) \
@@ -187,6 +187,7 @@ $(call gb_Helper_abbreviate_dirs,\
DYLIB_FILE=`$(gb_MKTEMP)` && \
$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
+ $(if $(filter Bundle,$(TARGETTYPE)),$(gb_Bundle_TARGETTYPEFLAGS)) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \
$(subst \d,$$,$(RPATH)) \
@@ -194,6 +195,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(patsubst lib%.dylib,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) > $${DYLIB_FILE} && \
$(gb_CXX) \
$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
+ $(if $(filter Bundle,$(TARGETTYPE)),$(gb_Bundle_TARGETTYPEFLAGS)) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \
$(subst \d,$$,$(RPATH)) \
@@ -214,7 +216,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(if $(filter Executable,$(TARGETTYPE)), \
$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl Executable \
$(LAYER) $(1) &&) \
- $(if $(filter Library CppunitTest,$(TARGETTYPE)),\
+ $(if $(filter Library Bundle CppunitTest,$(TARGETTYPE)),\
$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl Library $(LAYER) $(if $(SOVERSION),$(1).$(SOVERSION),$(1)) && \
ln -sf $(1) $(patsubst %.dylib,%.jnilib,$(1)) &&) \
rm -f $${DYLIB_FILE})
@@ -237,7 +239,7 @@ endef
define gb_LinkTarget__command
$(call gb_Output_announce,$(2),$(true),LNK,4)
-$(if $(filter Library CppunitTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1),$(2)))
+$(if $(filter Library Bundle CppunitTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1),$(2)))
$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1)))
endef
@@ -246,6 +248,7 @@ endef
gb_Library_DEFS :=
gb_Library_TARGETTYPEFLAGS := -dynamiclib -single_module
+gb_Bundle_TARGETTYPEFLAGS := -bundle
gb_Library_SYSPRE := lib
gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_
gb_Library_PLAINEXT := .dylib
@@ -284,6 +287,7 @@ gb_Library_LAYER := \
$(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
$(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \
$(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):NONE) \
$(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
$(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \
$(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \
@@ -304,6 +308,14 @@ endef
gb_Library__set_soversion_script_platform = $(gb_Library__set_soversion_script)
+# bundle is a special kind of library that exists only on Darwin/OSX
+# set the TARGETTYPE to Bundle, and clear install_name(RPATH)
+define gb_Library_Bundle
+$(call gb_Library_Library,$(1))
+$(call gb_LinkTarget_set_targettype,$(call gb_Library_get_linktargetname,$(1)),Bundle)
+$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,$(1))) : \
+ RPATH :=
+endef
# StaticLibrary class