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 <yourusername>:<yourusername> /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.