emews / EQ-R

EMEWS Queues - R implementation
BSD 3-Clause "New" or "Revised" License
3 stars 1 forks source link

Failing to build [help wanted] #5

Closed j-ogas closed 5 years ago

j-ogas commented 5 years ago

It appears that Nvidia's Dockerfile (https://ngc.nvidia.com/catalog/containers/hpc:candle), which builds EQ-R as a dependency is referencing a script (settings.template.sh) that no longer exists.

I have updated my Dockerfile to use the newer configure script as follows:

$ git clone git clone https://github.com/emews/EQ-R.git
$ cd EQ-R/src
$ ./bootstrap
$ ./configure --prefix=/opt/EQ-R --with-tcl-include=/usr/include/tcl --with-rinside=/usr/local/lib/R/site-library/RInside --with-rcpp=/usr/local/lib/R/site-library/Rcpp --with-r=/usr/share/R

Here is the output:

checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking whether make sets $(MAKE)... yes
checking for swig... /usr/bin/swig
dpkg-architecture: x86_64-linux-gnu
configure: Tcl version is not specified.
configure: Tcl location not specified, trying to find tclsh on path
checking for tclsh8.6 on path... yes: /usr/bin/tclsh8.6
Found Tcl at /usr
checking for Tcl library at /usr/lib/libtcl8.6.so... no
checking for Tcl library at /usr/lib/x86_64-linux-gnu/libtcl8.6.so... yes
using Tcl version: 8.6
Tcl shared library: /usr/lib/x86_64-linux-gnu/libtcl8.6.so
checking for tclConfig.sh at /usr/lib/x86_64-linux-gnu/tcl8.6... found
using tclConfig.sh in: /usr/lib/x86_64-linux-gnu/tcl8.6/
checking for Tcl executable in /usr ...
using Turbine Tcl executable: /usr/bin/tclsh8.6
checking for /usr/include/tcl/tcl.h... yes
./configure: line 3581: [: ==: unary operator expected
using Tcl include: /usr/include/tcl/tcl.h
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... no
Adding to PATH: /usr/share/R/../../bin
checking for /usr/share/R/include/R.h... yes
checking for /usr/local/lib/R/site-library/RInside/include/RInside.h... yes
checking for /usr/local/lib/R/site-library/Rcpp/include/Rcpp.h... yes
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ accepts -g... (cached) yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating settings.mk
config.status: creating config.h

Everything seems in order except for ./configure: line 3581: [: ==: unary operator expected. The build then fails as follows:

$ make install
swig -c++ -pkgversion 0.1 EQR.i
CC -c -g -O0 -fPIC -std=c++0x -I/usr/include/tcl -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/include -I/usr/local/lib/R/site-library/RInside/include  -g -O0 -fPIC -std=c++0x -I/usr/include/tcl -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/include -I/usr/local/lib/R/site-library/RInside/include  \
    EQR_wrap.cxx
make: CC: Command not found
Makefile:22: recipe for target 'EQR_wrap.o' failed
make: *** [EQR_wrap.o] Error 127

Please let me know if you spot anything that can help me fix this.

jozik commented 5 years ago

Could you try to use this streamlined version for your configure: ./configure --prefix=/opt/EQ-R --with-tcl=/usr --with-r=/usr/share/R and let us know what you see?

jozik commented 5 years ago

Justin's fix should address your issue. Let us know if otherwise.