Question

I'm trying to compile ECL 10.4.1 on my Win7 64-bit box, but am having issues.

I've attempted the build with both mingw32/MSYS and mingw-w64/MSYS, using the exact packages linked to here. Both have failed.

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[2]: *** [main.o] Error 1
make[2]: Leaving directory `/c/my_home/ecl-10.4.1/build/c'
make[1]: *** [libeclmin.a] Error 2
make[1]: 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.)


Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top