[redland-dev] Rasqal 0.9.29 problems with configure under mingw (MXE)

info at mycontent.gr info at mycontent.gr
Fri Dec 28 07:27:21 EST 2012


Dear all,

I am trying to cross-compile Rasqal 0.9.29 using mingw32 and the M Cross
Environment (mxe.cc) under Ubuntu LTS 12.04.
The MXE already provides PCRE, libgcrypt and libxml2. I have successfully
compiled Raptor 2.0.8 and installed it under the mingw32 tree.
The ultimate goal is to cross-compile Sonic Visualiser 2.0 for Windows
(which needs Redland, which needs Rasqal, which needs Raptor) and hopefully
use this experience to propose MXE packages for the three Redland libraries
(to help others who might want to cross-compile them for Windows). As a side
note, I've successfully compiled Raptor, Rasqal and Redland (and Sonic
Visualiser) under Linux. 

I've been running into three problems:
1. The ./configure script does not find PCRE and libgcrypt automatically. It
also igonres the --with-pcre-config, --with-libgcrypt-config options
("unrecognized options").
2. The ./configure script fails "checking for ceil, floor and round". As a
temporary workaround, I've commented out lines 15274,5,6 of the script (the
ones that make it fail upon encoutering this error). This allows configure
to complete, but doesn't seem to be the right solution... anyway, we didn't
get too far:
3. Make fails because 'struct timezone' (which is defined in time.h) is
redefined in win32_rasqal_config.h.

The command I've used to configure Rasqal is:
    ./configure --host=i686-pc-mingw32 --prefix=/opt/mxe/usr/i686-pc-mingw32
\
                --with-sysroot=/opt/mxe/usr/i686-pc-mingw32/bin/ \
 
--with-pcre-config=/opt/mxe/usr/i686-pc-mingw32/bin/pcre-config \
 
--with-libgcrypt-config=/opt/mxe/usr/i686-pc-mingw32/bin/libgcrypt-config \
 
--with-xml2-config=/opt/mxe/usr/i686-pc-mingw32/bin/xml2-config \
                --with-decimal=none --enable-query-languages=sparql \
                --enable-static --disable-shared \
                PKG_CONFIG=/opt/mxe/usr/bin/i686-pc-mingw32-pkg-config

I'm attaching the detailed output (rasqal_compile_problems.txt).

Any ideas and help would be greatly appreciated!

Regards,
George Christodoulides

