diff options
author | Matúš Kukan <matus.kukan@gmail.com> | 2012-08-26 23:30:23 +0200 |
---|---|---|
committer | Matúš Kukan <matus.kukan@gmail.com> | 2012-08-31 21:21:38 +0200 |
commit | 38cc4f7fdee8f673a2b97ff7665941f83d3775a2 (patch) | |
tree | 380b0e86605a84b73ecc8f00fb17d712360ab78e /solenv | |
parent | 9b721623b69b1c2a54dc1dba04b9c92e5e4fd13e (diff) |
gbuild: UnpackedTarball: do not rename files; set cxx suffix for library
Change-Id: I8bf119a4ab3fc7c2febfa80176358f668003b7d1
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/Executable.mk | 1 | ||||
-rw-r--r-- | solenv/gbuild/Library.mk | 1 | ||||
-rw-r--r-- | solenv/gbuild/LinkTarget.mk | 43 | ||||
-rw-r--r-- | solenv/gbuild/StaticLibrary.mk | 1 | ||||
-rw-r--r-- | solenv/gbuild/UnpackedTarball.mk | 19 |
5 files changed, 33 insertions, 32 deletions
diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk index 68b6b636f8e3..72e948149f4e 100644 --- a/solenv/gbuild/Executable.mk +++ b/solenv/gbuild/Executable.mk @@ -131,6 +131,7 @@ $(eval $(foreach method,\ add_sdi_headers \ add_nativeres \ set_warnings_not_errors \ + set_cxx_suffix \ ,\ $(call gb_Executable_forward_to_Linktarget,$(method))\ )) diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk index 01e97824a85e..0c36e0aaef6d 100644 --- a/solenv/gbuild/Library.mk +++ b/solenv/gbuild/Library.mk @@ -218,6 +218,7 @@ $(eval $(foreach method,\ export_objects_list \ add_nativeres \ set_warnings_not_errors \ + set_cxx_suffix \ ,\ $(call gb_Library__forward_to_Linktarget,$(method))\ )) diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk index 06fcbcb6fe69..58b79110963a 100644 --- a/solenv/gbuild/LinkTarget.mk +++ b/solenv/gbuild/LinkTarget.mk @@ -155,9 +155,9 @@ gb_GenCObject_get_source = $(WORKDIR)/$(1).c # defined by platform # gb_CObject__command -$(call gb_GenCObject_get_target,%) : $(call gb_GenCObject_get_source,%) - test -f $< || (echo "Missing generated source file $<" && false) - $(call gb_CObject__command,$@,$*,$<,$(call gb_GenCObject_get_dep_target,$*)) +$(call gb_GenCObject_get_target,%) : + test -f $(call gb_GenCObject_get_source,$*) || (echo "Missing generated source file $(call gb_GenCObject_get_source,$*)" && false) + $(call gb_CObject__command,$@,$*,$(call gb_GenCObject_get_source,$*),$(call gb_GenCObject_get_dep_target,$*)) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_GenCObject_get_dep_target,%) : @@ -169,13 +169,13 @@ endif # GenCxxObject class -gb_GenCxxObject_get_source = $(WORKDIR)/$(1).cxx +gb_GenCxxObject_get_source = $(WORKDIR)/$(1).$(CXX_SUFFIX) # defined by platform # gb_CxxObject__command -$(call gb_GenCxxObject_get_target,%) : $(call gb_GenCxxObject_get_source,%) - test -f $< || (echo "Missing generated source file $<" && false) - $(call gb_CxxObject__command,$@,$*,$<,$(call gb_GenCxxObject_get_dep_target,$*)) +$(call gb_GenCxxObject_get_target,%) : + test -f $(call gb_GenCxxObject_get_source,$*) || (echo "Missing generated source file $(call gb_GenCxxObject_get_source,$*)" && false) + $(call gb_CxxObject__command,$@,$*,$(call gb_GenCxxObject_get_source,$*),$(call gb_GenCxxObject_get_dep_target,$*)) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_GenCxxObject_get_dep_target,%) : @@ -494,6 +494,7 @@ $(call gb_LinkTarget_get_target,$(1)) : PDBFILE := $(call gb_LinkTarget_get_target,$(1)) : EXTRAOBJECTLISTS := $(call gb_LinkTarget_get_target,$(1)) : NATIVERES := $(call gb_LinkTarget_get_target,$(1)) : WARNINGS_NOT_ERRORS := +$(call gb_LinkTarget_get_target,$(1)) : $(eval CXX_SUFFIX := cxx) ifeq ($(gb_FULLDEPS),$(true)) -include $(call gb_LinkTarget_get_dep_target,$(1)) @@ -517,6 +518,7 @@ $(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 := $(call gb_LinkTarget_get_dep_target,$(1)) : WARNINGS_NOT_ERRORS := +$(call gb_LinkTarget_get_dep_target,$(1)) : $(eval CXX_SUFFIX := cxx) endif endef @@ -851,10 +853,11 @@ define gb_LinkTarget_add_generated_c_object $(call gb_LinkTarget_get_target,$(1)) : GENCOBJECTS += $(2) $(call gb_LinkTarget_get_clean_target,$(1)) : GENCOBJECTS += $(2) -# Make just needs to know gb_GenCObject_get_source is a real target. -# Then it can use implicit rule for gb_GenCObject_get_target. -$(call gb_GenCObject_get_source,$(2)) : | $(gb_Helper_MISCDUMMY) $(call gb_LinkTarget_get_target,$(1)) : $(call gb_GenCObject_get_target,$(2)) +$(call gb_GenCObject_get_target,$(2)) : $(call gb_GenCObject_get_source,$(2)) +# Often gb_GenCObject_get_source does not have its own rule and is only a byproduct. +# That's why we need this order-only dependency on gb_Helper_MISCDUMMY +$(call gb_GenCObject_get_source,$(2)) : | $(gb_Helper_MISCDUMMY) $(call gb_GenCObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) $(call gb_GenCObject_get_target,$(2)) : T_CFLAGS += $(call gb_LinkTarget__get_cflags,$(4)) $(3) $(call gb_GenCObject_get_target,$(2)) : \ @@ -871,10 +874,11 @@ define gb_LinkTarget_add_generated_cxx_object $(call gb_LinkTarget_get_target,$(1)) : GENCXXOBJECTS += $(2) $(call gb_LinkTarget_get_clean_target,$(1)) : GENCXXOBJECTS += $(2) -# Make just needs to know gb_GenCxxObject_get_source is a real target. -# Then it can use implicit rule for gb_GenCxxObject_get_target. -$(call gb_GenCxxObject_get_source,$(2)) : | $(gb_Helper_MISCDUMMY) $(call gb_LinkTarget_get_target,$(1)) : $(call gb_GenCxxObject_get_target,$(2)) +$(call gb_GenCxxObject_get_target,$(2)) : $(call gb_GenCxxObject_get_source,$(2)) +# Often gb_GenCxxObject_get_source does not have its own rule and is only a byproduct. +# That's why we need this order-only dependency on gb_Helper_MISCDUMMY +$(call gb_GenCxxObject_get_source,$(2)) : | $(gb_Helper_MISCDUMMY) $(call gb_GenCxxObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) $(call gb_GenCxxObject_get_target,$(2)) : T_CXXFLAGS += $(3) $(call gb_GenCxxObject_get_target,$(2)) : \ @@ -1120,4 +1124,17 @@ endif endef +# Set suffix of C++ files, if different from 'cxx' +# +# This is useful for external libraries. +# +# gb_LinkTarget_set_cxx_suffix linktarget used-suffix +define gb_LinkTarget_set_cxx_suffix +$(call gb_LinkTarget_get_target,$(1)) : $(eval CXX_SUFFIX := $(2)) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : $(eval CXX_SUFFIX := $(2)) +endif + +endef + # vim: set noet sw=4: diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk index 3898ac9cf182..8b80dda01947 100644 --- a/solenv/gbuild/StaticLibrary.mk +++ b/solenv/gbuild/StaticLibrary.mk @@ -127,6 +127,7 @@ $(eval $(foreach method,\ use_unpacked \ add_sdi_headers \ set_warnings_not_errors \ + set_cxx_suffix \ ,\ $(call gb_StaticLibrary_forward_to_Linktarget,$(method))\ )) diff --git a/solenv/gbuild/UnpackedTarball.mk b/solenv/gbuild/UnpackedTarball.mk index 44048a9ead71..d41d2cbd81d6 100644 --- a/solenv/gbuild/UnpackedTarball.mk +++ b/solenv/gbuild/UnpackedTarball.mk @@ -132,11 +132,6 @@ $(call gb_Helper_abbreviate_dirs,\ done && \ ) \ $(if $(UNPACKED_FIX_EOL),$(gb_UnpackedTarball_CONVERTCOMMAND) dos $(UNPACKED_FIX_EOL) &&) \ - $(if $(UNPACKED_CXX_SUFFIX),\ - for c in `find $(3) -type f -name "*.$(UNPACKED_CXX_SUFFIX)"`; do \ - mv "$$c" "$${c%.$(UNPACKED_CXX_SUFFIX)}.cxx" || exit 1;\ - done && \ - ) \ $(if $(UNPACKED_FILES),\ mkdir -p $(sort $(dir $(UNPACKED_DESTFILES))) && \ $(call gb_UnpackedTarball__copy_files,$(UNPACKED_FILES),$(UNPACKED_DESTFILES)) && \ @@ -174,7 +169,6 @@ endef # Initialize unpacked tarball define gb_UnpackedTarball_UnpackedTarball_internal -$(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_CXX_SUFFIX := $(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_DESTFILES := $(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_FILES := $(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_FIX_EOL := @@ -209,19 +203,6 @@ $(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_FIX_EOL += $(addprefix $(c endef -# Set suffix of C++ files, if different from 'cxx' -# -# All files with that extension will be renamed to .cxx . This is because -# LinkTarget requires .cxx extension for C++ files. -# -# This is done after applying patches. -# -# gb_UnpackedTarball_fix_cxx_suffix unpacked used-suffix -define gb_UnpackedTarball_fix_cxx_suffix -$(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_CXX_SUFFIX := $(2) - -endef - # Set tarball name # # gb_UnpackedTarball_set_tarball unpacked tarball-name |