Difference between revisions of "CrossCompilingOsX"
(add gnustep and universe) |
|||
Line 40: | Line 40: | ||
Install some packages to start off with: | Install some packages to start off with: | ||
apt-get install sudo nano vim bzr | apt-get install sudo nano vim bzr subversion | ||
Edit your /etc/apt/sources.list to include the universe source and update: | Edit your /etc/apt/sources.list to include the universe source and update: | ||
Line 51: | Line 51: | ||
Now install gnustep: | Now install gnustep: | ||
apt-get install gnustep gnustep-devel | apt-get install gnustep gnustep-devel | ||
This may take a while. | |||
Next, we're going to build clang, llvm, and libc++ that target OS X. | |||
cd /usr/src | |||
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm | |||
cd llvm/tools | |||
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang | |||
cd ..; mkdir build; cd build | |||
../configure --prefix=/usr/clang_3_4 --enable-optimized --enable-targets='''x86_64-apple-darwin11.4.2''' \ | |||
--disable-compiler-version-checks --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu \ | |||
--target='''x86_64-apple-darwin11.4.2''' | |||
make -j4 | |||
make install | |||
Next step: APSL headers for OSX, from Xcode, and then add libc++ compile instructions | |||
More coming... | More coming... |
Revision as of 13:53, 4 June 2014
This is being worked on, please maintain your patience. I have successfully done this before but I don't remember what I did, so I will have to recreate a lot of stuff.
You need:
- a mind so deadset on cross-compiling you won't stop to think
- the Xcode .dmg for your target OS X version
- root access to your build system
- a good processor and a lot of RAM
I used Ubuntu 14.04 "Trusty Tahr" for doing the initial chroot. The process was as follows:
apt-get install dchroot debootstrap
Then edit /etc/schroot/schroot.conf with your favourite text editor, and add this at the end:
[trusty] description=Ubuntu Trusty location=/var/chroot priority=3 users=your_username groups=sbuild root-groups=root
Install a base system:
sudo debootstrap --variant=buildd --arch amd64 trusty /var/chroot/ mirror.url.com/ubuntu/
where mirror.url.com/ubuntu/ can be any of these mirrors.
Now copy your resolv.conf for internet access (required):
sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
Bind your procfs into the chroot for gnustep:
sudo mount -o bind /proc /var/chroot/proc
Finally, chroot into your target:
sudo chroot /var/chroot
You should now have a working chroot, free for you to destroy as you see fit. (from https://help.ubuntu.com/community/BasicChroot)
To avoid pointless warnings about missing locales, do this:
apt-get install language-pack-en
Install some packages to start off with:
apt-get install sudo nano vim bzr subversion
Edit your /etc/apt/sources.list to include the universe source and update:
deb mirror.url.com/ubuntu/ trusty main deb-src mirror.url.com/ubuntu/ trusty main deb mirror.url.com/ubuntu/ trusty universe deb-src mirror.url.com/ubuntu/ trusty universe
Now install gnustep:
apt-get install gnustep gnustep-devel
This may take a while.
Next, we're going to build clang, llvm, and libc++ that target OS X.
cd /usr/src svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm cd llvm/tools svn co http://llvm.org/svn/llvm-project/cfe/trunk clang cd ..; mkdir build; cd build ../configure --prefix=/usr/clang_3_4 --enable-optimized --enable-targets=x86_64-apple-darwin11.4.2 \ --disable-compiler-version-checks --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu \ --target=x86_64-apple-darwin11.4.2 make -j4 make install
Next step: APSL headers for OSX, from Xcode, and then add libc++ compile instructions
More coming...