george at ubuntu:~/rasqal-0.9.29$ ./configure --host=i686-pc-mingw32
--prefix=/opt/mxe/usr/i686-pc-mingw32 \
>             --with-sysroot=/opt/mxe/usr/i686-pc-mingw32/bin/ \
>
--with-pcre-config=/opt/mxe/usr/i686-pc-mingw32/bin/pcre-config \
>
--with-libgcrypt-config=/opt/mxe/usr/i686-pc-mingw32/bin/libgcrypt-config \
>
--with-xml2-config=/opt/mxe/usr/i686-pc-mingw32/bin/xml2-config \
>             --with-decimal=none --enable-query-languages=sparql \
>             --enable-static --disable-shared \
>             PKG_CONFIG=/opt/mxe/usr/bin/i686-pc-mingw32-pkg-config
configure: WARNING: unrecognized options: --with-pcre-config,
--with-libgcrypt-config
configure: loading site script
/opt/mxe/usr/i686-pc-mingw32/share/config.site
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for i686-pc-mingw32-strip... i686-pc-mingw32-strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... (cached) x86_64-unknown-linux-gnu
checking host system type... i686-pc-mingw32
checking whether build environment is sane... yes
checking for style of include used by make... GNU
checking for i686-pc-mingw32-gcc... i686-pc-mingw32-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-pc-mingw32-gcc accepts -g... yes
checking for i686-pc-mingw32-gcc option to accept ISO C89... none needed
checking dependency style of i686-pc-mingw32-gcc... gcc3
checking for i686-pc-mingw32-ar... i686-pc-mingw32-ar
checking the archiver (i686-pc-mingw32-ar) interface... ar
checking for i686-pc-mingw32-gcc... (cached) i686-pc-mingw32-gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether i686-pc-mingw32-gcc accepts -g... (cached) yes
checking for i686-pc-mingw32-gcc option to accept ISO C89... (cached) none
needed
checking dependency style of i686-pc-mingw32-gcc... (cached) gcc3
checking whether i686-pc-mingw32-gcc and cc understand -c and -o together...
yes
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by i686-pc-mingw32-gcc...
/opt/mxe/usr/i686-pc-mingw32/bin/ld
checking if the linker (/opt/mxe/usr/i686-pc-mingw32/bin/ld) is GNU ld...
yes
checking for BSD- or MS-compatible name lister (nm)...
/opt/mxe/usr/bin/i686-pc-mingw32-nm -B
checking the name lister (/opt/mxe/usr/bin/i686-pc-mingw32-nm -B)
interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to
i686-pc-mingw32 format... func_convert_file_nix_to_w32
checking how to convert x86_64-unknown-linux-gnu file names to toolchain
format... func_convert_file_noop
checking for /opt/mxe/usr/i686-pc-mingw32/bin/ld option to reload object
files... -r
checking for i686-pc-mingw32-objdump... i686-pc-mingw32-objdump
checking how to recognize dependent libraries... file_magic ^x86 archive
import|^x86 DLL
checking for i686-pc-mingw32-dlltool... i686-pc-mingw32-dlltool
checking how to associate runtime and link libraries...
func_cygming_dll_for_implib
checking for i686-pc-mingw32-ar... (cached) i686-pc-mingw32-ar
checking for archiver @FILE support... @
checking for i686-pc-mingw32-strip... (cached) i686-pc-mingw32-strip
checking for i686-pc-mingw32-ranlib... i686-pc-mingw32-ranlib
checking command to parse /opt/mxe/usr/bin/i686-pc-mingw32-nm -B output from
i686-pc-mingw32-gcc object... ok
checking for sysroot... /opt/mxe/usr/i686-pc-mingw32/bin/
checking for i686-pc-mingw32-mt... no
checking for mt... mt
configure: WARNING: using cross tools not prefixed with host triplet
checking if mt is a manifest tool... no
checking how to run the C preprocessor... i686-pc-mingw32-gcc -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 dlfcn.h... no
checking for objdir... .libs
checking if i686-pc-mingw32-gcc supports -fno-rtti -fno-exceptions... no
checking for i686-pc-mingw32-gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if i686-pc-mingw32-gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if i686-pc-mingw32-gcc static flag -static works... yes
checking if i686-pc-mingw32-gcc supports -c -o file.o... yes
checking if i686-pc-mingw32-gcc supports -c -o file.o... (cached) yes
checking whether the i686-pc-mingw32-gcc linker
(/opt/mxe/usr/i686-pc-mingw32/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
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... no
checking whether to build static libraries... yes
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... none needed
checking whether yytext is a pointer... no
checking for bison... bison -y
checking for awk... (cached) mawk
checking for gnutar... no
checking for gtar... no
checking for tar... tar
checking for perl... perl
checking for echo... echo
checking for ANSI C header files... (cached) yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for errno.h... (cached) yes
checking whether time.h and sys/time.h may both be included... yes
checking for an ANSI C-conforming const... yes
checking whether byte ordering is bigendian... no
checking for getopt... yes
checking for getopt_long... yes
checking for stricmp... yes
checking for strcasecmp... yes
checking for vsnprintf... yes
checking for initstate_r... no
checking for initstate... no
checking for random_r... no
checking for random... no
checking for gmtime_r... no
checking for rand_r... no
checking for rand... yes
checking for srand... yes
checking for timegm... no
checking for gettimeofday... yes
checking whether need to declare optind... no
checking whether struct tm has tm_gmtoff field... no
checking for pkg-config... /opt/mxe/usr/bin/i686-pc-mingw32-pkg-config
checking for raptor... system 2.0.8
checking for pcre-config... no
checking for pcre-config... no
checking for pcre... not present
checking for posix regex library... no
checking regex library to use... configure: WARNING: No regex library
available - please install pcre or a POSIX regex library
none
checking mhash.h usability... no
checking mhash.h presence... no
checking for mhash.h... no
checking for mhash... no
checking for libgcrypt-config... no
checking for libgcrypt-config... no
checking gcrypt.h usability... yes
checking gcrypt.h presence... yes
checking for gcrypt.h... yes
checking for gcrypt... no
checking message digest library to use... internal
checking for libuuid... no
checking UUID library to use... internal
checking for /opt/mxe/usr/i686-pc-mingw32/bin/xml2-config... yes
checking for libxml2 library... yes - version 2.7.8
checking libxml/xmlschemas.h usability... yes
checking libxml/xmlschemas.h presence... yes
checking for libxml/xmlschemas.h... yes
checking libxml/xmlschemastypes.h usability... yes
checking libxml/xmlschemastypes.h presence... yes
checking for libxml/xmlschemastypes.h... yes
checking libxml/schemasInternals.h usability... yes
checking libxml/schemasInternals.h presence... yes
checking for libxml/schemasInternals.h... yes
checking query languages required... sparql
checking gmp.h usability... yes
checking gmp.h presence... yes
checking for gmp.h... yes
checking for mpfr.h... yes
checking for mpfr_init... no
checking for mpfr_zero_p... yes
checking for working MPFR library... no
checking for working GNU MP library... yes
checking for GNU MP library random support... yes
checking for gmp_version... yes
checking decimal libraries available...  gmp
checking decimal library to use... none
checking random approach... Internal Mersenne Twister
checking for ceil, floor and round in default libs... checking for ceil,
floor and round with -lm... configure: error: Could not find ceil, floor,
round in default libs or with -lm


============================================================================
===========
============================================================================
===========
AFTER COMMENTING OUT THE "ceil, floor, round" CHECK IN "configure"
WE GET THE FOLLOWING (ADDITIONAL) OUTPUT
============================================================================
===========
============================================================================
===========


checking for ceil, floor and round in default libs... checking for ceil,
floor and round with -lm... checking using memory signing... no
checking whether make supports nested variables... yes
checking pkg-config is at least version 0.9.0... yes
checking for gtkdoc-check... /usr/bin/gtkdoc-check
checking for gtkdoc-rebase... /usr/bin/gtkdoc-rebase
checking for gtkdoc-mkpdf... /usr/bin/gtkdoc-mkpdf
checking whether to build gtk-doc documentation... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating data/Makefile
config.status: creating docs/Makefile
config.status: creating docs/version.xml
config.status: creating scripts/Makefile
config.status: creating src/Makefile
config.status: creating src/rasqal.h
config.status: creating src/win32_rasqal_config.h
config.status: creating tests/Makefile
config.status: creating tests/algebra/Makefile
config.status: creating tests/engine/Makefile
config.status: creating tests/rdql/Makefile
config.status: creating tests/rdql/testsuite/Makefile
config.status: creating tests/laqrs/Makefile
config.status: creating tests/laqrs/syntax/Makefile
config.status: creating tests/sparql/Makefile
config.status: creating tests/sparql/bugs/Makefile
config.status: creating tests/sparql/simple/Makefile
config.status: creating tests/sparql/part1/Makefile
config.status: creating tests/sparql/examples/Makefile
config.status: creating tests/sparql/syntax/Makefile
config.status: creating tests/sparql/bound/Makefile
config.status: creating tests/sparql/survey/Makefile
config.status: creating tests/sparql/SyntaxFull/Makefile
config.status: creating tests/sparql/sort/Makefile
config.status: creating tests/sparql/ValueTesting/Makefile
config.status: creating tests/sparql/regex/Makefile
config.status: creating tests/sparql/Expr1/Makefile
config.status: creating tests/sparql/Expr2/Makefile
config.status: creating tests/sparql/ExprBuiltins/Makefile
config.status: creating tests/sparql/ExprEquals/Makefile
config.status: creating tests/sparql/SyntaxDev/Makefile
config.status: creating tests/sparql/SyntaxDev/Syntax-SPARQL/Makefile
config.status: creating tests/sparql/SyntaxDev/Syntax-SPARQL2/Makefile
config.status: creating tests/sparql/SyntaxDev/Syntax-SPARQL3/Makefile
config.status: creating tests/sparql/update/Makefile
config.status: creating tests/sparql/aggregate/Makefile
config.status: creating tests/sparql/sparql11/Makefile
config.status: creating tests/sparql/federated/Makefile
config.status: creating tests/sparql/warnings/Makefile
config.status: creating utils/Makefile
config.status: creating win32/Makefile
config.status: creating rasqal.spec
config.status: creating rasqal.rdf
config.status: creating rasqal.pc
config.status: creating src/rasqal-config
config.status: creating rasqal-src-config
config.status: creating src/rasqal_config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --with-pcre-config,
--with-libgcrypt-config

Rasqal build summary:
  RDF query languages available : rdql sparql laqrs
  RDF query languages enabled   : sparql
  Raptor version                : 2.0.8
  Decimal library               : none
  Regex library                 : none
  Message digest library        : internal
  UUID library                  : internal
  Random approach               : Internal Mersenne Twister



============================================================================
===========
============================================================================
===========
AND NOW, MAKE FAILS:
============================================================================
===========
============================================================================
===========

george at ubuntu:~/rasqal-0.9.29$ make
Making all in src
make[1]: Entering directory `/home/george/rasqal-0.9.29/src'
make  all-am
make[2]: Entering directory `/home/george/rasqal-0.9.29/src'
/bin/bash ../libtool  --tag=CC   --mode=compile i686-pc-mingw32-gcc
-DHAVE_CONFIG_H -I.   -DRASQAL_INTERNAL=1
-I/opt/mxe/usr/i686-pc-mingw32/include/raptor2     -g -O2  -DMTWIST_CONFIG
-I../libmtwist -g -O2 -MT rasqal_algebra.lo -MD -MP -MF
.deps/rasqal_algebra.Tpo -c -o rasqal_algebra.lo rasqal_algebra.c
libtool: compile:  i686-pc-mingw32-gcc -DHAVE_CONFIG_H -I.
-DRASQAL_INTERNAL=1 -I/opt/mxe/usr/i686-pc-mingw32/include/raptor2 -g -O2
-DMTWIST_CONFIG -I../libmtwist -g -O2 -MT rasqal_algebra.lo -MD -MP -MF
.deps/rasqal_algebra.Tpo -c rasqal_algebra.c -o rasqal_algebra.o
In file included from rasqal.h:116:0,
                 from rasqal_algebra.c:39:
/opt/mxe/usr/lib/gcc/i686-pc-mingw32/4.7.0/../../../../i686-pc-mingw32/inclu
de/sys/time.h:26:8: error: redefinition of 'struct timezone'
In file included from rasqal_algebra.c:29:0:
./win32_rasqal_config.h:58:8: note: originally defined here
make[2]: *** [rasqal_algebra.lo] Error 1
make[2]: Leaving directory `/home/george/rasqal-0.9.29/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/george/rasqal-0.9.29/src'
make: *** [all-recursive] Error 1




-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: rasqal_compile_problems.txt
URL: <http://lists.librdf.org/pipermail/redland-dev/attachments/20121228/b9bf9664/attachment-0001.txt>


More information about the redland-dev mailing list