iPhone toolchain 4 for Ubuntu 10.10
C Shell C++ Objective-C
Switch branches/tags
Nothing to show
Failed to load latest commit information.


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
    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 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)


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

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


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