Building iOS Apps on Linux, Windows and PowerPC Mac OS X

Greetings, Ladies and Germs,

I have decided to release my iOS App Warp Life under the GNU General
Public License. I haven't actually released any source yet as I'm not
yet certain as to which precise license variant to use (GPLv3, GPLv3
or any later version, Affero GPLv3, as well as any license

Among many other things, providing Warp Life's Objectve-C, C and
assembly code source could be helpful to the CLang and LLVM
developers. It's quite a lot larger and more complex than most other
iOS Apps whose source can be obtained openly, and so could help when
testing your own development tool code. CLang's static source
analysis in particular has helped me immensely, in that I fixed some
quite serious bugs I would have been very unlikely to have fixed any
other way.

The GPL Release will coincide with the Beta 2 Release. I have only
two bugs to fix for Beta 2 that I know about, so that release should
be quite soon. Here are my blocking tasks:

At the very least I will write a Makefile so I can build it myself
with Xcode 2's LLVM and GCC on Intel Mac OS X Snow Leopard. I'm
providing that Makefile to support those who want to build my code on
other platforms than those that the iOS SDK supports.

Even better would be for me to actually do such builds on at least a
few other platforms myself, but that entails building a whole bunch of
cross-compilers that all target ARM Darwin, and link to the iOS SDK's
Public Frameworks.

I've built cross-compilers before, but I've never had any luck with
building CLang and LLVM completely from scratch. It was some
completely intractible problem with some of the llvm-gcc configure
scripts. I find the source to ./configure to be as clear as
Carbonite, which is why I would not dream of using it GNU autoconf any
of my own projects.

I haven't actually checked out any CLang/LLVM source in eons though as
I've had to much on my plate. I reported my build problems on one of
our lists quite a long time ago, so maybe they have since been fixed.

Has anyone here ever used CLang and LLVM to build iOS Apps on other
than Intel Mac OS X? Do you have any tips for me?

If I possibly can, I'll be releasing Beta 2 this week.

Far more serious than any build issues is my choice of license, as the
text of the GNU GPLv3 as it is actually written makes my head spin
when I try to read it. On the front page of Slashdot tonight is a
story about the declining usage of the GPL. The article suggests it's
because more for-profit companies are releasing Open Source Software.

My own take is that the GNU General Public License version 3 doesn't
make sense to anyone when they try to read it. While I support the
goals it aims to achieve, I regard the GNU General Public License
version 3 itself as appallingly poorly written.

Ever Faithful,

Don Quixote de la Mancha
Dulcinea Technologies Corporation
Software of Elegance and Beauty

I may be off on this one, but I see the GPLv3 being a stickling point for even testing LLVM/Clang against.

  • Marc

Thanks for pointing that out.

It is VITALLY important that I know why. Even if you don't actually
know, giving me the slightest clue as to how I may determine that for
myself would go a long ways towards getting me where I need to be.

As I said, I find the text of the GPLv3 itself to be *completely*
impenetrable. So I'm not asking you to cite the specific clause that
causes the problem. Perhaps you found a discussion of this on a list,
website or message board somewhere.

My specific reason for desiring GPLv3 over GPLv2 is to prevent
"Tivoization", that is, the loading of binaries of my App on operating
systems in such a way that prevents some other developer from loading
his own derivative work of my App on that same OS.

The Tivo Digital Video Record runs - or at least ran - on Linux. My
understanding is that they did release whatever source was required by
the various licenses, but cryptographic means were employed to prevent
one from loading one's own binaries on one's own Tivo.

I'm thinking of the iOS specifically. This decision was a long time
coming, because I've been Bleeding In Six Colors for quite a lot
longer than most people who presently work for Apple, and many of my
best friends are Apple employees.

I'm not trying to bring down the Apple company; I wish to encourage it
to mend the errors of its ways.

The GPLv3 addresses quite a lot more than Tivoization. If you know of
any other that prevents Tivoization but does not have the MANY
problems of the GPLv3, I Am All Ears.

Hi guys,

This whole thread is completely off-topic for this list.


I didn't actually intend for it to be, honest!

What I was actually hoping to get out of posting my original question
was some hand holding with building ARM Darwin CLang/LLVM compilers on
platforms other than Intel OS X.

Anyone who wants to continue discussing Warp Life's licensing with me,
email me privately at Let me know if it
would be OK to CC you publicly to everyone discussing it, or if you
would prefer I BCC you privately, so other recipients of the mail
don't see your name and email address.

I've been planning to set up some mailing lists at my own domain.
This would be a good time for that.

The best list I've found for discussing any kind of licensing at all
is debian-legal. You don't really have to be discussing debian
itself, just some license that appears somewhere in debian.

I'm going to get started by building the current source on 32-bit
Intel Snow Leopard OS X, which should be almost but not quite the
best-supported platform the CLang and LLVM toolchains that target the
iOS (the best being 64-bit, but I don't have such a box yet).

My previous struggle with getting a toolchain to target the platform I
was building it on was Ubuntu, I think 10.04, but maybe 11.04. I
don't clearly recall.

But that was quite a long time ago. The chances are pretty good that
my problem has since been fixed. It had something to do with a
configure script failing while bootstrapping llvm-gcc.

I was trying to build straight out of the repository, starting with
the GCC on Ubuntu, without using any previously released or installed
CLang or LLVM, despite that I could get them with Ubuntu.

Quite likely a full "Tabula Rasa" toolchain build was, at least at the
time, not adequately tested. I expect most CLang and LLVM developers
would build new version of the tools with old versions of the same
tools, then recompile the new version with the first build of the new

The actual configure problems I have were something really, really
cryptic in the shell scripts that I was completely unable to make any
sense of. The problem wasn't in any of our code, it was in the GNU
autoconf stuff.