ECL Common Lisp for iOS devices (iPhone & iPad)
Common Lisp Shell C Objective-C
Latest commit e42aec0 Jan 5, 2012 Ram Krishnan Work in progress updates to get ecl-11.1.1 with iOS patches compiled …
…under Mac OSX Lion with iOS 5 SDK.

README

ECL Build Notes
~~~~~~~~~~~~~~~

Use git-clone, then open a shell in the ecl-iphone-builder directory.
Alternatively, download the release as a tar.gz archive:

  curl -L -o ecl-iphone-builder.tar.gz http://github.com/kriyative/ecl-iphone-builder/tarball/master
  tar xzf ecl-iphone-builder.tar.gz
  cd *ecl-iphone-builder-*

Next, download ECL:

  curl -O http://space.dl.sourceforge.net/project/ecls/ecls/11.1/ecl-11.1.1.tar.gz
  tar xzf ecl-11.1.1.tar.gz

[1] Apply the ECL for iOS patches.

  cd ecl-11.1.1
  patch -p0 < ../ecl-ios-patches.txt 

[2] Building ECL for host, simulator, device, and universal

  ECL_IOS=/opt/ecl-ios
  ../build.sh -t all -d ${ECL_IOS} -v 4.3

  [Note: if you use a different path for ${ECL_IOS}, then you must
  change the ECL_IOS build var in the eclshell Xcode project]

Get yourself a cup of coffee, while this runs (on a 2.26 GHz Intel
Core 2 Duo Mac Book Pro with 4GB RAM and 160GB SSD, it takes about 13
minutes to build everything). When it's done, there should be an
${ECL_IOS} directory with the following contents:

  host/bin/...
  host/include/...
  host/lib/...
  armv6/bin/...
  armv6/include/...
  armv6/lib/...
  armv7/bin/...
  armv7/include/...
  armv7/lib/...
  simulator/bin/...
  simulator/include/...
  simulator/lib/...
  universal/lib/libbytecmp.a
  universal/lib/libecl.a
  universal/lib/libeclgc.a
  universal/lib/libeclgmp.a
  universal/lib/libserve-event.a
  universal/lib/libsockets.a
  
The universal/lib/lib* contain FAT binaries of the static libraries,
which makes it easy to configure the Xcode project.

eclshell Build Notes
~~~~~~~~~~~~~~~~~~~~

Download and setup a SLIME source directory:

  cd ../eclshell
  cvs -d :pserver:anonymous:anonymous@common-lisp.net:/project/slime/cvsroot co -D'2010-01-29' slime

The swank-ecl-patches.txt has been submitted to the SLIME maintainers, and hopefully it will make it into 
the CVS builds one of these days, and this patch step will not be required:

  cd slime
  patch -p0 < ../../swank-ecl-patches.txt
  cd ..

If you specified a different path or SDK version for the ECL build
than the default, be sure to edit the sdk_ver and ecl_root settings in
`eclshell/makefile'.

  make			# see makefile for configuring ecl path

That should generate a libeclffi.a fat library. Now fire up the project
in Xcode:

  open -a xcode eclshell.xcodeproj 

If you specified a different path for the ECL
build than the default (in step 2 above), be sure to change the
ECL_IOS user defined build setting accordingly.

Run a Simulator or Device build. Hopefully it will just work, and
there will be some noisy output as SLIME loads, ending eventually
with:

;; Swank started at port: 4005.

From a local emacs, run M-x slime-connect, to 127.0.0.1 (if running a
Simulator build, for device builds look at the IP address listed on
the device), port 4005.

Happy hacking.