techblue / jmagick

GNU Lesser General Public License v2.1
186 stars 84 forks source link

master branch - compilation on linux is broken #41

Open nopsenica opened 6 years ago

nopsenica commented 6 years ago

Commit db0e6d717c5b7e48db88db3a275f101327f5ed8b (8a68587eb12c9913f2a1af8bda7cf8c8c0b37953) broke compilation on linux.

nordfalk commented 6 years ago

Thanks for reporting this. Can you provide some (all, actually) details on what is broken?

ghost commented 6 years ago

We are currently building without issues on CentOS for our production servers with this commit in place. @nopsenica, which distro are you using?

nopsenica commented 6 years ago

I have checked with ScientificLinux 6 (i.e. CentOS 6) and CentOS 7. I will provide build output.

nopsenica commented 6 years ago

"git clone" followed by build attempt, the way it is specified by .spec file, fails:

build-c7:~/src# git clone https://github.com/techblue/jmagick.git
Cloning into 'jmagick'...
remote: Counting objects: 1045, done.
remote: Total 1045 (delta 0), reused 0 (delta 0), pack-reused 1045
Receiving objects: 100% (1045/1045), 1016.35 KiB | 822.00 KiB/s, done.
Resolving deltas: 100% (618/618), done.
build-c7:~/src# cd jmagick/
build-c7:~/src/jmagick# autoconf
configure.ac:381: error: possibly undefined macro: AC_DISABLE_STATIC
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:382: error: possibly undefined macro: AC_PROG_LIBTOOL
build-c7:~/src/jmagick# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
build-c7:~/src/jmagick# 

The same thing happens on EL6 and Fedora 26.

Problem is removal of files in commit 8a68587eb12c9913f2a1af8bda7cf8c8c0b37953. Without that commit, build on linux succeeds.

ghost commented 6 years ago

sudo yum install libtool

Also, I would recommend using autoreconf instead of autoconf.

autoreconf --force --install automake --add-missing ./configure

ghost commented 6 years ago

Sorry for the confusion! Didn't realize that .spec file had outdated instructions.

Let us know if that works for your system; PR #42 updates the .spec file with these instructions.

nopsenica commented 6 years ago

Unfortunatelly, build is still broken:


build-c7:~/src# git clone https://github.com/techblue/jmagick.git
Cloning into 'jmagick'...
remote: Counting objects: 1099, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 1099 (delta 1), reused 8 (delta 1), pack-reused 1089
Receiving objects: 100% (1099/1099), 1.02 MiB | 806.00 KiB/s, done.
Resolving deltas: 100% (658/658), done.
build-c7:~/src# cd jmagick/
build-c7:~/src/jmagick# autoreconf --force --install
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
build-c7:~/src/jmagick# automake --add-missing
configure.ac: error: no proper invocation of AM_INIT_AUTOMAKE was found.
configure.ac: You should verify that configure.ac invokes AM_INIT_AUTOMAKE,
configure.ac: that aclocal.m4 is present in the top-level directory,
configure.ac: and that aclocal.m4 was recently regenerated (using aclocal)
configure.ac:5: installing './config.guess'
configure.ac:5: installing './config.sub'
automake: error: no 'Makefile.am' found for any configure output
nordfalk commented 6 years ago

Try autoreconf --force --install automake --add-missing ./configure

ghost commented 6 years ago

@nopsenica, could you please post the output of autoreconf --version and automake --version?

On the system I'm using where it builds successfully:

autoreconf (GNU Autoconf) 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.
automake (GNU automake) 1.15
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Tom Tromey <tromey@redhat.com>

I suspect the version of one or both of those autotools programs is too old.

ghost commented 6 years ago

Oh, and please include the output of libtoolize --version too.

On our system:

libtoolize (GNU libtool) 2.4.6.35-f003-dirty
Written by Gary V. Vaughan <gary@gnu.org>, 2003

Copyright (C) 2016 Free Software Foundation, Inc.
nopsenica commented 6 years ago

Package versions are CentOS 7 defaults:

autoreconf: 2.69

autoreconf (GNU Autoconf) 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.

automake: 1.15

automake (GNU automake) 1.15
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Tom Tromey <tromey@redhat.com>
       and Alexandre Duret-Lutz <adl@gnu.org>.

