summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern Michaelsen <b_michaelsen@openoffice.org>2010-11-21 19:03:55 +0100
committerBjoern Michaelsen <b_michaelsen@openoffice.org>2010-11-21 19:03:55 +0100
commit0e6af4d8ae462651501209a3aa7b708f7ff1d491 (patch)
tree36135655dd4f8a5d85fe704aea042eb34035ac7a
parentf018f0d62f3207d382e34ab968137e5d02f8791b (diff)
gnumake2: made setuplocal an extension
-rw-r--r--solenv/gbuild/BuildDirs.mk51
-rw-r--r--solenv/gbuild/extensions/SetupLocal.mk61
2 files changed, 69 insertions, 43 deletions
diff --git a/solenv/gbuild/BuildDirs.mk b/solenv/gbuild/BuildDirs.mk
index df7598edb9fd..b876824296c4 100644
--- a/solenv/gbuild/BuildDirs.mk
+++ b/solenv/gbuild/BuildDirs.mk
@@ -31,45 +31,11 @@ SOLARINC += $(JDKINCS)
OUTDIR := $(SOLARVERSION)/$(INPATH)
WORKDIR := $(SOLARVERSION)/$(INPATH)/workdir
-.PHONY : setuplocal removelocal
-ifneq ($(gb_LOCALBUILDDIR),)
-ifneq ($(wildcard $(gb_LOCALBUILDDIR)/SetupLocal.mk),)
+# Override for SetupLocal
+ifneq ($(and $(gb_LOCALBUILDDIR),$(wildcard $(gb_LOCALBUILDDIR)/SetupLocal.mk)),)
include $(gb_LOCALBUILDDIR)/SetupLocal.mk
-$(eval $(call gb_Output_info,Using local setup at $(gb_LOCALBUILDDIR).,ALL))
-$(eval $(call gb_Output_info,gb_REPOS:=$(gb_REPOS),ALL))
-$(eval $(call gb_Output_info,WORKDIR:=$(WORKDIR),ALL))
-$(eval $(call gb_Output_info,OUTDIR:=$(OUTDIR),ALL))
-
-setuplocal :
- $(eval, $(call gb_Output_error,$(gb_LOCALBUILDDIR) exists already.))
-
-else
-
-setuplocal :
- $(eval MODULE := $(firstword $(MODULE) $(lastword $(subst /, ,$(dir $(realpath $(firstword $(MAKEFILE_LIST))))))))
- $(eval modulerepo := $(patsubst %/$(MODULE),%,$(foreach repo,$(gb_REPOS),$(wildcard $(repo)/$(MODULE)))))
- $(eval $(call gb_Output_announce,setting up local build directory (module: $(MODULE)).,$(true),SYC,5))
- mkdir -p $(gb_LOCALBUILDDIR)/srcdir $(gb_LOCALBUILDDIR)/workdir $(gb_LOCALBUILDDIR)/outdir
- rsync --archive --exclude 'workdir/**' $(SOLARVERSION)/$(INPATH)/ $(gb_LOCALBUILDDIR)/outdir
- cp $(modulerepo)/Repository.mk $(gb_LOCALBUILDDIR)/srcdir/Repository.mk
- cp $(modulerepo)/RepositoryFixes.mk $(gb_LOCALBUILDDIR)/srcdir/RepositoryFixes.mk
- rsync --archive $(modulerepo)/$(MODULE)/ $(gb_LOCALBUILDDIR)/srcdir/$(MODULE)
- echo "gb_REPOS := $(gb_LOCALBUILDDIR)/srcdir $(filter-out $(patsubst %/$(MODULE),%,$(foreach repo,$(gb_REPOS),$(wildcard $(repo)/$(MODULE)))),$(gb_REPOS))" > $(gb_LOCALBUILDDIR)/SetupLocal.mk
- echo "#original gb_REPOS was $(gb_REPOS)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk
- echo "OUTDIR := $(gb_LOCALBUILDDIR)/outdir" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk
- echo "#original OUTDIR was $(OUTDIR)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk
- echo "WORKDIR := $(gb_LOCALBUILDDIR)/workdir" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk
- echo "#original WORKDIR was $(WORKDIR)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk
-
endif
-endif
-
-removelocal :
- $(eval $(call gb_Output_warn,removing directory $(gb_LOCALBUILDDIR).,SYC))
- sleep 10
- rm -rf $(gb_LOCALBUILDDIR)
-
ifeq ($(strip $(gb_REPOS)),)
gb_REPOS := $(SOLARSRC)
endif
@@ -78,18 +44,17 @@ SRCDIR := $(firstword $(gb_REPOS))
# HACK
# unixify windoze paths
ifeq ($(OS),WNT)
-SRCDIR := $(shell cygpath -u $(SRCDIR))
-WORKDIR := $(shell cygpath -u $(WORKDIR))
-OUTDIR := $(shell cygpath -u $(OUTDIR))
-gb_REPOS := $(shell cygpath -u $(gb_REPOS))
+override SRCDIR := $(shell cygpath -u $(SRCDIR))
+override WORKDIR := $(shell cygpath -u $(WORKDIR))
+override OUTDIR := $(shell cygpath -u $(OUTDIR))
+override gb_REPOS := $(shell cygpath -u $(gb_REPOS))
endif
REPODIR := $(patsubst %/,%,$(dir $(firstword $(gb_REPOS))))
-ifneq ($(MAKECMDGOALS),setuplocal)
+ifeq ($(filter setuplocal removelocal,$(MAKECMDGOALS)),)
ifneq ($(filter-out $(foreach repo,$(gb_REPOS),$(realpath $(repo))/%),$(realpath $(firstword $(MAKEFILE_LIST)))),)
-$(eval $(call gb_Output_warn,The initial makefile $(realpath $(firstword $(MAKEFILE_LIST))) is not in the repositories $(foreach repo,$(gb_REPOS),$(realpath $(repo))).,ALL))
-$(shell sleep 10)
+$(eval $(call gb_Output_error,The initial makefile $(realpath $(firstword $(MAKEFILE_LIST))) is not in the repositories $(foreach repo,$(gb_REPOS),$(realpath $(repo))).,ALL))
endif
endif
diff --git a/solenv/gbuild/extensions/SetupLocal.mk b/solenv/gbuild/extensions/SetupLocal.mk
new file mode 100644
index 000000000000..f623e4b81192
--- /dev/null
+++ b/solenv/gbuild/extensions/SetupLocal.mk
@@ -0,0 +1,61 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+ifneq ($(gb_LOCALBUILDDIR),)
+.PHONY : setuplocal removelocal
+ifneq ($(wildcard $(gb_LOCALBUILDDIR)/SetupLocal.mk),)
+setuplocal :
+ $(eval, $(call gb_Output_error,$(gb_LOCALBUILDDIR) exists already.))
+
+else
+
+setuplocal :
+ $(eval MODULE := $(firstword $(MODULE) $(lastword $(subst /, ,$(dir $(realpath $(firstword $(MAKEFILE_LIST))))))))
+ $(eval modulerepo := $(patsubst %/$(MODULE),%,$(foreach repo,$(gb_REPOS),$(wildcard $(repo)/$(MODULE)))))
+ $(eval $(call gb_Output_announce,setting up local build directory (module: $(MODULE)).,$(true),SYC,5))
+ mkdir -p $(gb_LOCALBUILDDIR)/srcdir $(gb_LOCALBUILDDIR)/workdir $(gb_LOCALBUILDDIR)/outdir
+ rsync --archive --exclude 'workdir/**' $(SOLARVERSION)/$(INPATH)/ $(gb_LOCALBUILDDIR)/outdir
+ cp $(modulerepo)/Repository.mk $(gb_LOCALBUILDDIR)/srcdir/Repository.mk
+ cp $(modulerepo)/RepositoryFixes.mk $(gb_LOCALBUILDDIR)/srcdir/RepositoryFixes.mk
+ rsync --archive $(modulerepo)/$(MODULE)/ $(gb_LOCALBUILDDIR)/srcdir/$(MODULE)
+ echo "gb_REPOS := $(gb_LOCALBUILDDIR)/srcdir $(filter-out $(patsubst %/$(MODULE),%,$(foreach repo,$(gb_REPOS),$(wildcard $(repo)/$(MODULE)))),$(gb_REPOS))" > $(gb_LOCALBUILDDIR)/SetupLocal.mk
+ echo "#original gb_REPOS was $(gb_REPOS)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk
+ echo "OUTDIR := $(gb_LOCALBUILDDIR)/outdir" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk
+ echo "#original OUTDIR was $(OUTDIR)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk
+ echo "WORKDIR := $(gb_LOCALBUILDDIR)/workdir" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk
+ echo "#original WORKDIR was $(WORKDIR)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk
+
+endif
+
+removelocal :
+ $(eval $(call gb_Output_warn,removing directory $(gb_LOCALBUILDDIR).,SYC))
+ sleep 10
+ rm -rf $(gb_LOCALBUILDDIR)
+
+endif
+
+# vim: set noet sw=4 ts=4: