[WIP] Scilab/Scicosのビルド



https://www.scilab.org/previous-scilab-versions

```
$ wget http://www.scilab.org/download/6.0.2/scilab-6.0.2-x86_64-src.tar.gz
$ tar zxvf scilab-6.0.2-x86_64-src.tar.gz 
$ su
# ./configure 
```

記載されているパッケージの確認はせずにとりあえず前に進

```
# # HDF5
# wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
# rpm -Uvh epel-release-7-11.noarch.rpm
# yum install hdf5
#
# # ocaml
# yum install ocaml
#
# # ant
# yum install ant
#
## jgraphx
# git clone https://github.com/jgraph/jgraphx.git
# ant
# cp lib/jgraphx.jar /usr/local/lib/java/
#
# # flexdock
# git clone https://github.com/opencollab/flexdock.git
# yum install maven
# mvn clean install
#
# # glugen
# git clone --recurse-submodules git://jogamp.org/srv/scm/gluegen.git gluegen   
# ant
BUILD FAILED
# yum install ant-antlr
# ant
#
# jogl
# git clone --recurse-submodules git://jogamp.org/srv/scm/jogl.git jogl
# ant
#
# yum install java-latest-openjdk
# ant
```
JavaFXは、OpenJDKを自前でビルドする必要があるらしい。

https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX+8u

```
# yum install mercurial bison flex gperf ksh pkgconfig \
    libpng12-devel libjpeg-devel libxml2-devel \
    libxslt-devel systemd-devel glib2-devel  gtk2-devel \
    libXtst-devel pango-devel freetype-devel
# 
# # /usr/lib/jvm/java-1.8.0-openjdk1.8.0.212.b04-0.el7_6.x86_64/jre
# #     [echo] jvmJava.exe                
#
# sudo cp -R ./build/sdk/* $JAVA_HOME/
# sudo cp -R ./build/sdk/rt/* $JAVA_HOME/jre/
```

https://stackoverflow.com/questions/7210194/where-can-i-find-the-package-javax-media-opengl

```
  936  unzip gradle-4.8-bin.zip 
  937  ls /opt/gradle/
  938  mv gradle-4.8 /opt/gradle/
  939  export PATH=$PATH:/opt/gradle/gradle-4.8/bin
  940  hg clone http://hg.openjdk.java.net/openjfx/8u-dev/rt
  944  gradle tasks
  945  gradle clean
  946  gradle projects
  947  gradle
  968  sudo cp -R ../../rt/build/sdk/* /usr/lib/jvm/java-1.8.0-openjdk/
  969  sudo cp -R ../../rt/build/sdk/rt/* /usr/lib/jvm/java-1.8.0-openjdk/jre/
 1012  cp jar/* ../../gluegen/build/gluegen*.jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/lib/
 1019  cp ../jogl/build/jar/*.jar /usr/local/lib/java/
 1020  cp ../gluegen/build/gluegen*.jar /usr/local/lib/java/
 1052  grep 'javax.media.opengl' *
 1061  ln -s jogl-all.jar jogl2-all.jar
 1065  cp ../jogamp-all-platforms/lib/linux-i586/*.so /usr/local/lib
 1078  LD_LIBRARY_PATH=/usr/local/lib/ ./configure
 1087  grep glTexParameterf /usr/lib/libjogl_desktop.so 
 1090  echo $LD_LIBRARY_PATH
 1091  export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
 1109  ln -s /usr/local/lib/libjogl_desktop.so libjogl2.so
```


```
# ./configure
...
checking jogl2... /usr/local/lib/java/jogl2-all.jar
checking minimal version (Specification-Version 2.2) of jogl2... yes
checking for glTexParameterf in -ljogl_desktop... no
configure: WARNING: Could not link against -ljogl_desktop. Will try against -ljogl_desktop -lGL
checking for glTexParameterf in -ljogl_desktop ... no
configure: error: "libjogl: Library
missing (Cannot find symbol glTexParameterf). Check if libjogl - C/Java (JNI)
interface for JOGL2 - or libGL (OpenGL library) are installed and if the version is correct. Note that you might have to update etc/librarypath.xml to provide the actual path to the JNI libraries."
```

置いた`libjogl_desktop.so`がi386向けのものだったので、リンクできていなかった。

`glugen2`

```
# grep MachineDescriptionRuntime ../gluegen2/*/*/*/* 2>error
バイナリファイル ../gluegen2/make/lib/v2.1.5/gluegen-rt.jar に一致しました
バイナリファイル ../gluegen2/make/lib/v2.2.0/gluegen-rt.jar に一致しました
バイナリファイル ../gluegen2/make/lib/v2.2.1/gluegen-rt.jar に一致しました
```
新しいglugenでは無くなったクラスを使用するらしい。

```
cp ../gluegen2/make/lib/v2.2.1/gluegen-rt.jar /usr/lib/java/gluegen2-rt.jar
cp ../gluegen/build/obj/libgluegen-rt.so /usr/local/lib
```

https://www.findjar.com/jar/javax/help/javahelp/2.0.02/javahelp-2.0.02.jar.html
からjavahelp2

http://ftp.jaist.ac.jp/pub/apache/lucene/java/8.1.0/
からlucene-core

https://altlinux.pkgs.org/sisyphus/classic-noarch/jrosetta-1.0.4-alt2_14jpp8.noarch.rpm.html
`rpm -ivh jrosetta-1.0.4-alt2_14jpp8.noarch.rpm`

あとは、yum searchか、mvnパッケージのサイトで見つかった。
地道に入れていって、scilabのconfigureが通るようになった。


flexboxがcore, view, etcと4ファイルだったので、参照するjarを4ファイルに変更。

```
# scilab-lib.properties
flexdock.jar=/usr/local/lib/java/flexdock-core-1.3.jar
flexdock2.jar=/usr/local/lib/java/flexdock-view-1.3.jar
flexdock3.jar=/usr/local/lib/java/flexdock-drag-1.3.jar
flexdock4.jar=/usr/local/lib/java/flexdock-perspective-1.3.jar
```
```
<!-- build.incl.xml -->
        <pathelement location="${flexdock.jar}"/>
        <pathelement location="${flexdock2.jar}"/>
        <pathelement location="${flexdock3.jar}"/>
        <pathelement location="${flexdock4.jar}"/>
```

javax.media.openglをcom.jogamp.openglに置き換え。
setLowercaseExpandedTerms(boolean lowercaseExpandedTerms)
が見つからない。大したことなさそうなので、コメントに。
setBoost
が見つからない。廃止されたようなので、コメントに。

ビルドが通った。

```
cd /usr/src/rtai/rtai-lab/scilab5
make install
```
5.3向けのソフトのため、6.0.2にあうように、パスを変更したり、
`loadScicosLibs();`を`loadXcosLibs();`と変更して、ビルドを通した。



```
//exec("SCI/contrib/RTAI/loader.sce");
exec('/usr/local/scilab-6.0.2/share/scilab/contrib/RTAI/loader.sce')

disp("Scicos-RTAI Ready");

//load('SCI/macros/RTAI/lib')
//load('/usr/local/scilab-6.0.2/share/scilab/contrib/RTAI/macros/RTAI')
load('/usr/local/scilab-6.0.2/share/scilab/contrib/RTAI/macros/lib')


//%xcos_menu($+1)=['RTAI','RTAI CodeGen','Set Target']
//%scicos_menu($+1)=['RTAI','RTAI CodeGen','Set Target']
xcos_pal($+1,:)=['RTAI-Lib','SCI/macros/RTAI/RTAI-Lib.cosf']
```