libtoolize: 2.4.2

libtoolize (GNU libtool) 2.4.2
Written by Gary V. Vaughan <gary@gnu.org>, 2003

Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ghost commented 6 years ago

Interesting. Apparently our build system is getting the same error and discarding it.

Running ./configure afterwards should work. I'll look into removing the extraneous errors from the build process, but could you try running

./configure
make clean
make

and see if it successfully builds?

nopsenica commented 6 years ago

Yes, when I do all the build stages manually, it builds successfully despite errors reported by autoreconf/automake. It would be nice if that errors can be suppressed, though.

ghost commented 6 years ago

I'll look into that tomorrow and see if I can get a PR in that suppresses the errors.

nordfalk commented 6 years ago

Sorry, I forgot everything :-) It this OK now, can I close the issue?

stutily commented 6 years ago

If it's any use, here's what I am doing to get a working build with a clean CentOS 7, latest master and IM 7.0.7

[root@99270eef11fc jmagick]# autoreconf --force --install
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
[root@99270eef11fc jmagick]# automake --add-missing
configure.ac: error: no proper invocation of AM_INIT_AUTOMAKE was found.
configure.ac: You should verify that configure.ac invokes AM_INIT_AUTOMAKE,
configure.ac: that aclocal.m4 is present in the top-level directory,
configure.ac: and that aclocal.m4 was recently regenerated (using aclocal)
configure.ac:5: installing './config.guess'
configure.ac:5: installing './config.sub'
automake: error: no 'Makefile.am' found for any configure output
[root@99270eef11fc jmagick]# echo $?
1
[root@99270eef11fc jmagick]#

(so in my Dockerfile this is part of I ignore the errors and the exit code)

configure will then look like it runs OK but if you check the output carefully I have

checking for MagickWand-config... /usr/bin/MagickWand-config
Package MagickWand was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickWand.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickWand' found

and so on - and the resulting build does not work

To fix that I do

PKG_CONFIG_PATH=/usr/lib/pkgconfig/ ./configure  ....
checking for MagickWand-config... /usr/bin/MagickWand-config
checking MagickWand/MagickWand.h usability... yes
checking MagickWand/MagickWand.h presence... yes

and get a working build - I think it might be possible to fix that in configure.ac

note - I've not tried the RPM build with the spec file but can do so

swrdfish commented 6 years ago

I am getting the following error while trying to compile on ubuntu:

$ PKG_CONFIG_PATH=/usr/lib/pkgconfig/ ./configure --with-magick-inc-dir=/usr/local/include/ImageMagick-7/ --with-magick-lib-dir=/usr/local/lib/ImageMagick-7/
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for gcc... gcc
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 gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for a BSD-compatible install... /usr/bin/install -c
checking for getconf... /usr/bin/getconf
checking whether large file support needs explicit enabling... no
checking for X... libraries , headers 
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 jni.h usability... yes
checking jni.h presence... yes
checking for jni.h... yes
checking for java... /usr/lib/jvm/java-8-oracle/bin/java
checking for javac... /usr/lib/jvm/java-8-oracle/bin/javac
checking for javah... /usr/lib/jvm/java-8-oracle/bin/javah
checking for jar... /usr/lib/jvm/java-8-oracle/bin/jar
checking for javadoc... /usr/lib/jvm/java-8-oracle/bin/javadoc
checking for MagickWand-config... /usr/local/bin/MagickWand-config
checking MagickWand/MagickWand.h usability... yes
checking MagickWand/MagickWand.h presence... yes
checking for MagickWand/MagickWand.h... yes
checking MagickCore/MagickCore.h usability... yes
checking MagickCore/MagickCore.h presence... yes
checking for MagickCore/MagickCore.h... yes
checking for NewPixelWand in -lMagickWand-7.Q16HDRI... yes
checking for ConstituteImage in -lMagickCore-7.Q16HDRI... no
configure: error: 'Unable to find ImageMagick library: MagickCore-7.Q16HDRI'

any ideas?

ghost commented 6 years ago

/usr/local/bin/MagickWand-config is telling the configure script to look for MagickCore-7.Q16HDRI library .so file and it cannot find it. Can you verify it exists on the linker path and has exported the ConstituteImage function?

swrdfish commented 6 years ago

Yes it does exist.

