Help with installing ECL (Embeddable Common Lisp) via mingw32 or mingw-64 on Win7-64
I'm trying to compile ECL 10.4.1 on my Win7 64-bit box, but am having issues.
With mingw32: ./configure passes, make fails as follows:
gcc -DECLDIR="\"/usr/local/lib/ecl-10.4.1\"" -I. -Ic:/my_home/ecl-10.4.1/build -I/c/my_home/ecl-10.4.1/src/c -I../ecl/gc -DECL_API -DECL_NO_LEGACY -g -O2 -Dmingw32 -c -o main.o tmp.c In file included from c:/my_home/ecl-10.4.1/src/c/main.d:20:0: c:/my_home/ecl-10.4.1/build/ecl/ecl.h:71:4: error: #error "The Windows ports cannot be built without threads." make: *** [main.o] Error 1 make: Leaving directory `/c/my_home/ecl-10.4.1/build/c' make: *** [libeclmin.a] Error 2 make: Leaving directory `/c/my_home/ecl-10.4.1/build' make: *** [all] Error 2
With mingw-w64: ./configure fails as follows:
[...] checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking gmp.h usability... no checking gmp.h presence... no checking for gmp.h... no checking gmp/gmp.h usability... no checking gmp/gmp.h presence... no checking for gmp/gmp.h... no configure: error: Can not find GMP header.
Does anyone have any advice for either of these? Or is there another build system I could try? (Other than Cygwin which I'm avoiding for licensing reasons.)
Firt, 10.4.1 is really old release. Update to at least 11.1.1, or, preferably git version. Then, you need to install mingw32 (preferably using mingw-get) and msys.
After that, you need to install mingw32-gmp-dev package (or manually compile it), boehm-gc-7.2alpha2 and libffi.
Given all that you should start your msys shell and type the following command:
./configure CFLAGS="-Ic:/msysdir/local/include -Ic:/msysdir/local/lib/libffi-3.0.9/include" LDFLAGS="-Lc:/msysdir/local/lib" --prefix=c:/opt/ecl --enable-threads --with-system-gmp -enable-boehm=system && make 2>&1 | tee -a build.log
This will build 32 bit version. As for m64 version, you will firs need to build all ECL dependencies as 64 bit. I havent tried that.
Also, you might be able to use gmp and gc included with ECL instead of system ones. I don't do that since ECL build takes much more time that way.