summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@gmail.com>2012-08-26 23:30:23 +0200
committerMatúš Kukan <matus.kukan@gmail.com>2012-08-31 21:21:38 +0200
commit38cc4f7fdee8f673a2b97ff7665941f83d3775a2 (patch)
tree380b0e86605a84b73ecc8f00fb17d712360ab78e /solenv
parent9b721623b69b1c2a54dc1dba04b9c92e5e4fd13e (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.mk1
-rw-r--r--solenv/gbuild/Library.mk1
-rw-r--r--solenv/gbuild/LinkTarget.mk43
-rw-r--r--solenv/gbuild/StaticLibrary.mk1
-rw-r--r--solenv/gbuild/UnpackedTarball.mk19
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