1*495ae853SAndroid Build Coastguard Worker# LIBAVC 2*495ae853SAndroid Build Coastguard Worker## Getting Started Document 3*495ae853SAndroid Build Coastguard Worker 4*495ae853SAndroid Build Coastguard Worker# LibAVC build steps 5*495ae853SAndroid Build Coastguard Worker 6*495ae853SAndroid Build Coastguard WorkerSupports: 7*495ae853SAndroid Build Coastguard Worker- aarch32/aarch64 on Linux. 8*495ae853SAndroid Build Coastguard Worker- aarch32/aarch64 on Android. 9*495ae853SAndroid Build Coastguard Worker- x86_32/x86_64 on Linux. 10*495ae853SAndroid Build Coastguard Worker 11*495ae853SAndroid Build Coastguard Worker## Native Builds 12*495ae853SAndroid Build Coastguard WorkerUse the following commands for building on the target machine 13*495ae853SAndroid Build Coastguard Worker 14*495ae853SAndroid Build Coastguard Worker``` 15*495ae853SAndroid Build Coastguard Worker$ cd external/libavc 16*495ae853SAndroid Build Coastguard Worker$ mkdir build 17*495ae853SAndroid Build Coastguard Worker$ cd build 18*495ae853SAndroid Build Coastguard Worker$ cmake .. 19*495ae853SAndroid Build Coastguard Worker$ make 20*495ae853SAndroid Build Coastguard Worker``` 21*495ae853SAndroid Build Coastguard Worker 22*495ae853SAndroid Build Coastguard Worker## Cross-compiler based builds 23*495ae853SAndroid Build Coastguard Worker 24*495ae853SAndroid Build Coastguard Worker### Building for x86_32 on a x86_64 Linux machine 25*495ae853SAndroid Build Coastguard Worker``` 26*495ae853SAndroid Build Coastguard Worker$ cd external/libavc 27*495ae853SAndroid Build Coastguard Worker$ mkdir build 28*495ae853SAndroid Build Coastguard Worker$ cd build 29*495ae853SAndroid Build Coastguard Worker$ CFLAGS="-m32" CXXFLAGS="-m32" LDFLAGS="-m32" cmake .. 30*495ae853SAndroid Build Coastguard Worker$ make 31*495ae853SAndroid Build Coastguard Worker``` 32*495ae853SAndroid Build Coastguard Worker 33*495ae853SAndroid Build Coastguard Worker### Building for aarch32/aarch64 34*495ae853SAndroid Build Coastguard WorkerUpdate 'CMAKE_C_COMPILER', 'CMAKE_CXX_COMPILER', 'CMAKE_C_COMPILER_AR', and 35*495ae853SAndroid Build Coastguard Worker'CMAKE_CXX_COMPILER_AR' in CMAKE_TOOLCHAIN_FILE passed below 36*495ae853SAndroid Build Coastguard Worker 37*495ae853SAndroid Build Coastguard Worker``` 38*495ae853SAndroid Build Coastguard Worker$ cd external/libavc 39*495ae853SAndroid Build Coastguard Worker$ mkdir build 40*495ae853SAndroid Build Coastguard Worker$ cd build 41*495ae853SAndroid Build Coastguard Worker``` 42*495ae853SAndroid Build Coastguard Worker 43*495ae853SAndroid Build Coastguard Worker#### For aarch64 44*495ae853SAndroid Build Coastguard Worker``` 45*495ae853SAndroid Build Coastguard Worker$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch64_toolchain.cmake 46*495ae853SAndroid Build Coastguard Worker$ make 47*495ae853SAndroid Build Coastguard Worker``` 48*495ae853SAndroid Build Coastguard Worker 49*495ae853SAndroid Build Coastguard Worker#### For aarch32 50*495ae853SAndroid Build Coastguard Worker``` 51*495ae853SAndroid Build Coastguard Worker$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/aarch32_toolchain.cmake 52*495ae853SAndroid Build Coastguard Worker$ make 53*495ae853SAndroid Build Coastguard Worker``` 54*495ae853SAndroid Build Coastguard Worker 55*495ae853SAndroid Build Coastguard Worker### Building for android 56*495ae853SAndroid Build Coastguard WorkerNOTE: This assumes that you are building on a machine that has 57*495ae853SAndroid Build Coastguard Worker [Android NDK](https://developer.android.com/ndk/downloads). 58*495ae853SAndroid Build Coastguard Worker 59*495ae853SAndroid Build Coastguard Worker``` 60*495ae853SAndroid Build Coastguard Worker$ cd external/libavc 61*495ae853SAndroid Build Coastguard Worker$ mkdir build 62*495ae853SAndroid Build Coastguard Worker$ cd build 63*495ae853SAndroid Build Coastguard Worker``` 64*495ae853SAndroid Build Coastguard Worker 65*495ae853SAndroid Build Coastguard Worker#### Armv7 (32-bit) 66*495ae853SAndroid Build Coastguard Worker 67*495ae853SAndroid Build Coastguard Worker cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/android_toolchain.cmake\ 68*495ae853SAndroid Build Coastguard Worker -DAVC_ANDROID_NDK_PATH=/opt/android-ndk-r26d/\ 69*495ae853SAndroid Build Coastguard Worker -DANDROID_ABI=armeabi-v7a\ 70*495ae853SAndroid Build Coastguard Worker -DANDROID_PLATFORM=android-23 ../ 71*495ae853SAndroid Build Coastguard Worker make 72*495ae853SAndroid Build Coastguard Worker 73*495ae853SAndroid Build Coastguard Worker#### Armv8 (64-bit) 74*495ae853SAndroid Build Coastguard Worker 75*495ae853SAndroid Build Coastguard Worker cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/android_toolchain.cmake\ 76*495ae853SAndroid Build Coastguard Worker -DAVC_ANDROID_NDK_PATH=/opt/android-ndk-r26d/\ 77*495ae853SAndroid Build Coastguard Worker -DANDROID_ABI=arm64-v8a\ 78*495ae853SAndroid Build Coastguard Worker -DANDROID_PLATFORM=android-23 ../ 79*495ae853SAndroid Build Coastguard Worker make