Giter VIP home page Giter VIP logo

ageneau / ecl-android Goto Github PK

View Code? Open in Web Editor NEW
117.0 20.0 13.0 6.32 MB

Patches for ECL to run on android iOS and Native client (Obsolete: You should use https://gitlab.common-lisp.net/ecl/ecl-android instead)

License: Other

Makefile 2.15% Common Lisp 45.72% C 38.49% Java 0.85% Shell 2.44% Python 0.20% Objective-C 0.29% HTML 3.22% CSS 0.13% JavaScript 0.02% C++ 5.85% Assembly 0.48% Groff 0.17%
lisp common-lisp android ios nacl

ecl-android's Introduction

Warning: This project is obsolete. You probably want to use: https://gitlab.common-lisp.net/ecl/ecl-android instead.


This project contains the needed patches to run ECL on android.

The included Makefile will download and patch ECL (git is needed).
See INSTALL for details.

You'll need the android SDK + NDK to compile / run this project

The included "HelloEcl" android application demonstrates how to
start/run an in-process ECL from an android app using JNI. It loads
the file "init.lisp" and displays a Toast notification. It also starts
a swank server on port 4005 (on the emulator use "adb forward tcp:4005 
tcp:4005" to be able to connect to it from slime). The first run will
be slow because swank needs to be byte-compiled. To get more 
information on what ECL is doing you might want to enable stdout/stderr
redirection:

adb shell stop
adb shell setprop log.redirect-stdio true
adb shell start

The cross-compiled ecl binary can also be run as a standalone
executable (just "adb push" it to a directory on the emulator and use
"adb shell" to execute it.

Sylvain Ageneau <[email protected]>

ecl-android's People

Contributors

ageneau avatar longlene avatar o-simon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ecl-android's Issues

slime git submodule not loadable from common-lisp.net

git://common-lisp.net/projects/mirror/slime.git isn't cloneable by anonymous. Changing the source to to another slime repository, say https://github.com/slime/slime, caused the build to fail because it's unable to pull the specific version required by the build script. The work around that got things running for me was to remove the module:

rm -rf .git/modules/slime
git submodule deinit slime
git rm slime
git rm --cached slime
git clone https://github.com/slime/slime

The original error generated by

make update

was

Clone of 'git://common-lisp.net/projects/mirror/slime.git' into submodule path 'slime' failed
Makefile:37: recipe for target 'update-modules' failed
make: *** [update-modules] Error 1
rett@rett-nuc:~/dev/android-studio/ecl-android-bak/ecl-android$ make update
git submodule init
git submodule update
Cloning into 'slime'...
fatal: unable to connect to common-lisp.net:
common-lisp.net[0: 148.251.248.130]: errno=Connection refused
common-lisp.net[1: 2a01:4f8:200:4310::30]: errno=Network is unreachable

Clone of 'git://common-lisp.net/projects/mirror/slime.git' into submodule path 'slime' failed
Makefile:37: recipe for target 'update-modules' failed
make: *** [update-modules] Error 1

Building issues

First issue I ran into seems to be when calling make. cl-opengl cannot be checked out.
I bypassed this by manually checking it out via -> git clone git://github.com/ageneau/cl-opengl.git to the lisp-packages directory.

2nd issue:
When configuring for host, I will run into the error that I cannot do "make install". bin/ doesn't contain a ecl binay. However I don't see any building errors. However there is a ecl-min binary in build/host/ecl directory.

3rd issue:
When configuring for Android under Linux 64bit, I will get this error:

./configure_gmp_cross android
Can not find Android toolchain in /opt/android/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/.
The NDK version might be wrong.

The problem is that the NDK is 32bit only. This can by bypassed by setting a link from linux-x86 to linux-x86_64 in $ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.6/prebuilt.

4th issue
From here I cannot proceed, cause I do not have a working ecl, which failed in 2nd issue.

This was tested under Debain "wheezy" 64 bit VM install.

non-functional project

This project is not up-to-date - many dependencies are obsolete; neither is it straightforward. There are too many bugs to mention here, and the documentation for how to build it is spartan. Please have a look at a straightforward simple example: https://github.com/stockrt/sqlite3-android, this ECL project should be as easy and straightforward as building the sqlite3 example (even though ECL is more complicated than sqlite, that should not be an excuse to not have a streamlined build process). Regards.

Support for Android L

Running the standalone binary ecl on Android L (emulator) causes an error:
error: only position independent executables (PIE) are supported.

This is due to the fact that Android L linker checks if PIE is enabled on the executable when it is loaded into the memory.

It would be great if you would implement the support of PIE for ECL on Android. I am using ecl on android to build Maxima on Android.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.