Re: [eclipse-clp-users] How to compile eclipse under Debian:bullseye with Coin-OR

From: Vasily Kartashov <info_at_...430...>
Date: Sun, 18 Jul 2021 18:39:43 +1000
Hi Kish,

Thanks, I am getting further this time:

#17 8.457 configure: WARNING: Could not find Gmp (4.2 4.1) in /vol/Eclipse/thirdparty
#17 8.457 checking for __gmpz_import in -lgmp... yes
#17 8.502 configure: Using OSI clpcbc in /vol/Eclipse/thirdparty/coinclpcbc
#17 8.504 configure: Using OSI symclp in /vol/Eclipse/thirdparty/coinsymclp
#17 8.506 configure: Will build OSI interfaces for versions  clpcbc symclp
#17 8.507 configure: Not building CPLEX interface

But it stops during the build here:

#18 99.81 g++ -shared  eplex.o coinplex.o -L/vol/Eclipse/thirdparty/coinsymclp/x86_64_linux/lib -lOsiSym -lSym -lOsiClp -lCgl -lClp  -lOsi -lCoinUtils -static-libstdc++ -static-libgcc -L../lib/x86_64_linux -leclipse -L.  -lgmp -lpthread -lnsl -ldl -lm   -o x86_64_linux/seosisymclp.so
#18 99.82 /usr/bin/ld: cannot find -lOsiSym
#18 99.82 /usr/bin/ld: cannot find -lSym
#18 99.82 /usr/bin/ld: cannot find -lOsiClp
#18 99.82 /usr/bin/ld: cannot find -lCgl
#18 99.82 /usr/bin/ld: cannot find -lClp
#18 99.82 /usr/bin/ld: cannot find -lOsi
#18 99.82 /usr/bin/ld: cannot find -lCoinUtils

Here’s my complete dockerfile:

FROM debian:bullseye AS builder

RUN apt update \
    && apt install -y \
        build-essential \
        m4 \
        gfortran \
        tcl-dev \
        tk-dev \
        git \
        subversion \
        wget

ENV GMP_VERSION 4.2.4
WORKDIR /gmp
RUN wget https://ftp.gnu.org/gnu/gmp/gmp-${GMP_VERSION}.tar.gz \
    && tar -xvf gmp-${GMP_VERSION}.tar.gz \
    && cd gmp-${GMP_VERSION} \
    && ./configure --prefix=/usr --enable-cxx --enable-mpbsd \
    && make \
    && make install

WORKDIR /eclipse
RUN git clone https://git.code.sf.net/p/eclipse-clp/git .
RUN ./configure --with-osi

WORKDIR /eclipse/Eplex
RUN make -f Makefile.x86_64_linux install_cbc install_sym
RUN ln -s /vol/Eclipse/thirdparty/coinclpcbc2.9 /vol/Eclipse/thirdparty/coinclpcbc
RUN ln -s /vol/Eclipse/thirdparty/coinsymclp5.3 /vol/Eclipse/thirdparty/coinsymclp

WORKDIR /eclipse
RUN ./configure --with-osi
RUN make -f Makefile.x86_64_linux install

Best,
Vasily

