forked from javacom/toolchain4
-
Notifications
You must be signed in to change notification settings - Fork 9
mingwandroid/toolchain4
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Updated by Ray Donnelly on the 12th of May 2012. New features: 1. Building on Windows (MinGW/MSYS - see note [1]) and Mac OS X. 2. Also targeting Mac OS X (MacOSX10.7.sdk). 3. Support for building with (slightly) newer iPhoneSDK (iPhoneOS4.3.sdk). 4. Better Objective C/Objective C++ support. 5. Newer cctools (809) and newer ld64 (127.2) with lto capabilities. 6. Multiarch compiler driver included (-arch flag for both OS X and iOS). 7. Fully relocatable; build and move to where-ever you want. 8. Builds on Fedora and openSUSE - openSUSE is still WIP (see note [2]). 9. Builds correctly with more recent GCCs (e.g. 4.7.0). Whereas the javacom version (which I forked) was focused on iPhone, my focus is on Mac OS X; I have tested that "Hello World" and "Hello World C++" (gcc and llvmgcc) work on iPhone (armv6 and v7) though. On Mac OS X I've built and tested the entire Google Android NDK (i386 only). To build: You'll need about 3GB of space in /tmp (or /tmp2 on Windows) and about 1.2GB of space where you clone this repository (this includes space for the SDKs). From a Mac get the iPhoneOS4.3.sdk and MacOSX10.7.sdk folders and place them in toolchain4/sdks/ (see note [3]) On Ubuntu (tested with 11.04 i686), Windows (tested with Win7 x64), Fedora (tested with 17 TC3 x86_64) and Mac OS X (tested with 10.7.x i686 and x86_64): "./build-all.sh apple" (or "./build-all.sh apple-dbg" for debug versions) On openSUSE (tested with 12.1 x86_64) "i386 ./build-all.sh apple" (or "i386 ./build-all.sh apple-dbg") For openSUSE i686, the command line will be the same as for the other OSes). The built binaries will be in /tmp/final-release (/tmp2/final-release on Windows) An archive is also made in toolchain4/ ..where VERSION is currently cctools127.2-gcc42-5666.3-llvmgcc42-2336.1: Linux: /multiarch-darwin11-${VERSION}-Linux-$(date +%y%m%d).tar.xz Windows: /multiarch-darwin11-${VERSION}-Windows-$(date +%y%m%d).7z Darwin: /multiarch-darwin11-${VERSION}-Darwin-$(date +%y%m%d).7z I compress as a .7z on Darwin as tar.xz isn't supported and .tar.bz2 is too big. To uncompress this you can get a binary of pz7ip for Mac OS X from http://mingw-and-ndk.googlecode.com/files/p7zip-macosx.tar.bz2 or use Keka. If you just want the toolchain binaries, the latest builds can always be found at: http://code.google.com/p/mingw-and-ndk/ To use the binaries you still need the official SDK(s). It should be fine to use these toolchains with more recent SDKs than those they were built against. Send bug-reports/patches to Ray Donnelly <mingw.android at gmail dot com> please. Notes: [1] On Windows, the following cctools programs do not currently compile: "seg_addr_table", "checksyms" and "redo_prebinding" [2] There may be an issue with openSUSE (or other strict FHS distros) setting libexecdir to "lib" and the built binaries expecting it to be "libexec". I've implemented a fix for this but it is currently untested. [3] The scripts contains some work to extract sdks from xcode dmgs but you're best off not depending on this (i.e. it doesn't work on Windows, requires HFS+ kernel modules on Linux and is fairly untested). On Windows, 7zip should be able to extract the sdk pkgs from the dmg, but extracting the pkgs will present challenges. The script(s) do build the tools required to extract pkgs though, so it *might* be achievable. Enjoy. Partially redundant original javacom README: 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.
About
iPhone toolchain 4 for Ubuntu 10.10
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Shell 67.7%
- C 20.6%
- Objective-C 7.5%
- C++ 4.2%