$ ldconfig -v 2>/dev/null | grep -v ^$'\t'
/usr/lib/x86_64-linux-gnu/libfakeroot:
/lib/i386-linux-gnu:
/usr/lib/i386-linux-gnu:
/usr/local/lib:
/lib/x86_64-linux-gnu:
/usr/lib/x86_64-linux-gnu:
/usr/lib/x86_64-linux-gnu/mesa-egl:
/usr/lib/x86_64-linux-gnu/mesa:
/lib:
/usr/lib:
$ ls /usr/local/lib/
ImageMagick-7.0.7                 libopencv_calib3d.so.3.3.0     libopencv_imgcodecs.so.3.3.0  libopencv_stitching.so.3.3.0
libMagick++-7.Q16HDRI.a           libopencv_core.so              libopencv_imgproc.so          libopencv_superres.so
libMagick++-7.Q16HDRI.la          libopencv_core.so.3.3          libopencv_imgproc.so.3.3      libopencv_superres.so.3.3
libMagick++-7.Q16HDRI.so          libopencv_core.so.3.3.0        libopencv_imgproc.so.3.3.0    libopencv_superres.so.3.3.0
libMagick++-7.Q16HDRI.so.4        libopencv_dnn.so               libopencv_ml.so               libopencv_videoio.so
libMagick++-7.Q16HDRI.so.4.0.0    libopencv_dnn.so.3.3           libopencv_ml.so.3.3           libopencv_videoio.so.3.3
libMagickCore-7.Q16HDRI.a         libopencv_dnn.so.3.3.0         libopencv_ml.so.3.3.0         libopencv_videoio.so.3.3.0
libMagickCore-7.Q16HDRI.la        libopencv_features2d.so        libopencv_objdetect.so        libopencv_video.so
libMagickCore-7.Q16HDRI.so        libopencv_features2d.so.3.3    libopencv_objdetect.so.3.3    libopencv_video.so.3.3
libMagickCore-7.Q16HDRI.so.6      libopencv_features2d.so.3.3.0  libopencv_objdetect.so.3.3.0  libopencv_video.so.3.3.0
libMagickCore-7.Q16HDRI.so.6.0.0  libopencv_flann.so             libopencv_photo.so            libopencv_videostab.so
libMagickWand-7.Q16HDRI.a         libopencv_flann.so.3.3         libopencv_photo.so.3.3        libopencv_videostab.so.3.3
libMagickWand-7.Q16HDRI.la        libopencv_flann.so.3.3.0       libopencv_photo.so.3.3.0      libopencv_videostab.so.3.3.0
libMagickWand-7.Q16HDRI.so        libopencv_highgui.so           libopencv_shape.so            pkgconfig
libMagickWand-7.Q16HDRI.so.6      libopencv_highgui.so.3.3       libopencv_shape.so.3.3        python2.7
libMagickWand-7.Q16HDRI.so.6.0.0  libopencv_highgui.so.3.3.0     libopencv_shape.so.3.3.0      python3.5
libopencv_calib3d.so              libopencv_imgcodecs.so         libopencv_stitching.so
libopencv_calib3d.so.3.3          libopencv_imgcodecs.so.3.3     libopencv_stitching.so.3.3
ghost commented 6 years ago

Could you please post the contents of config.log in the build directory after the failed configure is run?

swrdfish commented 6 years ago

Okay, here is the log: config.log

ghost commented 6 years ago

Interesting, it looks like your libMagickCore.so depends on libMagickWand!

Could you try changing configure.ac line 378 from

MAGICK_LIBS="`$MAGICKCONF --libs`"

to

MAGICK_LIBS="`$MAGICKCONF --libs` -lMagickWand-7.Q16HDRI"

and see if (after autoreconf) it works? If not please post the new config.log. Thanks!

For verbosity, the specific failure is due to the below compiler output during the configure process:

