mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2025-12-06 02:40:26 -08:00
Many parts of the source code were bent backward to support builds without long floats which are always present given we depend expect c99 compiler. The corresponding C macros (ECL_LONG_FLOAT) and the *feature* entry (:long-float) are marked as deprecated in the documentation.
69 lines
2.8 KiB
Text
69 lines
2.8 KiB
Text
You will find detailed installation instructions in the ECL manual
|
|
https://common-lisp.net/project/ecl/static/manual/pr01s06.html
|
|
If you do not have access to the online version, follow the following recipies.
|
|
|
|
* Unix and similar platforms.
|
|
1. Type
|
|
./configure --help
|
|
to get a list of the flags with which ECL can be configured.
|
|
2. Enter
|
|
./configure ...
|
|
where "..." is the set of flags you have chosen.
|
|
3. Use "make" followed by "make install" to build and install ECL.
|
|
|
|
* Windows with Visual Studio C++ 2008
|
|
1. Enter the msvc directory
|
|
2. Read the file Makefile to find the configuration options. They
|
|
typically have the form ECL_UNICODE=1, ECL_THREADS=1, etc
|
|
3. Enter
|
|
nmake ...
|
|
followed by zero or more of those options
|
|
4. Use "nmake install" to create a directory called "package" with ECL in it.
|
|
5. Move that directory wherever you need.
|
|
|
|
* Cross-compile for the android platform (from the UNIX machine)
|
|
1. Build the host ECL
|
|
#+BEGIN_SRC shell-script
|
|
# C99 complex numbers are not fully supported on Android
|
|
./configure ABI=32 CFLAGS="-m32 -g -O2" LDFLAGS="-m32 -g -O2"\
|
|
--prefix=`pwd`/ecl-android-host --disable-c99complex
|
|
make -j9
|
|
make install
|
|
rm -r build
|
|
export ECL_TO_RUN=`pwd`/ecl-android-host/bin/ecl
|
|
#+END_SRC
|
|
2. Configure the toolchain (requires android-ndk version 15 or higher, known to work with version 17c)
|
|
and export the necessary paths:
|
|
#+BEGIN_SRC shell-script
|
|
export NDK_PATH=/opt/android-ndk
|
|
export ANDROID_API=23
|
|
export TOOLCHAIN_PATH=`pwd`/android-toolchain
|
|
${NDK_PATH}/build/tools/make_standalone_toolchain.py --arch arm --install-dir ${TOOLCHAIN_PATH} --api ${ANDROID_API}
|
|
export SYSROOT=${TOOLCHAIN_PATH}/sysroot
|
|
export PATH=${TOOLCHAIN_PATH}/bin:$PATH
|
|
#+END_SRC
|
|
3. Build and install the target library
|
|
#+BEGIN_SRC shell-script
|
|
# boehm GC is not compatible with ld.gold linker, force use of ld.bfd
|
|
export LDFLAGS="--sysroot=${SYSROOT} -D__ANDROID_API__=${ANDROID_API} -fuse-ld=bfd"
|
|
export CPPFLAGS="--sysroot=${SYSROOT} -D__ANDROID_API__=${ANDROID_API} -isystem ${SYSROOT}/usr/include/arm-linux-androideabi"
|
|
export CC=arm-linux-androideabi-clang
|
|
./configure --host=arm-linux-androideabi \
|
|
--prefix=`pwd`/ecl-android \
|
|
--disable-c99complex \
|
|
--with-cross-config=`pwd`/src/util/android-arm.cross_config
|
|
make -j9
|
|
make install
|
|
#+END_SRC
|
|
4. Library and assets in the ecl-android directory are ready to run on
|
|
the Android system.
|
|
|
|
** Building ecl-android on Darwin (OSX)
|
|
If your host platform is darwin, then the host compiler should be
|
|
built with the Apple's GCC (not the GCC from Macports). Using the
|
|
MacPort command:
|
|
#+BEGIN_SRC shell-script
|
|
sudo port select --set gcc none
|
|
#+END_SRC
|
|
|
|
Hint provided by Pascal J. Bourguignon.
|