summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2011-11-29 17:07:57 +0100
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2011-11-29 17:25:14 +0100
commitd73e574d8abd933537bf4d2155f36aa9a91a0acc (patch)
tree649adb8becc14c42d23544295729945147eaaa4d /solenv
parent6a6152a9a3d76f8ce26e4a9b5bd6479f31009ee7 (diff)
move reconfigure into gbuild
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/BuildDirs.mk6
-rw-r--r--solenv/gbuild/extensions/post_AuxTargets.mk4
-rw-r--r--solenv/gbuild/extensions/post_SpeedUpTargets.mk2
-rw-r--r--solenv/gbuild/gbuild.mk4
-rw-r--r--solenv/gbuild/source_and_rerun.mk23
5 files changed, 29 insertions, 10 deletions
diff --git a/solenv/gbuild/BuildDirs.mk b/solenv/gbuild/BuildDirs.mk
index 9802a6130849..6a0933b33c2e 100644
--- a/solenv/gbuild/BuildDirs.mk
+++ b/solenv/gbuild/BuildDirs.mk
@@ -31,12 +31,10 @@ SOLARINC += $(JDKINCS)
OUTDIR := $(SOLARVERSION)/$(INPATH)
OUTDIR_FOR_BUILD := $(SOLARVERSION)/$(INPATH_FOR_BUILD)
-ifeq ($(strip $(WORKDIR)),)
-$(error WORKDIR variable is empty, no environment set, aborting)
+ifeq ($(strip $(SOLARENV)),)
+$(error SOLARENV variable is empty, no environment set, aborting)
endif
-SRCDIR := $(SOLARSRC)
-
# HACK
# unixify windoze paths
ifeq ($(OS_FOR_BUILD),WNT)
diff --git a/solenv/gbuild/extensions/post_AuxTargets.mk b/solenv/gbuild/extensions/post_AuxTargets.mk
index c137fb013684..22aa4ed00c0c 100644
--- a/solenv/gbuild/extensions/post_AuxTargets.mk
+++ b/solenv/gbuild/extensions/post_AuxTargets.mk
@@ -48,6 +48,10 @@ $(SRCDIR)/src.downloaded: $(SRCDIR)/ooo.lst $(SRCDIR)/download
fetch: $(SRCDIR)/src.downloaded
+# fixme: can we prevent these exports in the first place?
+$(SRCDIR)/Env.Host.sh: autogen.lastrun configure.in ooo.lst.in set_soenv.in Makefile.in
+ $(if $(gb_MINISOLARENV),unset GBUILDDIR gb_Helper_execute gb_XSLTPROC gb_Helper_set_ld_path gb_AWK DBGSV_ERROR_OUT && $(SRCDIR)/autogen.sh,@echo "cannot reconfigure from within solarenv" && rm -f $(SRCDIR)/Env.Host.sh && exit 2)
+
$(WORKDIR)/bootstrap:
@cd $(SRCDIR) && ./bootstrap
@mkdir -p $(dir $@) && touch $@
diff --git a/solenv/gbuild/extensions/post_SpeedUpTargets.mk b/solenv/gbuild/extensions/post_SpeedUpTargets.mk
index 7e1a640a7c76..842f05e61004 100644
--- a/solenv/gbuild/extensions/post_SpeedUpTargets.mk
+++ b/solenv/gbuild/extensions/post_SpeedUpTargets.mk
@@ -28,7 +28,7 @@
# speed up if no target need to parse all modules
ifneq ($(strip $(MAKECMDGOALS)),)
-ifeq ($(filter-out id tags docs distro-pack-install fetch help debugrun,$(MAKECMDGOALS)),)
+ifeq ($(filter-out id tags docs distro-pack-install fetch help debugrun Env.Host.sh,$(MAKECMDGOALS)),)
gb_Module_add_target=
gb_Module_add_check_target=
gb_Module_add_subsequentcheck_target=
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index c3d1308f439d..57387f1777ca 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -26,7 +26,7 @@
#
#*************************************************************************
-GBUILDDIR:=$(SRC_ROOT)/solenv/gbuild
+GBUILDDIR:=$(SRCDIR)/solenv/gbuild
# vars needed from the env/calling makefile
@@ -151,7 +151,9 @@ $(eval $(call gb_Helper_collect_libtargets))
gb_Library_DLLPOSTFIX := lo
# Include platform/cpu/compiler specific config/definitions
+ifneq ($(strip $(OS)),)
include $(GBUILDDIR)/platform/$(OS)_$(CPUNAME)_$(COM).mk
+endif
ifeq ($(CROSS_COMPILING),YES)
# We can safely Assume all cross-compilation is from Unix systems.
diff --git a/solenv/gbuild/source_and_rerun.mk b/solenv/gbuild/source_and_rerun.mk
index 418acc593c17..1fe62c89eaa2 100644
--- a/solenv/gbuild/source_and_rerun.mk
+++ b/solenv/gbuild/source_and_rerun.mk
@@ -1,13 +1,28 @@
gb_MAKEFILEDIR:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+$(info gb_PARTIALBUILD $(gb_PARTIALBUILD))
+ifneq ($(strip $(gb_PARTIALBUILD)),)
+
+SRCDIR:=$(realpath $(gb_MAKEFILEDIR)/..)
+gb_SourceEnvAndRecurse_reconfigure=true
+
+else
+
+SRCDIR:=$(realpath $(gb_MAKEFILEDIR))
+gb_SourceEnvAndRecurse_reconfigure=$(MAKE) -f $(firstword $(MAKEFILE_LIST)) $(SRCDIR)/Env.Host.sh
+
+endif
+
source-env-and-recurse:
- @if test -f $(gb_MAKEFILEDIR)/config.mk; then . $(gb_MAKEFILEDIR)/config.mk; else if test -f $(gb_MAKEFILEDIR)/../config.mk ; then . $(gb_MAKEFILEDIR)/../config.mk; fi; fi && \
- if test -f $(gb_MAKEFILEDIR)/Env.Host.sh; then . $(gb_MAKEFILEDIR)/Env.Host.sh; else if test -f $(gb_MAKEFILEDIR)/../Env.Host.sh; then . $(gb_MAKEFILEDIR)/../Env.Host.sh; fi ; fi && \
- if test -z "$${SOLARENV}"; then echo "No environment set!" 2>&1; exit 1; fi && \
+ $(gb_SourceEnvAndRecurse_reconfigure) && \
+ if test -f $(SRCDIR)/config.mk ; then . $(SRCDIR)/config.mk; fi && \
+ if test -f $(SRCDIR)/Env.Host.sh; then . $(SRCDIR)/Env.Host.sh; fi && \
+ if test -z "$${SOLARENV}"; then echo "no configuration found and could not create one" && exit 1; fi && \
$(MAKE) -f $(firstword $(MAKEFILE_LIST)) $(MAKECMDGOALS)
ifneq ($(strip $(MAKECMDGOALS)),)
+ifneq ($(MAKECMDGOALS),$(SRCDIR)/Env.Host.sh)
$(eval $(MAKECMDGOALS) : source-env-and-recurse)
endif
-
+endif