Created
January 14, 2015 20:40
-
-
Save evands/8ba4f227b00ae14a9303 to your computer and use it in GitHub Desktop.
Revisions
-
evands created this gist
Jan 14, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,59 @@ #!/bin/sh # Combined all static libaries in the current directory into a single static library # It is hardcoded to use the i386, armv7, and armv7s architectures; this can easily be changed via the 'archs' variable at the top # The script takes a single argument, which is the name of the final, combined library to be created. # # For example: # => combine_static_libraries.sh combined-library # # Script by Evan Schoenberg, Regular Rate and Rhythm Software # Thanks to Claudiu Ursache for his blog post at http://www.cvursache.com/2013/10/06/Combining-Multi-Arch-Binaries/ which detailed the technique automated by this script ##### # $1 = Name of output archive ##### archs=(i386 armv7 armv7s) libraries=(*.a) libtool="/usr/bin/libtool" echo "Combining ${libraries[*]}..." for library in ${libraries[*]} do lipo -info $library # Extract individual architectures for this library for arch in ${archs[*]} do lipo -extract $arch $library -o ${library}_${arch}.a done done # Combine results of the same architecture into a library for that architecture source_combined="" for arch in ${archs[*]} do source_libraries="" for library in ${libraries[*]} do source_libraries="${source_libraries} ${library}_${arch}.a" done $libtool -static ${source_libraries} -o "${1}_${arch}.a" source_combined="${source_combined} ${1}_${arch}.a" # Delete intermediate files rm ${source_libraries} done # Merge the combined library for each architecture into a single fat binary lipo -create $source_combined -o $1.a # Delete intermediate files rm ${source_combined} # Show info on the output library as confirmation echo "Combination complete." lipo -info $1.a