gnunet-developers
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]