/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPathStart'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetViewbox'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetFont'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetStrokeColor'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `AcquireDrawingWand'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawColor'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPopPattern'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetFillPatternURL'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetStrokeDashArray'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `PixelSetPixelColor'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `PushDrawingWand'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPathClose'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `PixelSetRedQuantum'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawScale'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetTextUnderColor'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawLine'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `PopDrawingWand'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DestroyPixelWand'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetFontSize'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawTranslate'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPathMoveToAbsolute'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `PixelSetAlphaQuantum'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawAnnotation'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetStrokeAntialias'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPushDefs'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPathFinish'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DestroyMagickWand'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawRoundRectangle'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPopDefs'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetFillColor'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawComposite'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetClipPath'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawRender'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawEllipse'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawComment'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPathLineToAbsolute'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `PixelSetBlueQuantum'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetStrokeLineJoin'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPushPattern'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `PixelSetColor'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPushClipPath'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetStrokeLineCap'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawArc'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `NewMagickWandFromImage'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPopClipPath'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetClipRule'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `NewPixelWand'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawRotate'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawRectangle'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DestroyDrawingWand'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetStrokeWidth'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawPathEllipticArcAbsolute'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `DrawSetStrokePatternURL'
/usr/local/lib/libMagickCore-7.Q16HDRI.so: undefined reference to `PixelSetGreenQuantum'
swrdfish commented 6 years ago

It did not work, here is the new log: config.log

ghost commented 6 years ago

Actually, with --with-magick-lib-dir=/usr/local/lib/ImageMagick-7/ it is rewriting the MAGICK_LIBS variable I had you change. Does it work without that configure parameter?

It is inaccurate anyway since the .so files live in /usr/local/lib

swrdfish commented 6 years ago

Thanks for the correction. But it is still failing with just ./configure config.log

swrdfish commented 6 years ago

Got a solution from the following comment: https://github.com/jcupitt/libvips/issues/418#issuecomment-207514248 I had to build ImageMagick with --with-modules flag

after that I am getting the following error:

 ./configure 
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for gcc... gcc
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 gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for a BSD-compatible install... /usr/bin/install -c
checking for getconf... /usr/bin/getconf
checking whether large file support needs explicit enabling... no
checking for X... libraries , headers 
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 jni.h usability... yes
checking jni.h presence... yes
checking for jni.h... yes
checking for java... /usr/lib/jvm/java-8-oracle/bin/java
checking for javac... /usr/lib/jvm/java-8-oracle/bin/javac
checking for javah... /usr/lib/jvm/java-8-oracle/bin/javah
checking for jar... /usr/lib/jvm/java-8-oracle/bin/jar
checking for javadoc... /usr/lib/jvm/java-8-oracle/bin/javadoc
checking for MagickWand-config... /usr/local/bin/MagickWand-config
checking MagickWand/MagickWand.h usability... yes
checking MagickWand/MagickWand.h presence... yes
checking for MagickWand/MagickWand.h... yes
checking MagickCore/MagickCore.h usability... yes
checking MagickCore/MagickCore.h presence... yes
checking for MagickCore/MagickCore.h... yes
checking for NewPixelWand in -lMagickWand-7.Q16HDRI... yes
checking for ConstituteImage in -lMagickCore-7.Q16HDRI... yes
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking for gawk... gawk
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
configure: creating ./config.status
config.status: creating Make.def
config.status: executing libtool commands
sed: can't read ./ltmain.sh: No such file or directory
mv: cannot stat 'libtoolT': No such file or directory
cp: cannot stat 'libtoolT': No such file or directory
chmod: cannot access 'libtool': No such file or directory
ghost commented 6 years ago

Glad you were able to find a solution to the linker error! Please revert the change I asked you to make in configure.ac and try running

autoreconf --force --install
automake --add-missing
./configure
swrdfish commented 6 years ago

I did run automake --add-missing before but it throws the following error:

configure.ac: error: no proper invocation of AM_INIT_AUTOMAKE was found.
configure.ac: You should verify that configure.ac invokes AM_INIT_AUTOMAKE,
configure.ac: that aclocal.m4 is present in the top-level directory,
configure.ac: and that aclocal.m4 was recently regenerated (using aclocal)
configure.ac:5: installing './config.guess'
configure.ac:5: installing './config.sub'
configure.ac:452: error: required file './ltmain.sh' not found
automake: error: no 'Makefile.am' found for any configure output

But that was resolved by running libtoolize before running automake.

Thanks for the help. :smiley:

nordfalk commented 5 years ago

Happy to hear it works. If you manage to do a pull request with better instructions on how to build then I'd be happy to review the changes and merge it. Until that I'll keep this issue open as a sort of knowledge base/build discussion forum