87 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash -eu
 | |
| # Copyright 2019 Google Inc.
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License");
 | |
| # you may not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #      http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| #
 | |
| ################################################################################
 | |
| 
 | |
| # Build dependencies.
 | |
| export DEPS_PATH=$SRC/deps
 | |
| mkdir -p $DEPS_PATH
 | |
| 
 | |
| cd $SRC/x265/build/linux
 | |
| cmake -G "Unix Makefiles" \
 | |
|     -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX \
 | |
|     -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
 | |
|     -DCMAKE_INSTALL_PREFIX="$DEPS_PATH" \
 | |
|     -DENABLE_SHARED:bool=off \
 | |
|     ../../source
 | |
| make clean
 | |
| make -j$(nproc) x265-static
 | |
| make install
 | |
| 
 | |
| cd $SRC/libde265
 | |
| ./autogen.sh
 | |
| ./configure \
 | |
|     --prefix="$DEPS_PATH" \
 | |
|     --disable-shared \
 | |
|     --enable-static \
 | |
|     --disable-dec265 \
 | |
|     --disable-sherlock265 \
 | |
|     --disable-hdrcopy \
 | |
|     --disable-enc265 \
 | |
|     --disable-acceleration_speed
 | |
| make clean
 | |
| make -j$(nproc)
 | |
| make install
 | |
| 
 | |
| mkdir -p $SRC/aom/build/linux
 | |
| cd $SRC/aom/build/linux
 | |
| cmake -G "Unix Makefiles" \
 | |
|   -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX \
 | |
|   -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
 | |
|   -DCMAKE_INSTALL_PREFIX="$DEPS_PATH" \
 | |
|   -DENABLE_SHARED:bool=off -DCONFIG_PIC=1 \
 | |
|   -DENABLE_EXAMPLES=0 -DENABLE_DOCS=0 -DENABLE_TESTS=0 \
 | |
|   -DCONFIG_SIZE_LIMIT=1 \
 | |
|   -DDECODE_HEIGHT_LIMIT=12288 -DDECODE_WIDTH_LIMIT=12288 \
 | |
|   -DDO_RANGE_CHECK_CLAMP=1 \
 | |
|   -DAOM_MAX_ALLOCABLE_MEMORY=536870912 \
 | |
|   -DAOM_TARGET_CPU=generic \
 | |
|   ../../
 | |
| make clean
 | |
| make -j$(nproc)
 | |
| make install
 | |
| 
 | |
| # Remove shared libraries to avoid accidental linking against them.
 | |
| rm -f $DEPS_PATH/lib/*.so
 | |
| rm -f $DEPS_PATH/lib/*.so.*
 | |
| 
 | |
| cd $SRC/libheif
 | |
| ./autogen.sh
 | |
| PKG_CONFIG="pkg-config --static" PKG_CONFIG_PATH="$DEPS_PATH/lib/pkgconfig" ./configure \
 | |
|     --disable-shared \
 | |
|     --enable-static \
 | |
|     --disable-examples \
 | |
|     --disable-go \
 | |
|     --enable-libfuzzer="$LIB_FUZZING_ENGINE" \
 | |
|     CPPFLAGS="-I$DEPS_PATH/include"
 | |
| make clean
 | |
| make -j$(nproc)
 | |
| 
 | |
| cp libheif/*-fuzzer $OUT
 | |
| cp fuzzing/dictionary.txt $OUT/box-fuzzer.dict
 | |
| cp fuzzing/dictionary.txt $OUT/file-fuzzer.dict
 | |
| 
 | |
| zip -r $OUT/file-fuzzer_seed_corpus.zip fuzzing/corpus/*.heic
 |