[vlc-devel] [PATCH] contrib: aom: use CMake build system

Tristan Matthews tmatth at videolan.org
Wed Jan 10 06:58:31 CET 2018


The custom "configure" build system is slated to be dropped. This also removes
a lot of what was cargo-culted from vpx/rules.mak.

---
 contrib/src/aom/rules.mak | 108 ++++++++--------------------------------------
 1 file changed, 18 insertions(+), 90 deletions(-)

diff --git a/contrib/src/aom/rules.mak b/contrib/src/aom/rules.mak
index 52788d1cda..8cfd04871e 100644
--- a/contrib/src/aom/rules.mak
+++ b/contrib/src/aom/rules.mak
@@ -24,107 +24,35 @@ aom: aom-$(AOM_VERSION).tar.gz .sum-aom
 
 DEPS_aom =
 
-ifdef HAVE_CROSS_COMPILE
-AOM_CROSS := $(HOST)-
-else
-AOM_CROSS :=
-endif
-
 AOM_LDFLAGS := $(LDFLAGS)
 
-ifeq ($(ARCH),arm)
-AOM_ARCH := armv7
-else ifeq ($(ARCH),i386)
-AOM_ARCH := x86
-else ifeq ($(ARCH),mips)
-AOM_ARCH := mips32
-else ifeq ($(ARCH),ppc)
-AOM_ARCH := ppc32
-else ifeq ($(ARCH),ppc64)
-AOM_ARCH := ppc64
-else ifeq ($(ARCH),sparc)
-AOM_ARCH := sparc
-else ifeq ($(ARCH),x86_64)
-AOM_ARCH := x86_64
-endif
-
-ifdef HAVE_ANDROID
-AOM_OS := android
-else ifdef HAVE_LINUX
-AOM_OS := linux
-else ifdef HAVE_MACOSX
-ifeq ($(OSX_VERSION),10.5)
-AOM_OS := darwin9
-else
-AOM_OS := darwin10
-endif
-else ifdef HAVE_IOS
-AOM_OS := darwin11
-else ifdef HAVE_SOLARIS
-AOM_OS := solaris
-else ifdef HAVE_WIN64 # must be before WIN32
-AOM_OS := win64
-else ifdef HAVE_WIN32
-AOM_OS := win32
-else ifdef HAVE_BSD
-AOM_OS := linux
-endif
-
-AOM_TARGET := generic-gnu
-ifdef AOM_ARCH
-ifdef AOM_OS
-AOM_TARGET := $(AOM_ARCH)-$(AOM_OS)-gcc
-endif
-endif
-
 AOM_CONF := \
-	--enable-runtime-cpu-detect \
-	--disable-docs \
-	--disable-examples \
-	--disable-unit-tests \
-	--disable-install-bins \
-	--disable-install-docs \
-	--disable-dependency-tracking
+	-DCONFIG_RUNTIME_CPU_DETECT=1 \
+	-DENABLE_DOCS=OFF \
+	-DENABLE_EXAMPLES=OFF \
+	-DENABLE_TOOLS=OFF \
+	-DCONFIG_UNIT_TESTS=0 \
+	-DCONFIG_INSTALL_BINS=0 \
+	-DCONFIG_INSTALL_DOCS=0 \
+	-DCONFIG_DEPENDENCY_TRACKING=0
 
 ifndef BUILD_ENCODERS
-AOM_CONF += --disable-av1-encoder
+AOM_CONF += -DCONFIG_AV1_ENCODER=0
 endif
 
 ifndef HAVE_WIN32
-AOM_CONF += --enable-pic
-endif
-ifdef HAVE_MACOSX
-AOM_CONF += --sdk-path=$(MACOSX_SDK)
-endif
-ifdef HAVE_IOS
-AOM_CONF += --sdk-path=$(IOS_SDK)
-ifdef HAVE_TVOS
-AOM_LDFLAGS := -L$(IOS_SDK)/usr/lib -isysroot $(IOS_SDK) -mtvos-version-min=9.0
-else
-AOM_LDFLAGS := -L$(IOS_SDK)/usr/lib -isysroot $(IOS_SDK) -miphoneos-version-min=6.1
-endif
-ifeq ($(ARCH),aarch64)
-AOM_LDFLAGS += -arch arm64
-else
-AOM_LDFLAGS += -arch $(ARCH)
-endif
-endif
-ifdef HAVE_ANDROID
-# vpx configure.sh overrides our sysroot and it looks for it itself, and
-# uses that path to look for the compiler (which we already know)
-AOM_CONF += --sdk-path=$(shell dirname $(shell which $(HOST)-gcc))
-# put sysroot
-AOM_CONF += --libc=$(ANDROID_NDK)/platforms/$(ANDROID_API)/arch-$(PLATFORM_SHORT_ARCH)
+AOM_CONF += -DCONFIG_PIC=1
 endif
 
 ifndef WITH_OPTIMIZATION
-AOM_CONF += --enable-debug --disable-optimizations
+AOM_CONF += -DCMAKE_BUILD_TYPE=Debug
 endif
 
-.aom: aom
-	cd $< && LDFLAGS="$(AOM_LDFLAGS)" CROSS=$(AOM_CROSS) ./configure --target=$(AOM_TARGET) \
-		$(AOM_CONF) --prefix=$(PREFIX)
-	cd $< && $(MAKE)
-	cd $< && ../../../contrib/src/pkg-static.sh aom.pc
-	cd $< && $(MAKE) install
+# libaom doesn't allow in-tree builds
+.aom: aom toolchain.cmake
+	cd $< && mkdir -p aom_build
+	cd $</aom_build && LDFLAGS="$(AOM_LDFLAGS)" $(HOSTVARS) $(CMAKE) ../ $(AOM_CONF)
+	cd $</aom_build && $(MAKE)
+	cd $</aom_build && ../../../../contrib/src/pkg-static.sh aom.pc
+	cd $</aom_build && $(MAKE) install
 	touch $@
-- 
2.15.1



More information about the vlc-devel mailing list