summaryrefslogtreecommitdiff
path: root/solenv/gbuild
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/gbuild')
-rw-r--r--solenv/gbuild/CppunitTest.mk28
-rw-r--r--solenv/gbuild/Executable.mk2
-rw-r--r--solenv/gbuild/Library.mk5
-rw-r--r--solenv/gbuild/LinkTarget.mk37
-rw-r--r--solenv/gbuild/StaticLibrary.mk5
-rw-r--r--solenv/gbuild/TargetLocations.mk4
-rwxr-xr-xsolenv/gbuild/filter-showIncludes.pl62
-rwxr-xr-xsolenv/gbuild/platform/macosx.mk2
-rwxr-xr-xsolenv/gbuild/platform/openbsd.mk1
-rwxr-xr-xsolenv/gbuild/platform/solaris.mk1
-rwxr-xr-xsolenv/gbuild/platform/unxgcc.mk8
-rwxr-xr-xsolenv/gbuild/platform/windows.mk113
-rw-r--r--solenv/gbuild/platform/winmingw.mk6
13 files changed, 159 insertions, 115 deletions
diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
index 59f6f332b3cf..d7ec6f04ad1f 100644
--- a/solenv/gbuild/CppunitTest.mk
+++ b/solenv/gbuild/CppunitTest.mk
@@ -36,7 +36,7 @@ export DBGSV_ERROR_OUT
# gb_CppunitTest_TARGETTYPE
# gb_CppunitTest_get_filename
gb_CppunitTest_CPPTESTTARGET := $(call gb_Executable_get_target,cppunit/cppunittester)
-gb_CppunitTest_CPPTESTCOMMAND := $(gb_CppunitTest_CPPTESTPRECOMMAND) $(gb_CppunitTest_CPPTESTTARGET)
+gb_CppunitTest_CPPTESTCOMMAND := $(gb_CppunitTest_CPPTESTPRECOMMAND) $(gb_CppunitTest_GDBTRACE) STAR_RESOURCEPATH=$(dir $(call gb_ResTarget_get_outdir_target,example)) $(gb_CppunitTest_CPPTESTTARGET)
gb_CppunitTest__get_linktargetname = CppunitTest/$(call gb_CppunitTest_get_filename,$(1))
.PHONY : $(call gb_CppunitTest_get_clean_target,%)
@@ -49,7 +49,7 @@ $(call gb_CppunitTest_get_target,%) : $(gb_CppunitTest_CPPTESTTARGET)
$(call gb_Output_announce,$*,$(true),CUT,2)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $@) && \
- $(gb_CppunitTest_CPPTESTCOMMAND) $(call gb_LinkTarget_get_target,CppunitTest/$(call gb_CppunitTest_get_libfilename,$*)) > $@.log 2>&1 || (cat $@.log && false))
+ $(gb_CppunitTest_CPPTESTCOMMAND) $(call gb_LinkTarget_get_target,CppunitTest/$(call gb_CppunitTest_get_libfilename,$*)) $(ARGS) > $@.log 2>&1 || (cat $@.log && false))
define gb_CppunitTest_CppunitTest
$(call gb_CppunitTest__CppunitTest_impl,$(1),$(call gb_CppunitTest__get_linktargetname,$(1)))
@@ -68,10 +68,16 @@ $(call gb_LinkTarget_set_defs,$(2), \
$(call gb_CppunitTest_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2))
$(call gb_CppunitTest_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
$(call gb_CppunitTest_CppunitTest_platform,$(1),$(2),$(gb_CppunitTest_DLLDIR)/$(call gb_CppunitTest_get_libfilename,$(1)))
+$(call gb_CppunitTest_get_target,$(1)) : ARGS :=
$$(eval $$(call gb_Module_register_target,$(call gb_CppunitTest_get_target,$(1)),$(call gb_CppunitTest_get_clean_target,$(1))))
endef
+define gb_CppunitTest_set_args
+$(call gb_CppunitTest_get_target,$(1)) : ARGS := $(2)
+
+endef
+
define gb_CppunitTest__forward_to_Linktarget
gb_CppunitTest_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_CppunitTest__get_linktargetname,$$(1)),$$(2),$$(3))
@@ -82,22 +88,24 @@ $(eval $(foreach method,\
add_cobjects \
add_cxxobject \
add_cxxobjects \
- add_objcxxobject \
- add_objcxxobjects \
add_exception_objects \
+ add_executable_objects \
+ add_library_objects \
+ add_linked_libs \
+ add_linked_static_libs \
add_noexception_objects \
+ add_objcxxobject \
+ add_objcxxobjects \
+ add_package_headers \
+ add_precompiled_header \
+ add_sdi_headers \
set_cflags \
set_cxxflags \
- set_objcxxflags \
set_defs \
set_include \
set_ldflags \
set_library_path_flags \
- add_linked_libs \
- add_linked_static_libs \
- add_package_headers \
- add_sdi_headers \
- add_precompiled_header \
+ set_objcxxflags \
,\
$(call gb_CppunitTest__forward_to_Linktarget,$(method))\
))
diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk
index 90519f91b382..1ffb1ef09b9f 100644
--- a/solenv/gbuild/Executable.mk
+++ b/solenv/gbuild/Executable.mk
@@ -58,7 +58,7 @@ $(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)),$(call g
endef
define gb_Executable_forward_to_Linktarget
-gb_Executable_$(1) = $$(call gb_LinkTarget_$(1),Executable/$$(1)$$(gb_Executable_EXT),$$(2),$$(3))
+gb_Executable_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Executable_get_linktargetname,$$(1)),$$(2),$$(3))
endef
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 3c8d2f5def81..e6f358a9ef30 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -39,7 +39,6 @@
# gb_Library_Library_platform
# gb_Library_TARGETS
-gb_Library__get_linktargetname = Library/$(call gb_Library_get_filename,$(1))
# EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows
.PHONY : $(WORKDIR)/Clean/OutDir/lib/%$(gb_Library_PLAINEXT)
@@ -60,7 +59,7 @@ $$(eval $$(call gb_Output_info,Currently known libraries are: $(sort $(gb_Librar
$$(eval $$(call gb_Output_error,Library $(1) must be registered in Repository.mk))
endif
$(call gb_Library_get_target,$(1)) : AUXTARGETS :=
-$(call gb_Library__Library_impl,$(1),$(call gb_Library__get_linktargetname,$(1)))
+$(call gb_Library__Library_impl,$(1),$(call gb_Library_get_linktargetname,$(1)))
endef
@@ -97,7 +96,7 @@ gb_Library__get_layer_componentprefix = \
define gb_Library__forward_to_Linktarget
-gb_Library_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Library__get_linktargetname,$$(1)),$$(2),$$(3))
+gb_Library_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Library_get_linktargetname,$$(1)),$$(2),$$(3))
endef
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 3572b10a6e30..b71a05de0f17 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -262,6 +262,7 @@ $(call gb_LinkTarget_get_clean_target,%) :
$(call gb_LinkTarget_get_dep_target,$*) \
$(call gb_LinkTarget_get_headers_target,$*) \
$(call gb_LinkTarget_get_external_headers_target,$*) \
+ $(call gb_LinkTarget_get_objects_list,$*) \
$(DLLTARGET) \
$(AUXTARGETS)) && \
cat $${RESPONSEFILE} /dev/null | xargs -n 200 rm -f && \
@@ -284,8 +285,20 @@ $(call gb_Helper_abbreviate_dirs,\
endef
+define gb_LinkTarget__command_objectlist
+TEMPFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object)))) && \
+$(if $(EXTRAOBJECTLISTS),cat $(EXTRAOBJECTLISTS) >> $${TEMPFILE} && ) \
+mv $${TEMPFILE} $(call gb_LinkTarget_get_objects_list,$(2))
+
+endef
+
$(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_headers_target,%) $(gb_Helper_MISCDUMMY)
$(call gb_LinkTarget__command,$@,$*)
+ $(call gb_LinkTarget__command_objectlist,$@,$*)
ifeq ($(gb_FULLDEPS),$(true))
$(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_dep_target,%)
@@ -387,6 +400,7 @@ $(call gb_LinkTarget_get_target,$(1)) : PCH_NAME :=
$(call gb_LinkTarget_get_target,$(1)) : PCHOBJS :=
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : PDBFILE :=
+$(call gb_LinkTarget_get_target,$(1)) : EXTRAOBJECTLISTS :=
ifeq ($(gb_FULLDEPS),$(true))
ifneq ($(wildcard $(call gb_LinkTarget_get_dep_target,$(1))),)
@@ -408,6 +422,7 @@ $(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)) : PCH_NAME :=
+$(call gb_LinkTarget_get_dep_target,$(1)) : EXTRAOBJECTLISTS :=
endif
endef
@@ -575,6 +590,28 @@ define gb_LinkTarget_add_cobjects
$(foreach obj,$(2),$(call gb_LinkTarget_add_cobject,$(1),$(obj),$(3)))
endef
+define gb_LinkTarget_add_linktarget_objects
+$(call gb_LinkTarget_get_target,$(1)) : $(foreach linktarget,$(2),$(call gb_LinkTarget_get_target,$(linktarget)))
+$(info gb_LinkTarget_add_linktarget_objects,$(1),$(2))
+$(call gb_LinkTarget_get_target,$(1)) : EXTRAOBJECTLISTS += $(foreach linktarget,$(2),$(call gb_LinkTarget_get_objects_list,$(linktarget)))
+
+endef
+
+define gb_LinkTarget_add_library_objects
+ifneq (,$$(filter-out $(gb_Library_KNOWNLIBS),$(2)))
+$$(eval $$(call gb_Output_info,currently known libraries are: $(sort $(gb_Library_KNOWNLIBS)),ALL))
+$$(eval $$(call gb_Output_error,Cannot import objects library/libraries $$(filter-out $(gb_Library_KNOWNLIBS),$(2)). Libraries must be registered in Repository.mk))
+endif
+$(info gb_LinkTarget_add_library_objects,$(1),$(2))
+$(call gb_LinkTarget_add_linktarget_objects,$(1),$(foreach lib,$(2),$(call gb_Library_get_linktargetname,$(lib))))
+
+endef
+
+define gb_LinkTarget_add_executable_objects
+$(call gb_LinkTarget_add_linktarget_objects,$(1),$(foreach exe,$(2),$(call gb_Executable_get_linktargetname,$(lib))))
+
+endef
+
define gb_LinkTarget_add_cxxobjects
$(foreach obj,$(2),$(call gb_LinkTarget_add_cxxobject,$(1),$(obj),$(3)))
endef
diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk
index 717b4717c4d8..d217f584bc80 100644
--- a/solenv/gbuild/StaticLibrary.mk
+++ b/solenv/gbuild/StaticLibrary.mk
@@ -35,7 +35,6 @@
# gb_StaticLibrary_FILENAMES
# gb_StaticLibrary_TARGETS
-gb_StaticLibrary__get_linktargetname = StaticLibrary/$(call gb_StaticLibrary_get_filename,$(1))
# EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows
.PHONY : $(WORKDIR)/Clean/OutDir/lib/%$(gb_StaticLibrary_PLAINEXT)
@@ -56,7 +55,7 @@ $$(eval $$(call gb_Output_info,Currently known static libraries are: $(sort $(gb
$$(eval $$(call gb_Output_error,Static library $(1) must be registered in Repository.mk))
endif
$(call gb_StaticLibrary_get_target,$(1)) : AUXTARGETS :=
-$(call gb_StaticLibrary__StaticLibrary_impl,$(1),$(call gb_StaticLibrary__get_linktargetname,$(1)))
+$(call gb_StaticLibrary__StaticLibrary_impl,$(1),$(call gb_StaticLibrary_get_linktargetname,$(1)))
endef
@@ -76,7 +75,7 @@ $(call gb_Deliver_add_deliverable,$(call gb_StaticLibrary_get_target,$(1)),$(cal
endef
define gb_StaticLibrary_forward_to_Linktarget
-gb_StaticLibrary_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_StaticLibrary__get_linktargetname,$$(1)),$$(2),$$(3))
+gb_StaticLibrary_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_StaticLibrary_get_linktargetname,$$(1)),$$(2),$$(3))
endef
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 23df7b159611..486a5b6d1218 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -65,6 +65,7 @@ gb_JunitTest_get_userdir = $(WORKDIR)/JunitTest/$(1)/user
gb_LinkTarget_get_external_headers_target = $(WORKDIR)/ExternalHeaders/$(1)
gb_LinkTarget_get_headers_target = $(WORKDIR)/Headers/$(1)
gb_LinkTarget_get_target = $(WORKDIR)/LinkTarget/$(1)
+gb_LinkTarget_get_objects_list = $(WORKDIR)/LinkTarget/$(1).objectlist
gb_Module_get_check_target = $(WORKDIR)/Module/check/$(1)
gb_Module_get_subsequentcheck_target = $(WORKDIR)/Module/subsequentcheck/$(1)
gb_Module_get_target = $(WORKDIR)/Module/$(1)
@@ -151,6 +152,9 @@ define gb_StaticLibrary_get_filename
$(patsubst $(1):%,%,$(filter $(1):%,$(gb_StaticLibrary_FILENAMES)))
endef
+gb_Executable_get_linktargetname = Executable/$(1)$(gb_Executable_EXT)
+gb_Library_get_linktargetname = Library/$(call gb_Library_get_filename,$(1))
+gb_StaticLibrary_get_linktargetname = StaticLibrary/$(call gb_StaticLibrary_get_filename,$(1))
# static members declared here because they are used globally
diff --git a/solenv/gbuild/filter-showIncludes.pl b/solenv/gbuild/filter-showIncludes.pl
new file mode 100755
index 000000000000..f72a9eb07fd8
--- /dev/null
+++ b/solenv/gbuild/filter-showIncludes.pl
@@ -0,0 +1,62 @@
+#!/usr/bin/env perl
+#
+# filter-showIncludes.pl depfile.d objfile.o orginal.cxx
+#
+# Create dependency information from the output of cl.exe's showInclude. It
+# needs additional information - the output name to which to write, objfile
+# that depends on the includes, and the original file name.
+#
+# It also consolidates the file names to a canonical form, and filters out
+# duplicates.
+#
+# LGPL v3 / GPL v3 / MPL 1.1
+#
+# Original author: Jan Holesovsky <kendy@suse.cz>
+
+my $outfile = $ARGV[0];
+my $objfile = $ARGV[1];
+my $srcfile = $ARGV[2];
+if ( !defined $outfile || !defined $objfile || !defined $srcfile ) {
+ die "Not enough parameters to create dependencies.";
+}
+
+my $showincludes_prefix = $ENV{'SHOWINCLUDES_PREFIX'};
+if ( !defined( $showincludes_prefix ) || $showincludes_prefix eq "" ) {
+ $showincludes_prefix = 'Note: including file:';
+}
+
+open( OUT, "> $outfile" ) or die "Cannot open $outfile for writing.";
+print OUT "$objfile: \\\n $srcfile";
+
+my %seen;
+my $first_line = 1;
+while ( <STDIN> ) {
+ if ( /^$showincludes_prefix/ ) {
+ s/^$showincludes_prefix\s*//;
+ s/\r$//;
+
+ chomp;
+ s/\\/\//g;
+
+ # X: -> /cygdrive/x/
+ s/^(.):/\/cygdrive\/\l\1/;
+
+ s/ /\\ /g;
+
+ if ( !defined $seen{$_} ) {
+ $seen{$_} = 1;
+ print OUT " \\\n $_";
+ }
+ }
+ else {
+ # skip the first line, it always just duplicates what is being
+ # compiled
+ print unless ( $first_line );
+ }
+ $first_line = 0;
+}
+
+print OUT "\n";
+close( OUT ) or die "Cannot close $outfile.";
+
+# vim: shiftwidth=4 softtabstop=4 expandtab:
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index cc577cbef1ff..2def0c9828f0 100755
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -270,6 +270,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
$(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \
$(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \
-o $(1) \
`cat $${DYLIB_FILE}` && \
@@ -288,6 +289,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
$(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \
2> /dev/null)
endef
diff --git a/solenv/gbuild/platform/openbsd.mk b/solenv/gbuild/platform/openbsd.mk
index 7386eea20bcc..92654afa5923 100755
--- a/solenv/gbuild/platform/openbsd.mk
+++ b/solenv/gbuild/platform/openbsd.mk
@@ -50,6 +50,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \
-Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \
$(subst -lpthread,$(PTHREAD_LIBS),$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))))) \
-o $(1))
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index 65b71a3b27cb..9095d609f8e4 100755
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -206,6 +206,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \
$(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \
-o $(1))
endef
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index e52684f61ca4..d3b63edc0185 100755
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -222,13 +222,15 @@ gb_LinkTarget_CFLAGS += -finline-limit=0 -fno-inline -fno-default-inline
endif
ifeq ($(gb_SYMBOL),$(true))
-gb_LinkTarget_CXXFLAGS += -ggdb3
-gb_LinkTarget_CFLAGS += -ggdb3
+gb_LinkTarget_CXXFLAGS += -ggdb2
+gb_LinkTarget_CFLAGS += -ggdb2
endif
gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC)))
gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
+# note that `cat $(extraobjectlist)` is needed to build with older gcc versions, e.g. 4.1.2 on SLED10
+# we want to use @$(extraobjectlist) in the long run
define gb_LinkTarget__command_dynamiclink
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
@@ -238,6 +240,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \
-Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \
$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) \
-o $(1))
@@ -250,6 +253,7 @@ $(call gb_Helper_abbreviate_dirs,\
$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \
2> /dev/null)
endef
diff --git a/solenv/gbuild/platform/windows.mk b/solenv/gbuild/platform/windows.mk
index 52dffb4e77c6..f9182c8f30ee 100755
--- a/solenv/gbuild/platform/windows.mk
+++ b/solenv/gbuild/platform/windows.mk
@@ -213,6 +213,16 @@ endif
gb_COMPILERNOOPTFLAGS := -Od
+ifeq ($(gb_FULLDEPS),$(true))
+gb_COMPILERDEPFLAGS := -showIncludes
+define gb_create_deps
+| $(GBUILDDIR)/filter-showIncludes.pl $(2) $(1) $(3)
+endef
+else
+gb_COMPILERDEPFLAGS :=
+define gb_create_deps
+endef
+endif
# Helper class
gb_Helper_SRCDIR_NATIVE := $(shell cygpath -m $(SRCDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }')
@@ -241,27 +251,6 @@ endef
# CObject class
-ifeq ($(gb_FULLDEPS),$(true))
-define gb_CObject__command_deponcompile
-$(call gb_Helper_abbreviate_dirs_native,\
- $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \
- -I$(dir $(3)) \
- $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \
- $(3) \
- -f - \
- | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
- -v OBJECTFILE=$(1) \
- -v OUTDIR=$(OUTDIR)/ \
- -v WORKDIR=$(WORKDIR)/ \
- -v SRCDIR=$(SRCDIR)/ \
- -v REPODIR=$(REPODIR)/ \
- > $(call gb_CObject_get_dep_target,$(2)))
-endef
-else
-CObject__command_deponcompile =
-endif
-
define gb_CObject__command
$(call gb_Output_announce,$(2),$(true),C ,3)
$(call gb_Helper_abbreviate_dirs_native,\
@@ -270,37 +259,16 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(gb_CC) \
$(DEFS) $(CFLAGS) -Fd$(PDBFILE) \
$(PCHFLAGS) \
+ $(gb_COMPILERDEPFLAGS) \
-I$(realpath $(dir $(3))) \
$(INCLUDE) \
-c $(realpath $(3)) \
- -Fo$(1))
-$(call gb_CObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CFLAGS),$(INCLUDE))
+ -Fo$(1)) $(call gb_create_deps,$(1),$(call gb_CObject_get_dep_target,$(2)),$(realpath $(3)))
endef
# CxxObject class
-ifeq ($(gb_FULLDEPS),$(true))
-define gb_CxxObject__command_deponcompile
-$(call gb_Helper_abbreviate_dirs_native,\
- $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \
- -I$(dir $(3)) \
- $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \
- $(3) \
- -f - \
- | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
- -v OBJECTFILE=$(1) \
- -v OUTDIR=$(OUTDIR)/ \
- -v WORKDIR=$(WORKDIR)/ \
- -v SRCDIR=$(SRCDIR)/ \
- -v REPODIR=$(REPODIR)/ \
- > $(call gb_CxxObject_get_dep_target,$(2)))
- endef
-else
-gb_CxxObject__command_deponcompile =
-endif
-
define gb_CxxObject__command
$(call gb_Output_announce,$(2),$(true),CXX,3)
$(call gb_Helper_abbreviate_dirs_native,\
@@ -309,11 +277,11 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(gb_CXX) \
$(DEFS) $(CXXFLAGS) -Fd$(PDBFILE)\
$(PCHFLAGS) \
+ $(gb_COMPILERDEPFLAGS) \
-I$(realpath $(dir $(3))) \
$(INCLUDE_STL) $(INCLUDE) \
-c $(realpath $(3)) \
- -Fo$(1))
-$(call gb_CxxObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CFLAGS),$(INCLUDE))
+ -Fo$(1)) $(call gb_create_deps,$(1),$(call gb_CxxObject_get_dep_target,$(2)),$(realpath $(3)))
endef
@@ -322,28 +290,6 @@ endef
gb_PrecompiledHeader_get_enableflags = -Yu$(1).hxx \
-Fp$(call gb_PrecompiledHeader_get_target,$(1))
-ifeq ($(gb_FULLDEPS),$(true))
-define gb_PrecompiledHeader__command_deponcompile
-$(call gb_Helper_abbreviate_dirs_native,\
- $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(4) $(5) \
- -I$(dir $(3)) \
- $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \
- $(3) \
- -f - \
- | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
- -v OBJECTFILE=$(1) \
- -v OUTDIR=$(OUTDIR)/ \
- -v WORKDIR=$(WORKDIR)/ \
- -v SRCDIR=$(SRCDIR)/ \
- -v REPODIR=$(REPODIR)/ \
- > $(call gb_PrecompiledHeader_get_dep_target,$(2)))
-endef
-else
-gb_PrecompiledHeader__command_deponcompile =
-endif
-
-
define gb_PrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs_native,\
@@ -351,11 +297,11 @@ $(call gb_Helper_abbreviate_dirs_native,\
unset INCLUDE && \
$(gb_CXX) \
$(4) $(5) -Fd$(PDBFILE) \
+ $(gb_COMPILERDEPFLAGS) \
-I$(realpath $(dir $(3))) \
$(6) \
-c $(realpath $(3)) \
- -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj)
-$(call gb_PrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
+ -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj) $(call gb_create_deps,$(1),$(call gb_PrecompiledHeader_get_dep_target,$(2)),$(realpath $(3)))
endef
# NoexPrecompiledHeader class
@@ -363,28 +309,6 @@ endef
gb_NoexPrecompiledHeader_get_enableflags = -Yu$(1).hxx \
-Fp$(call gb_NoexPrecompiledHeader_get_target,$(1))
-ifeq ($(gb_FULLDEPS),$(true))
-define gb_NoexPrecompiledHeader__command_deponcompile
-$(call gb_Helper_abbreviate_dirs_native,\
- $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(4) $(5) \
- -I$(dir $(3)) \
- $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \
- $(3) \
- -f - \
- | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
- -v OBJECTFILE=$(1) \
- -v OUTDIR=$(OUTDIR)/ \
- -v WORKDIR=$(WORKDIR)/ \
- -v SRCDIR=$(SRCDIR)/ \
- -v REPODIR=$(REPODIR)/ \
- > $(call gb_NoexPrecompiledHeader_get_dep_target,$(2)))
-endef
-else
-gb_NoexPrecompiledHeader__command_deponcompile =
-endif
-
-
define gb_NoexPrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs_native,\
@@ -392,11 +316,11 @@ $(call gb_Helper_abbreviate_dirs_native,\
unset INCLUDE && \
$(gb_CXX) \
$(4) $(5) -Fd$(PDBFILE) \
+ $(gb_COMPILERDEPFLAGS) \
-I$(realpath $(dir $(3))) \
$(6) \
-c $(realpath $(3)) \
- -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj)
-$(call gb_NoexPrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
+ -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj) $(call gb_create_deps,$(1),$(call gb_NoexPrecompiledHeader,$(2)),$(realpath $(3)))
endef
@@ -422,6 +346,7 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(call gb_Helper_convert_native,$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),$(shell cat $(extraobjectlist))) \
$(PCHOBJS))) && \
$(gb_LINK) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
diff --git a/solenv/gbuild/platform/winmingw.mk b/solenv/gbuild/platform/winmingw.mk
index 2ad299ded609..4b223b45af97 100644
--- a/solenv/gbuild/platform/winmingw.mk
+++ b/solenv/gbuild/platform/winmingw.mk
@@ -376,8 +376,8 @@ gb_LinkTarget_CFLAGS += -finline-limit=0 -fno-inline -fno-default-inline
endif
ifeq ($(gb_SYMBOL),$(true))
-gb_LinkTarget_CXXFLAGS += -ggdb3
-gb_LinkTarget_CFLAGS += -ggdb3
+gb_LinkTarget_CXXFLAGS += -ggdb2
+gb_LinkTarget_CFLAGS += -ggdb2
endif
gb_LinkTarget_INCLUDE :=\
@@ -400,6 +400,7 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(gb_MINGWLIBDIR)/crt2.o \
$(MINGW_CLIB_DIR)/crtbegin.o \
@$${RESPONSEFILE} \
+ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \
--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \
--start-group $(patsubst %.dll,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_dllname,$(lib)))) --end-group \
$(MINGW_CLIB_DIR)/crtend.o \
@@ -423,6 +424,7 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(gb_MINGWLIBDIR)/dllcrt2.o \
$(MINGW_CLIB_DIR)/crtbegin.o \
@$${RESPONSEFILE} \
+ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \
--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \
--start-group $(patsubst %.dll,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_dllname,$(lib)))) --end-group \
$(MINGW_CLIB_DIR)/crtend.o \