47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | # Building for Android
 | ||
|  | 
 | ||
|  | Assuming the Android Ndk is installed at location `/path/to/toolchain`, building | ||
|  | libsndfile for Android (arm-linux-androideabi) should be as simple as: | ||
|  | ``` | ||
|  | autoreconf -vif | ||
|  | export ANDROID_TOOLCHAIN_HOME=/path/to/android/toolchain | ||
|  | ./Scripts/android-configure.sh | ||
|  | make | ||
|  | ``` | ||
|  | The `Scripts/android-configure.sh` contains four of variables; `ANDROID_NDK_VER`, | ||
|  | `ANDROID_GCC_VER`, `ANDROID_API_VER` and `ANDROID_TARGET` that can be overridden | ||
|  | by setting them before the script is run. | ||
|  | 
 | ||
|  | Since I (erikd), do almost zero Android development, I am happy accept patches | ||
|  | for this documentation and script to improve its utility for real Android | ||
|  | developers. | ||
|  | 
 | ||
|  | --- | ||
|  | 
 | ||
|  | ## Using CMake
 | ||
|  | 
 | ||
|  | (Tested on Linux) | ||
|  | 
 | ||
|  | For convenience, export the following variables: | ||
|  | 
 | ||
|  | ``` | ||
|  | export ANDROID_ABI=arm64-v8a | ||
|  | export ANDROID_PLATFORM_API_LEVEL=29 | ||
|  | export NDK_ROOT=/path/to/android/ndk | ||
|  | ``` | ||
|  | 
 | ||
|  | Set `ANDROID_ABI`,  `ANDROID_PLATFORM_API_LEVEL`  according to your target system. Now cd into the libsndfile root directory, and run | ||
|  | 
 | ||
|  | ``` | ||
|  | cmake -S . -B build  -DCMAKE_TOOLCHAIN_FILE=$NDK_ROOT/build/cmake/android.toolchain.cmake -DANDROID_ABI=$ANDROID_ABI -DANDROID_PLATFORM=$ANDROID_PLATFORM_API_LEVEL | ||
|  | ``` | ||
|  | 
 | ||
|  | cd into `build` and run make | ||
|  | 
 | ||
|  | ``` | ||
|  | cd build | ||
|  | make [-j <number of parallel jobs>] | ||
|  | ``` | ||
|  | 
 | ||
|  | This will build libsndfile for android. |