summaryrefslogtreecommitdiff
path: root/solenv/gbuild/Executable.mk
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-09-19 00:08:31 +0200
committerMichael Stahl <mstahl@redhat.com>2013-09-22 11:08:32 +0200
commitf2899508b3bd55ecdbd45a02e0e8071b95906b3a (patch)
tree061ab2746bbebb6ffff3fd1ecf845292c860a0bc /solenv/gbuild/Executable.mk
parent4c51feb06e9ee9be25eca5ae58d07cd6c12bca63 (diff)
gbuild: remove executables from OUTDIR and WORKDIR
Call and link executables directly in INSTDIR. - gb_Library_get_target is now same as the gb_LinkTarget_get_target - disable gb_Library_add_auxtarget, no auxtargets need to be copied - adjust paths of all external executables to OUTDIR_FOR_BUILD for now - use lazy assignment instead of := in AllLangResTarget because it's read before Executable - link.exe generates an import library for lots of executables because they export symbols, especially since commit 0ffab9363d527d55b12b9b09d7136ca1c9d171e0 "force 'main' to always be DLLPUBLIC." Change-Id: I3e1ee7425dd430bb83c7cd59e265869a0541b38d
Diffstat (limited to 'solenv/gbuild/Executable.mk')
-rw-r--r--solenv/gbuild/Executable.mk22
1 files changed, 6 insertions, 16 deletions
diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk
index c12287b5c14f..433ee0eeba1a 100644
--- a/solenv/gbuild/Executable.mk
+++ b/solenv/gbuild/Executable.mk
@@ -26,6 +26,7 @@ gb_Executable_LAYER_DIRS := \
UREBIN:$(gb_INSTROOT)/$(LIBO_URE_BIN_FOLDER) \
OOO:$(gb_INSTROOT)/$(gb_PROGRAMDIRNAME) \
SDKBIN:$(INSTDIR)/$(gb_Package_SDKDIRNAME)/bin \
+ NONE:$(gb_Executable_BINDIR) \
$(dir $(call gb_Executable_get_runtime_target,%)).dir :
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
@@ -62,22 +63,17 @@ define gb_Executable__Executable_impl
$(call gb_LinkTarget_LinkTarget,$(2),Executable_$(1),$(call gb_Executable_get_layer,$(1)))
$(call gb_LinkTarget_set_targettype,$(2),Executable)
$(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS))
-$(call gb_Executable_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \
- | $(dir $(call gb_Executable_get_target,$(1))).dir
+$(call gb_Executable_get_target,$(1)) : \
+ | $(dir $(call gb_Executable_get_target,$(1))).dir \
+ $(gb_Executable_BINDIR)/.dir
$(call gb_Executable_get_runtime_target,$(1)) :| $(dir $(call gb_Executable_get_runtime_target,$(1))).dir
$(call gb_Executable_get_runtime_target,$(1)) : $(call gb_Executable_get_target_for_build,$(1))
$(call gb_Executable_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
$(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS :=
-$(call gb_Executable_Executable_platform,$(1),$(2))
+$(call gb_Executable_Executable_platform,$(1),$(2),$(gb_Executable_BINDIR)/$(1).lib)
-$(if $(call gb_Executable__get_dir_for_exe,$(1)), \
-$(call gb_Helper_install,$(call gb_Executable_get_target,$(1)), \
- $(call gb_Executable_get_install_target,$(1)), \
- $(call gb_LinkTarget_get_target,$(2))) \
-)
$$(eval $$(call gb_Module_register_target,$(call gb_Executable_get_target,$(1)),$(call gb_Executable_get_clean_target,$(1))))
$(call gb_Helper_make_userfriendly_targets,$(1),Executable)
-$(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)),$(1))
endef
@@ -85,14 +81,8 @@ define gb_Executable_set_targettype_gui
$(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktarget,$(1))) : TARGETGUI := $(2)
endef
-# The auxtarget is delivered via the rule in Package.mk.
-# gb_Executable_add_auxtarget executable outdirauxtarget
define gb_Executable_add_auxtarget
-$(call gb_LinkTarget_add_auxtarget,$(call gb_Executable_get_linktarget,$(1)),$(dir $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktarget,$(1))))/$(notdir $(2)))
-$(call gb_Executable_get_target,$(1)) : $(2)
-$(2) : $(dir $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktarget,$(1))))/$(notdir $(2))
-$(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS += $(2)
-
+$(call gb_Output_error,gb_Executable_add_auxtarget should no longer be necessary)
endef
define gb_Executable_forward_to_Linktarget