I) Windows using plain makefiles
----------------------------------------
-a) Using the GNU MingW32 or GNU Cygwin32 compilers
+a) Using the GNU MinGW32 or GNU CygWin32 compilers
You'll need the compiler itself which is available from
http://www.cygwin.com
-When using MingW32 you'll need a few of the tools that
-are either shipped separately or only as part of the
-Cygwin32 toolchain. First and foremost, you'll need
+When using MingW32 you'll need GNU make which is part of
+part of the CygWin32 toolchain and is also available as
+a stand alone port without the infamous Cygwin.dll from
-make.exe
-byacc.exe
-
-make.exe is also available from
http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32
+The makefile has small problems with Cygwin´s tools
+so it is recommended not to use these (but MingGW32
+and its make.exe).
+
-> Set your path so that it includes the directory
where your compiler and tools reside
-> Assume that you installed the wxWindows sources
to c:\wxWin\include\wx\msw\setup.h
-> Edit c:\wxWin\include\wx\msw\setup.h so that
most features are enabled (i.e. defined to 1) with
- #define wxUSE_SOCKETS 1
+ #define wxUSE_ODBC 0
+ #define wxUSE_SOCKETS 0
#define wxUSE_HTML 1
#define wxUSE_THREADS 1
- #define wxUSE_FS_INET 1
+ #define wxUSE_FS_INET 0
#define wxUSE_FS_ZIP 1
#define wxUSE_BUSYINFO 1
#define wxUSE_DYNLIB_CLASS 1
#define wxUSE_ZIPSTREAM 1
+ #define wxUSE_LIBJPEG 1
+ #define wxUSE_LIBPNG 1
- and disbale iostreams with
+ and iostreams ares disabled with
#define wxUSE_STD_IOSTREAM 0
-> type: cd c:\wxWin\src\msw
-> type: make -f makefile.g95
-II) Unix using plain makefiles.
-----------------------------------------
+II) Unix ports
+--------------
+
+Building wxGTK or wxMotif completely without configure
+won't ever work, but there is now a new makefile system
+that works without libtool and automake, using only
+configure to create what is needed.
+
+In order to create configure, you need to have the
+GNU autoconf package (version 2.13 or 2.14) installed
+on your system and type run "autoconf" in the base
+directory (or run the autogen.sh script in the same
+directory, which just calls autoconf).
Set WXWIN environment variable to the base directory such
-as ~/wxWindows
+as ~/wxWindows (this is actually not really needed).
-> type: export WXWIN=~/wxWindows
-
-Edit ~/wxWindows/src/make.env as you wish.
--> type: cd ~/wxWindows/src/gtk
--> type: cp ./setup0.h setup.h
--> type: make -f makefile.unx gtk
--> pray
+-> type: md mybuild
+-> type: cd mybuild
+-> type: ../configure --with-motif
+or type: ../configure --with-gtk
+-> type: make
+-> type: su <type root password>
+-> type: make install
+-> type: ldconfig
+-> type: exit
+
+Call configure with --disable-shared to create a static
+library. Calling "make uninstall" will remove the installed
+library and "make dist" will create a distribution (not
+yet complete).
III) Windows using configure
----------------------------------------
Of course, you can also build the library using plain makefiles (see
section I).
-IV) Unix using configure
-----------------------------------------
-
-a) You have all the newest and greatest GNU tools installed on your system
-and in the same directory hierachy (e.g. either all tools in /usr or all
-in /usr/local), these tools are:
-- GNU libtool 1.2e (1.3 doesn't work here)
-- GNU autoconf 2.13 (including autoheader 2.13)
-- GNU automake 1.4 (including aclocal 1.4)
-and possibly but not forcibly
-- GNU make 3.76.1
-- GNU C++ (EGCS)
-
--> Go to the base directory
--> type: ./autogen.sh
-
-b) You don't know what autos are and have no driver's licence anyway:
-
--> Go to the testconf directory
--> type: ./apply
-
-a+b) Then proceed in either case with:
-
--> Choose a directory name that seems fit for building wxWindows, e.g. mybuild
--> Go the base directory
--> type: mkdir mybuild
--> type: cd mybuild
--> type: ../configure --with-gtk
-or type: ../configure --with-motif
-or type: ../configure --with-wine
--> type make
--> drink lots of coffee and go shopping
-
-
V) MacOS
----------------------------------------
To cross compile the windows library, do
-> cd win32
+Now run configure. There are two ways to do this
+-> ../configure --host=i586-mingw32 --build=i586-linux --with-mingw \
+ --enable-dnd=no
+where --build= should read whatever platform you're building on. Configure
+will notice that build and host platforms differ, and automatically prepend
+i586-mingw32- to gcc, ar, ld, etc (make sure they're in the PATH!).
+The other way to run configure is by specifying the names of the binaries
+yourself:
-> CC=i586-mingw32-gcc CXX=i586-mingw32-g++ RANLIB=i586-mingw32-ranlib \
DLLTOOL=i586-mingw32-dlltool LD=i586-mingw32-ld NM=i586-mingw32-nm \
../configure --host=i586-mingw32 --with-mingw --enable-dnd=no
-(assuming you're using mingw32)
-
-The important thing to notice here is that we suply configure with the names
-of all the non-default binutils (make sure they're in the PATH!), and that
-we tell configure to build for the host platform i586-mingw32.
+(all assuming you're using mingw32)
Drag'n'drop is disabled because mingw32 lacks (AFAIK) OLE headers.
Configure will conclude that shared libraries are out of the question and
link it in... you have to supply an object file ]
- dynamic libraries
- static executables are HUGE -- there must be room for improvement.
+