Skip to content
ECL Common Lisp for the iOS devices (iPhone & iPad)
Pull request Compare This branch is 47 commits behind kriyative:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
eclshell
.gitignore
README
build.sh
ecl-ios-patches.txt
swank-ecl-patches.txt

README

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

After running git-clone, open a shell in the ecl-iphone-builder
directory. Alternately, you can download this release as a tar.gz
archive using the following url:

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

The following script assumes the sources were unpacked in the /opt/src
directory.

  cd /opt/src/ecl-iphone-builder
  curl -O http://space.dl.sourceforge.net/project/ecls/ecls/10.4/ecl-10.4.1.tar.gz

  tar xzf ecl-10.4.1.tar.gz

[1] Apply the ECL for iOS patches.

  cd ecl-10.4.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 3.2

  [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/...
  device/bin/...
  device/include/...
  device/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. 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 the patch step will
not be required.

  cd ../eclshell
  curl -O http://common-lisp.net/project/slime/snapshots/slime-current.tgz
  tar xzf slime-current.tgz
  ln -s slime-[0-9]* slime
  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 open
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.
Something went wrong with that request. Please try again.