summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in1
-rw-r--r--config_host.mk.in1
-rw-r--r--configure.ac4
-rw-r--r--solenv/gbuild/Package.mk24
-rw-r--r--solenv/gbuild/TargetLocations.mk1
5 files changed, 26 insertions, 5 deletions
diff --git a/Makefile.in b/Makefile.in
index ecfbc1c6a2db..fd4cba6bd2a8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -138,6 +138,7 @@ clean: clean-host clean-build
clean-host:
rm -fr $(DEVINSTALLDIR)
+ rm -fr $(INSTDIR)
rm -fr $(OUTDIR)
rm -fr $(WORKDIR)
rm -fr install
diff --git a/config_host.mk.in b/config_host.mk.in
index e7c1a0ec9863..66a5c68e6108 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -247,6 +247,7 @@ export ICU_RECLASSIFIED_PREPEND_SET_EMPTY=@ICU_RECLASSIFIED_PREPEND_SET_EMPTY@
export ILIB=@ILIB@
export INPATH=@INPATH@
export INPATH_FOR_BUILD=@INPATH_FOR_BUILD@
+export INSTDIR=@INSTDIR@
export INSTALLDIR=@INSTALLDIR@
export INSTALLDIRNAME=@INSTALLDIRNAME@
export INTRO_BITMAP=@INTRO_BITMAP@
diff --git a/configure.ac b/configure.ac
index c460f735590c..912c111b3fbe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3896,11 +3896,14 @@ if test -n "${with_solver_and_workdir_root}"; then
# IsValidFilePath in /sal/osl/w32/file_url.cxx rejects "X:\\" breaking idlc
if echo ${formatted_path} | $GREP -q '/$'; then
WORKDIR=${formatted_path}workdir/${INPATH}
+ INSTDIR=${formatted_path}instdir/${INPATH}
else
WORKDIR=${formatted_path}/workdir/${INPATH}
+ INSTDIR=${formatted_path}/instdir/${INPATH}
fi
else
WORKDIR=${BUILDDIR}/workdir/${INPATH}
+ INSTDIR=${BUILDDIR}/instdir/${INPATH}
fi
OUTDIR="${SOLARVER}/${INPATH}"
SOLARINC="-I. -I${SOLARVER}/$INPATH/inc/external -I${SOLARVER}/$INPATH/inc -I$SRC_ROOT/solenv/inc $SOLARINC"
@@ -3913,6 +3916,7 @@ AC_SUBST(EPM_FLAGS)
AC_SUBST(GUI)
AC_SUBST(GUIBASE)
AC_SUBST(INPATH)
+AC_SUBST([INSTDIR])
AC_SUBST(OS)
AC_SUBST(OUTDIR)
AC_SUBST(OUTPATH)
diff --git a/solenv/gbuild/Package.mk b/solenv/gbuild/Package.mk
index 6642a892a3d4..c239897b3cf6 100644
--- a/solenv/gbuild/Package.mk
+++ b/solenv/gbuild/Package.mk
@@ -44,10 +44,13 @@ endef
$(foreach destination,$(call gb_PackagePart_get_destinations),$(eval \
$(call gb_PackagePart__rule,$(destination))))
+# Deliver one file to the output dir.
+#
+# gb_PackagePart_PackagePart destfile source prep-target outdir
define gb_PackagePart_PackagePart
-$(OUTDIR)/$(1) : $(2) | $(dir $(OUTDIR)/$(1)).dir
+$(4)/$(1) : $(2) | $(dir $(4)/$(1)).dir
$(2) :| $(3)
-$(call gb_Deliver_add_deliverable,$(OUTDIR)/$(1),$(2),$(3))
+$(call gb_Deliver_add_deliverable,$(4)/$(1),$(2),$(3))
endef
@@ -70,6 +73,7 @@ $(call gb_Package_get_target,%) :
# for other targets that want to create Packages, does not register at Module
define gb_Package_Package_internal
gb_Package_SOURCEDIR_$(1) := $(2)
+gb_Package_OUTDIR_$(1) := $(OUTDIR)
$(call gb_Package_get_clean_target,$(1)) : FILES := $(call gb_Package_get_target,$(1)) $(call gb_Package_get_preparation_target,$(1))
$(call gb_Package_get_target,$(1)) : $(call gb_Package_get_preparation_target,$(1))
@@ -83,10 +87,20 @@ $(call gb_Helper_make_userfriendly_targets,$(1),Package)
endef
+# Set output dir for the package files.
+#
+# Default is $(OUTDIR).
+#
+# gb_Package_set_outdir package outdir
+define gb_Package_set_outdir
+gb_Package_OUTDIR_$(1) := $(2)
+
+endef
+
define gb_Package_add_file
-$(call gb_Package_get_target,$(1)) : $(OUTDIR)/$(2)
-$(call gb_Package_get_clean_target,$(1)) : FILES += $(OUTDIR)/$(2)
-$(call gb_PackagePart_PackagePart,$(2),$$(gb_Package_SOURCEDIR_$(1))/$(3),$(call gb_Package_get_preparation_target,$(1)))
+$(call gb_Package_get_target,$(1)) : $$(gb_Package_OUTDIR_$(1))/$(2)
+$(call gb_Package_get_clean_target,$(1)) : FILES += $$(gb_Package_OUTDIR_$(1))/$(2)
+$(call gb_PackagePart_PackagePart,$(2),$$(gb_Package_SOURCEDIR_$(1))/$(3),$(call gb_Package_get_preparation_target,$(1)),$$(gb_Package_OUTDIR_$(1)))
endef
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index b738b65a57ea..a8cf8a431363 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -39,6 +39,7 @@ gb_Extension_get_target = $(OUTDIR)/bin/$(1).oxt
gb_HelpTarget_get_outdir_target = $(OUTDIR)/pck/$(1).zip
gb_Pagein_get_outdir_target = $(OUTDIR)/bin/pagein-$(1)
gb_PackagePart_get_destinations = \
+ $(INSTDIR) \
$(OUTDIR)/bin \
$(OUTDIR)/inc \
$(OUTDIR)/lib \