|
|
|
#twister building script for IOS on linux
|
|
|
|
|
|
|
|
export IPHONE_IP=""
|
|
|
|
export IOS_SDK=/usr/share/iPhoneOS6.0.sdk
|
|
|
|
export ARCH=armv7
|
|
|
|
export TARGET=arm-apple-darwin11
|
|
|
|
export LINKER_VER=236.3
|
|
|
|
export IPHONEOS_DEPLOYMENT_TARGET=6.0
|
|
|
|
export IOS_SIGN_CODE_WHEN_BUILD=1
|
|
|
|
export TARGET_OS=IOS
|
|
|
|
export PJC=2
|
|
|
|
|
|
|
|
export CC="clang"
|
|
|
|
export CXX="clang++"
|
|
|
|
export CFLAGS="-target $TARGET -arch $ARCH -isysroot $IOS_SDK -fblocks -fobjc-arc -g0 -O2 -D$TARGET_OS -mlinker-version=$LINKER_VER"
|
|
|
|
export CXXFLAGS="$CFLAGS"
|
|
|
|
export LD="$TARGET-ld"
|
|
|
|
export AR="$TARGET-ar"
|
|
|
|
|
|
|
|
export LDFLAGS="-L$IOS_SDK/System"
|
|
|
|
|
|
|
|
mkdir -p ios-build/ext
|
|
|
|
cd ios-build/ext
|
|
|
|
echo 'Downloading leveldb...'
|
|
|
|
[ -f leveldb.zip ] || wget https://github.com/google/leveldb/archive/master.zip -O leveldb.zip
|
|
|
|
[ -d leveldb-master ] || unzip leveldb.zip
|
|
|
|
cd leveldb-master
|
|
|
|
cat << _EOF > makefile.ios
|
|
|
|
SOURCES=db/builder.cc db/c.cc db/dbformat.cc db/db_impl.cc db/db_iter.cc db/dumpfile.cc db/filename.cc db/log_reader.cc db/log_writer.cc db/memtable.cc db/repair.cc db/table_cache.cc db/version_edit.cc db/version_set.cc db/write_batch.cc table/block_builder.cc table/block.cc table/filter_block.cc table/format.cc table/iterator.cc table/merger.cc table/table_builder.cc table/table.cc table/two_level_iterator.cc util/arena.cc util/bloom.cc util/cache.cc util/coding.cc util/comparator.cc util/crc32c.cc util/env.cc util/env_posix.cc util/filter_policy.cc util/hash.cc util/histogram.cc util/logging.cc util/options.cc util/status.cc port/port_posix.cc
|
|
|
|
MEMENV_SOURCES=helpers/memenv/memenv.cc
|
|
|
|
PLATFORM_CCFLAGS= -DOS_MACOSX -DLEVELDB_PLATFORM_POSIX
|
|
|
|
PLATFORM_CXXFLAGS= -DOS_MACOSX -DLEVELDB_PLATFORM_POSIX
|
|
|
|
CFLAGS += -I. -I./include \$(PLATFORM_CCFLAGS) -O2 -DNDEBUG
|
|
|
|
CXXFLAGS += -I. -I./include \$(PLATFORM_CXXFLAGS) -O2 -DNDEBUG
|
|
|
|
LIBOBJECTS = \$(SOURCES:.cc=.o)
|
|
|
|
MEMENVOBJECTS = \$(MEMENV_SOURCES:.cc=.o)
|
|
|
|
LIBRARY = libleveldb.a
|
|
|
|
MEMENVLIBRARY = libmemenv.a
|
|
|
|
|
|
|
|
default: all
|
|
|
|
|
|
|
|
all: \$(LIBRARY) \$(MEMENVLIBRARY)
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -f \$(LIBRARY) \$(MEMENVLIBRARY) */*.o */*/*.o ios-x86/*/*.o ios-arm/*/*.o build_config.mk
|
|
|
|
rm -rf ios-x86/* ios-arm/*
|
|
|
|
|
|
|
|
\$(LIBRARY): \$(LIBOBJECTS)
|
|
|
|
rm -f \$@
|
|
|
|
\$(AR) -rs \$@ \$(LIBOBJECTS)
|
|
|
|
|
|
|
|
\$(MEMENVLIBRARY) : \$(MEMENVOBJECTS)
|
|
|
|
rm -f \$@
|
|
|
|
\$(AR) -rs \$@ \$(MEMENVOBJECTS)
|
|
|
|
|
|
|
|
.cc.o:
|
|
|
|
\$(CXX) \$(CXXFLAGS) -c \$< -o \$@
|
|
|
|
|
|
|
|
.c.o:
|
|
|
|
\$(CC) \$(CFLAGS) -c \$< -o \$@
|
|
|
|
_EOF
|
|
|
|
|
|
|
|
make -f makefile.ios -j$PJC
|
|
|
|
cd ..
|
|
|
|
|
|
|
|
echo 'Downloading berkeley db...'
|
|
|
|
[ -f db-5.3.28.tar.gz ] || wget http://download.oracle.com/berkeley-db/db-5.3.28.tar.gz
|
|
|
|
[ -d db-5.3.28 ] || tar xf db-5.3.28.tar.gz
|
|
|
|
cd db-5.3.28/build_unix
|
|
|
|
export _CFLAGS="$CFLAGS"
|
|
|
|
export _CXXFLAGS="$CXXFLAGS"
|
|
|
|
export CFLAGS="-pipe -gdwarf-2 -no-cpp-precomp -mthumb $_CFLAGS"
|
|
|
|
export CXXFLAGS="-pipe -gdwarf-2 -no-cpp-precomp -mthumb $_CXXFLAGS"
|
|
|
|
../dist/configure --host=$TARGET --prefix=/usr --enable-compat185 --enable-shared=no --enable-static --enable-cxx --enable-dbm --enable-st
|
|
|
|
make -j$PJC
|
|
|
|
|
|
|
|
export CFLAGS="$_CFLAGS"
|
|
|
|
export CXXFLAGS="$_CXXFLAGS"
|
|
|
|
|
|
|
|
cd ../..
|
|
|
|
|
|
|
|
echo 'Downloading boost...'
|
|
|
|
[ -f boost_1_58_0.tar.bz2 ] || wget https://downloads.sourceforge.net/project/boost/boost/1.58.0/boost_1_58_0.tar.bz2
|
|
|
|
[ -d boost_1_58_0 ] || tar xf boost_1_58_0.tar.bz2
|
|
|
|
|
|
|
|
cd ../..
|
|
|
|
|
|
|
|
echo 'Building libtorrent...'
|
|
|
|
[ -f ../libtorrent/src/ios-build/libtorrent-rasterbar.a ] || make -C ../libtorrent/src -f makefile.ios -j$PJC
|
|
|
|
|
|
|
|
echo 'Building twister...'
|
|
|
|
make -f makefile.ios -j$PJC
|
|
|
|
|
|
|
|
echo "Installing twisterd to your device..."
|
|
|
|
[ -n "$IPHONE_IP" ] && make -f makefile.ios install
|