[vlc-devel] [PATCH 3/3] contrib: allow building contribs out of the source tree

Steve Lhomme robux4 at ycbcr.xyz
Mon Jun 17 09:26:37 CEST 2019


The resulting contrib can be used via --with-contrib in the configure script.

The local Makefile to build contribs is now specific to the build folder.

change_prefix.sh is called from a contrib sub folder so we must use SRC_BUILT.
---
 contrib/bootstrap    | 20 ++++++++++----------
 contrib/src/main.mak |  2 +-
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/contrib/bootstrap b/contrib/bootstrap
index 7ad8b33c67..eff9787465 100755
--- a/contrib/bootstrap
+++ b/contrib/bootstrap
@@ -52,12 +52,6 @@ AD_CLAUSES=
 WITH_OPTIMIZATION="1"
 ENABLE_PDB=
 
-if test ! -f "../../contrib/src/main.mak"
-then
-	echo "$0 must be run from a subdirectory"
-	exit 1
-fi
-
 while test -n "$1"
 do
 	case "$1" in
@@ -382,10 +376,16 @@ esac
 #
 # Results output
 #
-add_make "TOPSRC = .."
-add_make "TOPSRC_BUILT = ../.."
-add_make "TOPDST = .."
+BOOTSTRAP_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
+CURRENT_PATH="$( pwd -P )"
+# location of the contrib/src folder from the root of the contrib build folder
+TOPSRC=$(python -c "import os; print(os.path.relpath('$BOOTSTRAP_PATH', '$CURRENT_PATH'))")
+# location of the contrib/src folder from a built library folder
+TOPSRC_BUILT=$(python -c "import os; print(os.path.relpath('$BOOTSTRAP_PATH', '$CURRENT_PATH/libfoo'))")
+add_make "TOPSRC = $TOPSRC"
+add_make "TOPSRC_BUILT = $TOPSRC_BUILT"
+add_make "TOPDST = ."
 add_make 'include $(TOPSRC)/src/main.mak'
 echo "Bootstrap completed."
 make help
-mkdir -p ../../contrib/tarballs || exit $?
+mkdir -p $BOOTSTRAP_PATH/tarballs || exit $?
diff --git a/contrib/src/main.mak b/contrib/src/main.mak
index 9b9ebb33c4..58993ac44d 100644
--- a/contrib/src/main.mak
+++ b/contrib/src/main.mak
@@ -476,7 +476,7 @@ prebuilt: vlc-contrib-$(HOST)-latest.tar.bz2
 	$(RM) -r $(PREFIX)
 	-$(UNPACK)
 	mv -n $(HOST) $(TOPDST)
-	cd $(PREFIX) && $(SRC)/change_prefix.sh
+	cd $(PREFIX) && $(SRC_BUILT)/change_prefix.sh
 ifdef HAVE_WIN32
 ifndef HAVE_CROSS_COMPILE
 	$(RM) `find $(PREFIX)/bin | file -f- | grep ELF | awk -F: '{print $$1}' | xargs`
-- 
2.17.1



More information about the vlc-devel mailing list