1. Ubuntu 10.10 iPhone Toolchain 4
If you use Ubuntu 11.04, please see wiki on how to use gcc-4.4 to compile
2. Install the following packages in Ubuntu
sudo apt-get update
sudo apt-get install bison flex build-essential wget patch
sudo apt-get install git autoconf gawk libssl-dev libxml2-dev uuid-dev
sudo apt-get install clang
3. Clone Project
cd /
sudo git clone git://github.com/javacom/toolchain4.git
sudo chown -R : /toolchain4
4. Put iPhoneOS4.2.sdk.tgz to /toolchain4/sdks/
or build xar
sudo apt-get install libxml2-dev
./toolchain.sh xar
then put iPhoneSDK4_2.pkg to /toolchain4/sdks/
./toolchain.sh buildsys
to build sys
Put iPhoneSDK5_0.pkg to /toolchain4/sdks/
./toolchain.sh buildsys50
to build sys50 folder
Put iPhoneSDK4_3.pkg to /toolchain4/sdks/
./toolchain.sh buildsys43
to build sys43 folder
Put iPhoneSDKHeadersAndLibs.pkg to /toolchain4/sdks/
./toolchain.sh build313
to build sys313 folder
Put iPhoneSDKHeadersAndLibs_32.pkg to /toolchain4/sdks/
./toolchain.sh build32
to build sys32 folder
5. Build headers tools and gcc
cd /toolchain4
./toolchain.sh buildsys
./toolchain.sh cctools
./toolchain.sh llvmgcc
./toolchain.sh ldid
6. Install as_driver
cd /toolchain4/as_driver
make
cd /usr/bin
sudo mv as i686-linux-gnu-as
sudo cp -p /toolchain4/as_driver/as_driver as
sudo ln -s /toolchain4/pre/bin/arm-apple-darwin9-as .
sudo mv ld i686-linux-gnu-ld
sudo cp -p /toolchain4/as_driver/as_driver ld
sudo ln -s /toolchain4/pre/bin/arm-apple-darwin9-ld .
7. Test iOS4 sample code
cd /toolchain4/Projects/LocalPush
make
make dist
(LocalPush.app & LocalPush.ipa will be in build/4.0/ folder)
8. Checkout the updated UICatalog in svn here
sudo apt-get install subversion
cd /toolchain4/Projects
svn checkout http://apiexplorer.googlecode.com/svn/trunk/UICatalog UICatalog-read-only
cd UICatalog-read-only
make -f Makefile.ios4
make -f Makefile.ios4 dist
(Then install the build/4.0/UICatalog.ipa to iPhone for testing)
Enjoy.
----------------------------------------------------
Instructions to add theos build system to toolchain4
----------------------------------------------------
1. Installation
cd /toolchain4
git submodule add git://github.com/DHowett/theos.git theos
mv /toolchain4/theos/include /toolchain4/theos/include.bak
git submodule add git://github.com/DHowett/theos-nic-templates.git theos/templates/theos-nic-templates
git submodule add git://github.com/rpetrich/iphoneheaders.git theos/include
for FILE in /toolchain4/theos/include.bak/*.h; do mv $FILE /toolchain4/theos/include/; done
rmdir /toolchain4/theos/include.bak
cp /toolchain4/Projects/IOSurfaceAPI.h /toolchain4/theos/include/IOSurface/.
cp /toolchain4/pre/bin/ldid /toolchain4/theos/bin/.
2. This is how to create theos project
cd /toolchain4/Projects
/toolchain4/theos/bin/nic.pl
3. Test iOS5 sample notification center widget (requires sys50)
cd /toolchain4/Projects/widgettest/
make && make package
4. Test mobilesubstrate extension (requires sys32)
cd /toolchain4
git submodule add git://github.com/DHowett/preferenceloader.git Projects/preferenceloader
cd /toolchain4/Projects/preferenceloader
cp /toolchain4/Projects/Makefile_for_preferenceloader Makefile
make && make package
Enjoy.
----------------------------------------------------
Instructions to add Telesphoreo to toolchain4
----------------------------------------------------
1. Introduction
Telesphoreo is an APT-based distribution of Unix Software for iOS started by Jay Freeman (saurik). For details, please refer to http://www.telephoreo.org/
2. Installation
# update the toolchain4 git project
# install additional required packages
sudo apt-get install pkg-config realpath texinfo
sudo apt-get install subversion
# build headers for sys42 and sys32, please refer to wiki for downloads
cd /toolchain4
./toolchain.sh buildsys
mv /toolchain4/sys /toolchain4/sys42
./toolchain.sh build32
ln -s /toolchain4/sys32 sys
# update some header files
cp /toolchain4/sys42/usr/include/mach/mach_interface.h /toolchain4/sys32/usr/include/mach/.
cp /toolchain4/sys42/usr/include/mach/mach_host.h /toolchain4/sys32/usr/include/mach/.
cp /toolchain4/sys42/usr/include/mach/mach_vm.h /toolchain4/sys32/usr/include/mach/.
cp /toolchain4/sys42/usr/include/mach/mach_init.h /toolchain4/sys32/usr/include/mach/.
cp /toolchain4/sys42/usr/include/mach/host_info.h /toolchain4/sys32/usr/include/mach/.
mkdir -p /toolchain4/telesphoreo/debs
mkdir -p /toolchain4/telesphoreo/data
2. Test build p7zip
cd /toolchain4/telesphoreo/data
svn co http://svn.telesphoreo.org/trunk/data/p7zip
cd /toolchain4/telesphoreo
export PATH=$PATH:/toolchain4/pre/bin
export PKG_ARCH=iphoneos-arm; ./package.sh p7zip
3. Test build odcctools-782
cd /toolchain4/telesphoreo/data
svn co http://svn.telesphoreo.org/trunk/data/openssl
svn co http://svn.telesphoreo.org/trunk/data/uuid
cd /toolchain4/telesphoreo
export PKG_ARCH=iphoneos-arm; ./package.sh odcctools
Enjoy.