[Scilab-users] Scilab compilation from scratch (was Re: spec can crash scilab)

Antoine Monmayrant antoine.monmayrant at laas.fr
Mon May 10 06:09:29 CEST 2021


Hello all,

Here is another update: success!
After a lot of LD_PATH, ln & -lrandomstuff dark magic that I don't 
really understand I managed to compile scilab under linux ubuntu 18.04.
Se below what I've done for those interested.
A bit of warning: I tried to remove all the intermediate failures and 
only keep the changes/installs that help me compile scilab.
Maybe there are some bits missing or useless.
I'll be happy to get a feedback from someone trying to build it on a 
vanilla 18.04 vm to see whether this can be reproduced.
If you see some obvious mistake or simplification, do not hesitate to 
let me know...

Hope it helps,

Cheers,

Antoine


############

# In order to get build-dep scilab
software-properties-gtk
     tick option "Source code"
sudo apt update
sudo apt-get build-dep scilab

# In order to successfully build java stuff with the right jdk
sudo apt install openjdk-8-jdk
sudo update-alternatives --config java
     * 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      
manual mode
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

#    <!> if you tried and failed at compiling with the default jdk 
(openjdk-11-jdk), there are some compiled *.class left behind, even 
after 'make clean'
#    and you'll get     [javac]   bad class file:  ... class file has 
wrong version 55.0, should be 52.0
#    rm -rf your build folder and start again

# getting scilab source code and deps
git clone -b master --depth=1 https://github.com/scilab/scilab.git 
scilab_master
cd scilab_master/scilab/
svn --force checkout 
https://github.com/scilab/scilab-prerequirements.git/trunk/linux_x64/ .

# In order to build using a more modern c/fortran/c++ compiler (default 
is version 7)
sudo apt install gcc-8 g++-8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 80
#     I switch to gcc-8 g++-8  to get past this compile error:
#    src/cpp/fullpath.cpp:16:10: fatal error: filesystem: No such file 
or directory
#    #include <filesystem>

# Somehow libscigfortran does not seem to have the right name for ld to 
be happy:
sudo ln -s 
/home/myhome/softs/scilab-recompile/scilab_master/scilab/lib/thirdparty/redist/libscigfortran.so.5 
/home/myhome/softs/scilab-recompile/scilab_master/scilab/lib/thirdparty/redist/libscigfortran.so
#    The ln -s above is to get past this error:
#    /usr/bin/ld: warning: libscigfortran.so.5, needed by 
/home/myhome/softs/scilab-recompile/scilab_master/scilab/usr/lib/liblapack.so, 
not found (try using -rpath or -rpath-link)

# Populating LDFLAGS and LD_LIBRARY_PATH using random walk and fuzzy 
(really fuzzy) logic. Here be dragons!
./configure LDFLAGS="-L`pwd`/usr/lib/ -L`pwd`/lib/thirdparty 
-L/usr/lib/gcc/x86_64-linux-gnu/8" 
LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:`pwd`/lib/thirdparty/:$LD_LIBRARY_PATH
export 
LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:`pwd`/lib/thirdparty/:`pwd`/lib/thirdparty/redist/:$LD_LIBRARY_PATH 
; make

##########




More information about the users mailing list