[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-developers] Windows port
From: |
N. Durner |
Subject: |
[GNUnet-developers] Windows port |
Date: |
Mon, 1 Mar 2004 20:59:52 +0100 |
User-agent: |
Mutt/1.5.5.1+cvs20040105i |
Hi,
I'm happy to announce that the Windows port looks promising now.
How it works
============
There are two projects that help to port Linux software to Windows:
Cygwin and MinGW.
Cygwin tries to emulate a (more or less) complete Linux environment
under Windows, MinGW is just GNU-tools, libraries and headers.
This mail describes the MinGW port.
As said above, MinGW provides everything needed to build GNUnet under
Windows, but it doesn't help with the differences between Unix and
Windows. The path format is different and Stdlib-Functions behave
different (don't set errno, for example) or are completely missing.
The files src/util/win*.c provide POSIX compliant alternatives (at
least I hope so ;-) to these misbehaving or missing functions.
It's important that GNUnet developers and contributors use these
function names in uppercase ("FOPEN", "CONNECT" etc.). They are
#defined in gnunet_util.h (will change - see Mantis #630) depending
on the platform as the real lowercase function names (Linux and *BSD)
or as the names of replacement functions ("win_fopen", "win_connect"
etc.). There are just two exceptions: GN_FREAD and GN_FWRITE.
This is the complete list so far:
CREAT, FOPEN, OPENDIR, CHDIR, FSTAT, RMDIR, ACCESS, CHMOD, PIPE,
REMOVE, RENAME, STAT, UNLINK, WRITE, READ, GN_FREAD, GN_FWRITE,
STRERROR, ACCEPT, BIND, CONNECT, GETPEERNAME, GETSOCKNAME,
GETSOCKOPT, LISTEN, RECV, RECVFROM, SELECT, SEND, SENDTO,
SETSOCKOPT, SHUTDOWN, SOCKET, GETHOSTBYADDR and GETHOSTBYNAME
Setting up MinGW
================
1. Get "MSYS", "MinGW" and the "MSYS Developer Tool Kit" from
http://www.mingw.org/download.shtml
2. Install MSYS (c:\mingw)
3. Install MinGW (c:\mingw\mingw)
4. Install the MSYS DTK (c:\mingw)
5. Get OpenSSL ("Binaries" and "Developer files") from
http://gnuwin32.sourceforge.net/packages/openssl.htm
and unzip it into the MinGW directory (c:\mingw\mingw)
6. Get Pthreads:
1. Save
ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/libpthreadGC.a
as libpthread.a into the lib directory
(c:\mingw\mingw\lib\libpthread.a)
2. Save
ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/pthreadGC.dll
into the bin directory (c:\mingw\mingw\bin)
3. Download all header files from
ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/include/
to the include directory (c:\mingw\mingw\include)
7. Get Autoconf 2.57 or later from
http://www.gnu.org/directory/autoconf.html,
build and install it
8. Get Libtool 1.5a or later from
http://www.gnu.org/software/libtool/libtool.html,
build and install it
9. Get GDBM from
http://sourceforge.net/projects/mingwrep/
and unzip it into the MinGW directory (c:\mingw\mingw)
10. If it is invoked through the MSYS standard shell, the build
system opens a separate console window for each GCC call.
To avoid this, call bin/sh.exe with the "--login" parameter
directly.
What's missing
==============
gcry, the SMTP transport and gnunet-testbed
Questions
=========
- Non-stripped binaries are huge under Windows. The GNUnet
executeables and libraries take 18 MB. Without debug-information
they only take 1,6 MB.
Would it be okay to make two separate prebuilt versions of GNUnet
("Debug" with and "Release" without debug information) available
for download?
- I'd like to include third-party libraries licensed under LGPL or
BSD-license in the Windows package. Would that be okay?
Happy testing,
Nils
- [GNUnet-developers] Windows port,
N. Durner <=