- From: Richard Atterer <libwww@list.atterer.net>
- Date: Thu, 4 Oct 2001 22:26:37 +0200
- To: www-lib@w3.org
- Message-ID: <20011004222637.A2912@atterer.net>
Hello, is anybody with write access to the CVS reading this list? I'd really like this patch to go into libwww! I have been working on getting libwww to compile with mingw <http://www.mingw.org/> for the last days. The resulting patch (against Sep 28 CVS) is attached. The advantage of using mingw rather than Cygwin is that the resulting programs do not need the Cygwin DLL (which is quite large!) to run. I have compiled static libwww libraries both by cross-compiling from Linux, and native under Cygwin. To do the latter, the following steps are needed: - Get Cygwin from <http://sources.redhat.com/cygwin/>. Apart from the usual packages, don't forget to install the packages mingw, mingw runtime, w32api, perl, m4, auto*. - (For those who need it: Compile and install SSL and zlib for MinGW. You can't use the Cygwin versions. I haven't tried this.) - Get the latest libwww CVS version - see <http://www.w3.org/Library/Distribution.html#Snapshot> or <http://www.w3.org/Library/cvs.html> - The following files in libwww/config need to be added/updated, otherwise libtool will choke on the mingw target: config.guess config.sub depcomp install-sh ltmain.sh missing mkinstalldirs. Libtool doesn't come with Cygwin, so get it from <http://www.gnu.org/software/libtool/>. Make sure to configure and install it with --prefix=/usr, or aclocal won't work. The files are in /usr/share/automake and /usr/share/libtool. - "cd libwww" - "sh libwww-mingw.diff" to apply the patch - "export CC='gcc -mno-cygwin -fnative-struct'" to instruct Cygwin to produce MinGW32 binaries. The -fnative-struct may not be needed, depending on whether you also use it for the rest of your application. - Go through the usual CVS bootstrap procedure <http://www.w3.org/Library/cvs.html#Boot> - "./configure --target=i586-pc-mingw32 ..." and compile/install Using the resulting libwww, I have successfully compiled and used the LoadToFile example. This patch explicitly *disables* generation of DLLs in configure.in, because the only effect of enabling it is that all files are compiled twice. Some further work would be necessary to get DLLs: - Read libtool docs :-) - Remove my AC_DISABLE_SHARED in configure.in - Add LIBS="$LIBS -no-unused" in configure.in for mingw - In libwww/Library/src/Makefile.am, add lines like: libwwwcore_la_LIBADD = -L.libs -lwwwutils to indicate dependencies between the libraries. - Order the libs in lib_LTLIBRARIES so that depended-on libs come first. - Prepend "__declspec(dllimport)" or "__declspec(dllexport)" to certain symbols in the source (e.g. WWW_TraceFlag) - Provide a ws2_32.dll (WinSock 2) - libtool demands this, but doesn't like the native M$ DLL. I don't know how to fix this. All the best, Richard ---------------------------------------------------------------------- Legal part: (from <http://www.w3.org/PATCHES.html>) W3C (MIT, INRIA, Keio) is hereby permitted to distribute these materials under W3C Software and Document licenses. Furthermore: 1. I vouch that I have all rights necessary to contribute the materials in a way that does not violate copyright, patent, and trademark rights; contractual obligations, or libel and export control regulations. 2. I agree that all contributed materials will be governed by the W3C Software or Document licenses. 3. W3C will retain attribution of authorship. The W3C makes no a-priori commitment to support contributions. I the undersigned represent that I own the copyright. (My PGP signature will have to do!-) -- __ _ |_) /| Richard Atterer | CS student at the Technische | GnuPG key: | \/¯| http://atterer.net | Universität München, Germany | 0x888354F7 ¯ ´` ¯
Attachments
- text/plain attachment: libwww-mingw.diff
Received on Thursday, 4 October 2001 19:14:32 UTC