[vlc-devel] [PATCH v2 13/17] contrib: use makefile instead of environment variable

Alexandre Janniaux ajanni at videolabs.io
Wed Apr 29 22:40:56 CEST 2020


It allows building the contrib with make directly, without needing to
call the build script again or redefine the correct environment
variables before.
---
 contrib/bootstrap                |  9 ++++++++
 extras/package/apple/build.sh    |  1 +
 extras/package/apple/symbols.mak | 37 ++++++++++++++++++++++++++++++++
 3 files changed, 47 insertions(+)
 create mode 100644 extras/package/apple/symbols.mak

diff --git a/contrib/bootstrap b/contrib/bootstrap
index 5ed5f6f25d3..2394201e3ef 100755
--- a/contrib/bootstrap
+++ b/contrib/bootstrap
@@ -258,12 +258,16 @@ test -z "$WITH_OPTIMIZATION" || add_make_enabled "WITH_OPTIMIZATION"
 test -z "$ENABLE_PDB" || add_make_enabled "ENABLE_PDB"
 test "`uname -o 2>/dev/null`" != "Msys" || add_make "CMAKE_GENERATOR := -G \"MSYS Makefiles\""
 
+# Additional file used by Darwin to opt-out some function detection
+SYMBOL_FILE=
+
 #
 # Checks
 #
 OS="${HOST#*-}" # strip architecture
 case "${OS}" in
 	*-darwin*)
+		SYMBOL_FILE="\$(TOPSRC)/../extras/package/apple/symbols.mak"
 		if test -z "$BUILDFORIOS"
 		then
 			check_macosx_sdk
@@ -358,6 +362,11 @@ TOPSRC_BUILT=$(python3 -c "import os; print(os.path.relpath('$BOOTSTRAP_PATH', '
 add_make "TOPSRC = $TOPSRC"
 add_make "TOPSRC_BUILT = $TOPSRC_BUILT"
 add_make "TOPDST = .."
+
+if [ ! -z "${SYMBOL_FILE}" ]; then
+add_make "include ${SYMBOL_FILE}"
+fi
+
 add_make "-include config.mak"
 add_make 'include $(TOPSRC)/src/main.mak'
 echo "Bootstrap completed."
diff --git a/extras/package/apple/build.sh b/extras/package/apple/build.sh
index 35c7b87293d..8bb9ef12494 100755
--- a/extras/package/apple/build.sh
+++ b/extras/package/apple/build.sh
@@ -556,6 +556,7 @@ fi
 
 # Set symbol blacklist for autoconf
 vlcSetSymbolEnvironment > /dev/null
+. "${VLC_SCRIPT_DIR}/symbols.mak"
 
 # Combine settings from config file
 VLC_CONTRIB_OPTIONS=( "${VLC_CONTRIB_OPTIONS_BASE[@]}" )
diff --git a/extras/package/apple/symbols.mak b/extras/package/apple/symbols.mak
new file mode 100644
index 00000000000..50afaefa002
--- /dev/null
+++ b/extras/package/apple/symbols.mak
@@ -0,0 +1,37 @@
+#
+# WARNING:
+#
+# This file is sourced in bash scripts and included in Makefile.
+# It must not use syntax elements other than:
+#  - foo=bar (without spaces around = character)
+#  - export foo
+#  - export foo=bar
+
+# The following symbols do not exist on the minimal macOS / iOS, so they are disabled
+# here. This allows compilation also with newer macOS SDKs.
+# List assumes macOS 10.10 / iOS 8 at minimum.
+
+# Added symbols in macOS 10.12 / iOS 10 / watchOS 3
+export ac_cv_func_basename_r=no
+export ac_cv_func_clock_getres=no
+export ac_cv_func_clock_gettime=no
+export ac_cv_func_clock_settime=no
+export ac_cv_func_dirname_r=no
+export ac_cv_func_getentropy=no
+export ac_cv_func_mkostemp=no
+export ac_cv_func_mkostemps=no
+export ac_cv_func_timingsafe_bcmp=no
+
+# Added symbols in macOS 10.13 / iOS 11 / watchOS 4 / tvOS 11
+export ac_cv_func_open_wmemstream=no
+export ac_cv_func_fmemopen=no
+export ac_cv_func_open_memstream=no
+export ac_cv_func_futimens=no
+export ac_cv_func_utimensat=no
+
+# Added symbol in macOS 10.14 / iOS 12 / tvOS 9
+export ac_cv_func_thread_get_register_pointer_values=no
+
+# Added symbols in macOS 10.15 / iOS 13 / tvOS 13
+export ac_cv_func_aligned_alloc=no
+export ac_cv_func_timespec_get=no
-- 
2.26.2



More information about the vlc-devel mailing list