r21789 - gnucash/trunk/packaging/win32 - [Win32 build] Enable libxslt to be built in a cross-compile environment.

Christian Stimming christian at cstimming.de
Thu Dec 29 16:39:36 EST 2011


Am Donnerstag, 29. Dezember 2011, 21:27:45 schrieb Geert Janssens:
> Op donderdag 29 december 2011 14:50:56 schreef Christian Stimming:
> > Author: cstim
> > Date: 2011-12-29 14:50:56 -0500 (Thu, 29 Dec 2011)
> > New Revision: 21789
> > Trac: http://svn.gnucash.org/trac/changeset/21789
> > 
> > Modified:
> >    gnucash/trunk/packaging/win32/install-impl.sh
> > 
> > Log:
> > [Win32 build] Enable libxslt to be built in a cross-compile environment.
> > 
> > Modified: gnucash/trunk/packaging/win32/install-impl.sh
> > ===================================================================
> > --- gnucash/trunk/packaging/win32/install-impl.sh	2011-12-29 19:50:40
> > UTC
> > (rev 21788) +++ gnucash/trunk/packaging/win32/install-impl.sh	
2011-12-29
> > 19:50:56 UTC (rev 21789) @@ -1139,9 +1139,15 @@
> > 
> >      then
> >      
> >          echo "libxslt already installed in $_LIBXSLT_UDIR. 
> >          skipping."
> >      
> >      else
> > 
> > -        [ "$CROSS_COMPILE" = "yes" ] && die "xsltproc unavailable"
> > -        #wget_unpacked ${LIBXSLT_ICONV_URL} ${DOWNLOAD_DIR}
> > ${LIBXSLT_DIR} -        #wget_unpacked ${LIBXSLT_ZLIB_URL}
> > ${DOWNLOAD_DIR} ${LIBXSLT_DIR} +        if [ "$CROSS_COMPILE" = "yes"
> > ]; then
> > +           
> > _MORE_CPPFLAGS="-I${_LIBXSLT_UDIR}/iconv-1.9.2.win32/include" +        
> >    _MORE_LDFLAGS="-L${_LIBXSLT_UDIR}/lib"
> > +            wget_unpacked ${LIBXSLT_ICONV_URL} ${DOWNLOAD_DIR}
> > ${LIBXSLT_DIR} +            wget_unpacked ${LIBXSLT_ZLIB_URL}
> > ${DOWNLOAD_DIR} ${LIBXSLT_DIR} +        else
> > +            _MORE_CPPFLAGS=""
> > +            _MORE_LDFLAGS=""
> > +        fi
> > 
> >          wget_unpacked $LIBXSLT_SRC_URL $DOWNLOAD_DIR $TMP_DIR
> >          assert_one_dir $TMP_UDIR/libxslt-*
> > 
> > @@ -1150,7 +1156,7 @@
> > 
> >              ./configure ${HOST_XCOMPILE} \
> >              
> >                  --prefix=${_LIBXSLT_UDIR} \
> >                  --with-python=no \
> > 
> > -                --with-libxml-prefix=${_GNOME_UDIR}
> > CPPFLAGS="${GNUTLS_CPPFLAGS}" LDFLAGS="${GNUTLS_LDFLAGS}" +
> > --with-libxml-prefix=${_GNOME_UDIR} CPPFLAGS="${GNUTLS_CPPFLAGS}
> > ${_MORE_CPPFLAGS}" LDFLAGS="${GNUTLS_LDFLAGS} ${_MORE_LDFLAGS}" make
> > 
> >              make install
> >          
> >          qpopd
> 
> Your commit went in just ahead of mine regarding libxslt building.
> 
> Just for your information, libxslt doesn't build natively either due to a
> missing iconv.h include file. I fixed the build by adding GNOME_CPPFLAGS and
> GNOME_LDFLAGS. I haven't been able to test it so yet as I'm waiting for a
> dist.sh run after some fixes in there.
> 
> After sending in my commit (which adds your new parameters at the end) I
> wondered if it would not be sufficient to use the GNOME_CPPFLAGS and
> GNOME_LDFLAGS for cross-compiling as well ? Or do you think you explicitly
> need to install your own zlib and iconv libraries for libxslt ?

No, I think you were right and I was wrong. The old separate zlib and iconv 
libraries must be a leftover from when libxslt was downloaded in a pre-
compiled version. However, in our resulting gnucash executable there must be 
only one version of zlib and iconv, and all other linked-in libraries must 
have been linking against this very version instead of multiple different 
versions. Hence, the separate DLL was a bad choice to begin with. I've removed 
my flags again.

Regards,

Christian



More information about the gnucash-devel mailing list