summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--bin/repo-list1
-rw-r--r--bin/repo-list.in1
-rw-r--r--configure.in23
-rwxr-xr-xdownload18
-rwxr-xr-xg4
-rw-r--r--set_soenv.in3
7 files changed, 43 insertions, 9 deletions
diff --git a/.gitignore b/.gitignore
index 778ad620447d..664fa402e3fa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,6 +19,7 @@
# autoconf generated stuff
/aclocal.m4
/autom4te.cache
+/autogen.lastrun
/bootstrap
/ChangeLog
/config.log
@@ -30,6 +31,7 @@
/set_soenv
/visibility.cxx
/post_download
+/bin/repo-list
# misc
/set_soenv.last
diff --git a/bin/repo-list b/bin/repo-list
deleted file mode 100644
index 349fb7df41a6..000000000000
--- a/bin/repo-list
+++ /dev/null
@@ -1 +0,0 @@
-artwork base calc components extensions extras filters help impress libs-core libs-extern libs-extern-sys libs-gui postprocess sdk testing ure writer
diff --git a/bin/repo-list.in b/bin/repo-list.in
new file mode 100644
index 000000000000..15bad770b6a3
--- /dev/null
+++ b/bin/repo-list.in
@@ -0,0 +1 @@
+@GIT_REPO_NAMES@ \ No newline at end of file
diff --git a/configure.in b/configure.in
index 2f338c7d75de..2b49d2e1000f 100644
--- a/configure.in
+++ b/configure.in
@@ -582,6 +582,14 @@ AC_ARG_WITH(external-tar,
TARFILE_LOCATION=$withval ,
)
+AC_ARG_WITH(linked-git,
+ AS_HELP_STRING([--with-linked-git=<OTHER_CLONE_DIR>],
+ [Specify another checkout's clonedir to re-use. This makes use of
+ git-new-workdir, and saves a lot of diskspace when having multiple
+ trees side-by-side.]),
+ GIT_LINK_SRC=$withval ,
+)
+
AC_ARG_WITH(openldap,
AS_HELP_STRING([--with-openldap],
[Enables the use of the OpenLDAP LDAP SDK instead of the Netscape/Mozilla one.]),
@@ -1889,6 +1897,11 @@ fi
AC_SUBST(DO_FETCH_TARBALLS)
dnl ===================================================================
+dnl git-new-workdir
+dnl ===================================================================
+AC_SUBST(GIT_LINK_SRC)
+
+dnl ===================================================================
dnl Disable legacy binary file formats filters
dnl ===================================================================
AC_MSG_CHECKING([whether to enable filters for legacy binary file formats (StarOffice 5.2)])
@@ -7857,14 +7870,22 @@ location (/usr/share/java), specify its pathname via
fi
AC_SUBST(OOO_JUNIT_JAR)
+dnl ===================================================================
+dnl Dealing with l10n options
+dnl ===================================================================
+GIT_REPO_NAMES="artwork base calc components extensions extras filters
+ help impress libs-core libs-extern libs-extern-sys libs-gui
+ postprocess sdk testing ure writer"
AC_MSG_CHECKING([which languages to be built])
WITH_LANG="$with_lang"
if test -z "$WITH_LANG"; then
AC_MSG_RESULT([en-US])
else
AC_MSG_RESULT([$WITH_LANG])
+ GIT_REPO_NAMES="$GIT_REPO_NAMES l10n"
fi
AC_SUBST(WITH_LANG)
+AC_SUBST(GIT_REPO_NAMES)
AC_MSG_CHECKING([which languages have poor help localizations])
WITH_POOR_HELP_LOCALIZATIONS="$with_poor_help_localizations"
@@ -8085,7 +8106,7 @@ else
echo > set_soenv.last
fi
-AC_OUTPUT([set_soenv Makefile])
+AC_OUTPUT([set_soenv Makefile bin/repo-list])
# touch the config timestamp file set_soenv.stamp
if test ! -f set_soenv.stamp; then
diff --git a/download b/download
index 690d82d8aacc..ec3d0fce8c88 100755
--- a/download
+++ b/download
@@ -26,14 +26,24 @@
#
#*************************************************************************
+# environment setup yet?
+if [ -z "$TARFILE_LOCATION" ]; then
+ . ./*[Ee]nv.[Ss]et.sh
+fi
+
# we want to clone if we are in the bootstrap git repo and clone does not exist yet
# we need to test for a .git in order not to clone after rsync if we are called in
# the inner autogen of the buid-repo based build
if [ ! -d clone -a -d .git ] ; then
- ./g clone
-fi
-if [ -z "$TARFILE_LOCATION" ]; then
- . ./*[Ee]nv.[Ss]et.sh
+ if [ -z "$GIT_LINK_SRC" ]; then
+ ./g clone
+ else
+ # space-saving clone from another local workdir
+ mkdir clone
+ for i in $GIT_REPO_NAMES ; do
+ bin/git-new-workdir $GIT_LINK_SRC/$i clone/$i
+ done
+ fi
fi
if [ ! -d "$TARFILE_LOCATION" ]; then
diff --git a/g b/g
index 05c0260fefd6..9f5b34ff93b0 100755
--- a/g
+++ b/g
@@ -126,9 +126,7 @@ done
# do it!
DIRS="bootstrap `(cd $CLONEDIR ; ls)`"
if [ "$COMMAND" = "clone" ] ; then
- DIRS="artwork base calc components extensions extras filters
- help impress libs-core libs-extern libs-extern-sys libs-gui
- postprocess sdk testing ure writer"
+ DIRS=`cat bin/repo-list`
# update hooks in the main repo too
( cd "$RAWBUILDDIR" ; update_hooks "../../git-hooks" )
fi
diff --git a/set_soenv.in b/set_soenv.in
index 47ea65f2edff..464056e6dc64 100644
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -1721,6 +1721,9 @@ ToFile( "MKDEPENDSOLVER", "TRUE", "e" );
ToFile( "nodep", "@nodep@", "e" );
ToFile( "TARFILE_LOCATION", $TARFILE_LOCATION, "e" );
ToFile( "DO_FETCH_TARBALLS", "@DO_FETCH_TARBALLS@", "e" );
+ToFile( "GIT_LINK_SRC", "@GIT_LINK_SRC@", "e" );
+ToFile( "GIT_REPO_NAMES", "@GIT_REPO_NAMES@", "e" );
+
#
# Writing the platform dependent constant values to file.
# (c = comment, e = environment variable, a = alias )