> On 18 Jul 2021, at 1:29 pm, Kish Shen <kish.shen_at_...6...> wrote:
> 
> Hi Vasily,
> 
> Looking at your log:
>> 14 336.0 /bin/cp -pr SYMPHONY/x86_64_linux/include/coin/* /vol/Eclipse/thirdparty/coinsymclp5.3/x86_64_linux/include
> 
> the files are copied to coinstmclp5.3, a version specific (5.3) directory.
> 
> While the configure is looking for symclp in:
> 
>> #16 8.061 configure: WARNING: Could not find x86_64_linux support for symclp in /vol/Eclipse/thirdparty/coinsymclpamd /vol/Eclipse/thirdparty/coinsymclp
> symclp, without the version.
> 
> The same applies to clpcbc. I normally create a symbolic link from
> clpcbc to clpcbc<version>. It looks like you need to do this yourself,
> as the Makefile rule for installing the OSI solvers don't seem to do
> this.
> 
>> P.S. Also surprised that configure cannot see GMP.
> 
> this seems to be because configure requires GMP versions 4.1 or 4.2 -
> these are very old versions of GMP. I don't know if newer versions of
> GMPare not looked for,and I have asked Joachim Schimpf about this.
> 
> You can download the source for GMP 4.1 from:
> 
> https://eclipseclp.org/Distribution/thirdparty/
> 
> 
> and build this version of GMP. You should always build ECLiPSe with
> GMP since the new compiler was introduced (I think in 6.0), as this
> ECLiPSe compiler is not fully unfctional without GMP.
> 
> BTW, you can find some detailed instructions on building ECLiPSe in:
> 
> http://eclipseclp.org/reports/SetupGuide.pdf
> 
> and the .doc version of this is available in the ECLiPSe source, under
> documents/internal
> 
> unfortunately, it has not been systematically updated, and parts of it
> is very out of date.
> 
> Cheers,
> 
> Kish
> 
> the .doc (i.e. MS word) version of this is available in the ECLiPSe
> source, in documents/internal
> 
> On Sat, Jul 17, 2021 at 3:46 AM Vasily Kartashov <info_at_...430...> wrote:
>> 
>> Hi Kish,
>> 
>> I am now getting this:
>> 
>> #14 336.0 /bin/cp -pr SYMPHONY/x86_64_linux/include/coin/* /vol/Eclipse/thirdparty/coinsymclp5.3/x86_64_linux/include
>> #14 336.0 /bin/cp -pr SYMPHONY/x86_64_linux/lib/* /vol/Eclipse/thirdparty/coinsymclp5.3/x86_64_linux/lib
>> 
>> …
>> 
>> #16 8.015 checking for __gmpz_import in -lgmp... configure: WARNING: Could not find Gmp (4.2 4.1) in /vol/Eclipse/thirdparty
>> #16 8.059 yes
>> #16 8.061 configure: WARNING: Could not find x86_64_linux support for clpcbc in /vol/Eclipse/thirdparty/coinclpcbcamd /vol/Eclipse/thirdparty/coinclpcbc
>> #16 8.061 configure: WARNING: Could not find x86_64_linux support for symclp in /vol/Eclipse/thirdparty/coinsymclpamd /vol/Eclipse/thirdparty/coinsymclp
>> 
>> 
>> The dockerfile looks like following:
>> 
>> 
>> FROM debian:bullseye AS builder
>> 
>> RUN apt update && \
>>    apt install -y \
>>        build-essential \
>>        libgmp-dev \
>>        tcl-dev \
>>        tk-dev \
>>        git \
>>        subversion
>> 
>> WORKDIR /eclipse
>> RUN git clone https://git.code.sf.net/p/eclipse-clp/git .
>> RUN ./configure --with-osi
>> 
>> WORKDIR /eclipse/Eplex
>> RUN make -f Makefile.x86_64_linux install_cbc
>> RUN make -f Makefile.x86_64_linux install_sym
>> 
>> WORKDIR /eclipse
>> RUN ./configure --with-osi
>> RUN make -f Makefile.x86_64_linux install
>> RUN make -f Makefile.x86_64_linux install_documents
>> 
>> 
>> 
>> To trigger the build run the following command from the folder with Dockerfile:
>> 
>> 
>> docker build --progress=plain -t eclipse:latest .
>> 
>> 
>> Kind regards,
>> Vasily
>> 
>> P.S. Also surprised that configure cannot see GMP.
>> 
>> 
>>> On 17 Jul 2021, at 12:03 am, Kish Shen <kish.shen_at_...6...> wrote:
>>> 
>>> Hi Vasily,
>>> 
>>> I don't know about Debian Dockerfile, so I don''t know if it requires
>>> anythingextra.
>>> 
>>> When configure is run, it will look for COIN-OR related files in the
>>> third part directory set ECLIPSETHIRDPARTY environment variable.
>>> 
>>> You probably don't have COIN-OR installed there, but after running
>>> configure, you can build and install COIN-OR solvers from the Eplex
>>> directory. Go into the Eplex directory, and run this
>>> 
>>> make -f Makefile.<platform> install_cbc
>>> (<platform> is your platform, e.g. x86_64_linux)
>>> 
>>> and this should download, build, and install CBC/CLP into the third
>>> party directory.
>>> 
>>> You can now run configure again, and it should find CBC/CLP.
>>> 
>>> CBC/CLP is far the best supported COIN-OR solver in eplex, but eplex
>>> also support other solvers via the generic OSI interface, and there
>>> are Makefile rules to build SYMPHONY as well. Look at the Makefile if
>>> you are interested.
>>> 
>>> Cheers,
>>> 
>>> Kish
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Fri, Jul 16, 2021 at 12:19 PM Vasily Kartashov <info_at_...430...> wrote:
>>>> 
>>>> Hello,
>>>> 
>>>> Do you have detailed step by step instructions for compiling eclipse + eplex under debian. I am working on a `Dockerfile`, but
>>>> 
>>>> 1) it’s not clear which coinor packages are required
>>>> 2) how to make eclipse aware of them
>>>> 
>>>> Currently the Dockerfile looks like this
>>>> 
>>>> FROM debian:bullseye AS builder
>>>> 
>>>> RUN apt update && \
>>>> apt install -y \
>>>> build-essential \
>>>> libgmp-dev \
>>>> tcl-dev \
>>>> tk-dev \
>>>> git \
>>>> coinor-libcbc-dev \
>>>> coinor-libcgl-dev \
>>>> coinor-libclp-dev \
>>>> coinor-libdylp-dev \
>>>> coinor-libvol-dev
>>>> 
>>>> WORKDIR /eclipse
>>>> 
>>>> RUN git clone https://git.code.sf.net/p/eclipse-clp/git .
>>>> 
>>>> RUN ./configure \
>>>> --with-osi \
>>>> --without-cplex \
>>>> --without-xpress \
>>>> --without-gurobi \
>>>> --without-gfd \
>>>> --without-java \
>>>> --without-flexlm \
>>>> --without-graphviz \
>>>> --without-mysql \
>>>> --without-cpviz
>>>> RUN make -f Makefile.x86_64_linux install
>>>> RUN make -f Makefile.x86_64_linux install_documents
>>>> 
>>>> FROM debian:bullseye-slim
>>>> 
>>>> COPY --from=builder /eclipse/bin/x86_64_linux/eclipse /usr/local/bin/eclipse
>>>> COPY --from=builder /eclipse/lib /eclipse/lib
>>>> COPY --from=builder /eclipse/lib_public /eclipse/lib_public
>>>> 
>>>> ENTRYPOINT [ "eclipse” ]
>>>> 
>>>> _______________________________________________
>>>> ECLiPSe-CLP-Users mailing list
>>>> ECLiPSe-CLP-Users_at_lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/eclipse-clp-users
>> 
Received on Sun Jul 18 2021 - 08:53:57 CEST

This archive was generated by hypermail 2.3.0 : Wed Sep 25 2024 - 15:13:21 CEST