]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/wine/install.txt
Virtualize showing/hiding the pages in wxBookCtrlBase.
[wxWidgets.git] / docs / wine / install.txt
index b696299648bfd3f8c301118a440fa51dd9bdb492..9a5cd5da1ad5e48505eb1a5bce7067f3642c739f 100644 (file)
@@ -1,34 +1,8 @@
 
-  !!! When sending bug reports tell us what version of wxWindows you are 
-      using (including the beta) and what compiler on what system. One 
-      example: wxWINE 2.1 snapshot 6, egcs 1.1.1, Redhat 5.0 !!!
-
-* Preparing WINE
-----------------
-
-Most C++ compilers cannot compile the WINE sources yet (this includes
-all versions of g++ and egcs) so you have to make a minimal change
-and recompile all of WINE in order to get anywhere.
-
-This change has do be applied to the /include/windef.h file, line 59
-in the section "Calling convention definitions", where the sources
-reads:
-
-#if __i386__
-
-which has to be changed into
-
-#if 0
-
-After this change, you'll have to recompile all of WINE without
-forgetting to install it. The direct consequence of this change
-is that the Win32 binary emulator won't work anymore, as the
-change disables the Windows native calling convention.
-
 * The most simple case
 -----------------------
 
-If you compile wxWindows on Linux for the first time and don't like to read 
+If you compile wxWidgets on Linux for the first time and don't like to read 
 install instructions just do (in the base dir):
 
 > ./configure --with-wine
@@ -42,7 +16,7 @@ On all variants of Unix except Linux (and maybe except *BSD), shared libraries
 are not supported out of the box due to the utter stupidity of libtool, so you'll 
 have to do this to get shared library support:
 
-> ./configure --with-wine --disable-static --enable-shared
+> ./configure --with-wine --disable-unicode --disable-static --enable-shared
 
 Then you'll have to edit the wrongly created libtool script. There are two
 important entries with respect to shared library creation, which are
@@ -63,7 +37,7 @@ Afterwards you can continue with
 > ldconfig
 > exit
 
-If you want to remove wxWindows on Unix you can do this:
+If you want to remove wxWidgets on Unix you can do this:
 
 > su <type root password>
 > make uninstall
@@ -73,10 +47,10 @@ If you want to remove wxWindows on Unix you can do this:
 * The expert case
 -----------------
 
-If you want to do some more serious cross-platform programming with wxWindows, 
+If you want to do some more serious cross-platform programming with wxWidgets, 
 such as for GTK and Motif, you can now build two complete libraries and use 
 them concurrently. For this end, you have to create a directory for each build 
-of wxWindows - you may also want to create different versions of wxWindows
+of wxWidgets - you may also want to create different versions of wxWidgets
 and test them concurrently. Most typically, this would be a version configured 
 with --enable-debug_flag and one without. Note, that only one build can currently 
 be installed, so you'd have to use local version of the library for that purpose.
@@ -128,7 +102,7 @@ g++ myfoo.cpp `wx-config --libs --cflags` -o myfoo
 * General
 -----------------------
 
-The Unix variants of wxWindows use GNU configure. If you have problems with your 
+The Unix variants of wxWidgets use GNU configure. If you have problems with your 
 make use GNU make instead.
 
 If you have general problems with installation, read my homepage at 
@@ -143,7 +117,7 @@ YOU USE AND WHAT ERROR WAS REPORTED. I know this has no effect, but I tried...
 * GUI libraries
 -----------------------
 
-wxWindows/WINE requires the WINE library to be installed on your system. 
+wxWidgets/WINE requires the WINE library to be installed on your system. 
 
 You can get the newest version of the WINE from the WINE homepage at:
 
@@ -153,18 +127,18 @@ You can get the newest version of the WINE from the WINE homepage at:
 -----------------------------
 
 Usage:
-       ./configure options
+    ./configure options
 
 If you want to use system's C and C++ compiler,
 set environment variables CC and CCC as
 
-       % setenv CC cc
-       % setenv CCC CC
-       % ./configure options
+    % setenv CC cc
+    % setenv CCC CC
+    % ./configure options
 
 to see all the options please use:
 
-       ./configure --help
+    ./configure --help
 
 The basic philosophy is that if you want to use different
 configurations, like a debug and a release version, 
@@ -188,101 +162,101 @@ i.e. if it says "--disable-threads" it means that threads
 are enabled by default.
 
 Many of the configure options have been thoroughly tested
-in wxWindows snapshot 6, but not yet all (ODBC not).
+in wxWidgets snapshot 6, but not yet all (ODBC not).
 
 You must do this by running configure with either of:
 
-        --with-wine              Use the WINE library
-       
+    --with-wine              Use the WINE library
+    
 The following options handle the kind of library you want to build.
 
-       --enable-threads        Compile without thread support. Threads
-                               support is also required for the
-                               socket code to work.
-
-       --disable-shared        Do not create shared libraries.
-
-       --disable-optimise      Do not optimise the code. Can
-                               sometimes be useful for debugging
-                               and is required on some architectures
-                               such as Sun with gcc 2.8.X which
-                               would otherwise produce segvs.
-
-       --enable-profile        Add profiling info to the object 
-                               files. Currently broken, I think.
-                               
-       --enable-no_rtti        Enable compilation without creation of
-                               C++ RTTI information in object files. 
-                               This will speed-up compilation and reduce 
-                               binary size.
-                               
-       --enable-no_exceptions  Enable compilation without creation of
-                               C++ exception information in object files. 
-                               This will speed-up compilation and reduce 
-                               binary size. Also fewer crashes during the
-                               actual compilation...
-                               
-       --enable-mem_tracing    Add built-in memory tracing. 
-                               
-       --enable-dmalloc        Use the dmalloc memory debugger.
-                               Read more at www.letters.com/dmalloc/
-                               
-       --enable-debug_info     Add debug info to object files and
-                               executables for use with debuggers
-                               such as gdb (or its many frontends).
-
-       --enable-debug_flag     Define __DEBUG__ and __WXDEBUG__ when
-                               compiling. This enable wxWindows' very
-                               useful internal debugging tricks (such
-                               as automatically reporting illegal calls)
-                               to work. Note that program and library
-                               must be compiled with the same debug 
-                               options.
+    --enable-threads        Compile with thread support. Threads
+                            support is also required for the
+                            socket code to work.
+
+    --disable-shared        Do not create shared libraries.
+
+    --disable-optimise        Do not optimise the code. Can
+                            sometimes be useful for debugging
+                            and is required on some architectures
+                            such as Sun with gcc 2.8.X which
+                            would otherwise produce segvs.
+
+    --enable-profile        Add profiling info to the object 
+                            files. Currently broken, I think.
+                
+    --enable-no_rtti        Enable compilation without creation of
+                            C++ RTTI information in object files. 
+                            This will speed-up compilation and reduce 
+                            binary size.
+                
+    --enable-no_exceptions  Enable compilation without creation of
+                            C++ exception information in object files. 
+                            This will speed-up compilation and reduce 
+                            binary size. Also fewer crashes during the
+                            actual compilation...
+                
+    --enable-mem_tracing    Add built-in memory tracing. 
+                
+    --enable-dmalloc        Use the dmalloc memory debugger.
+                            Read more at www.letters.com/dmalloc/
+                
+    --enable-debug_info     Add debug info to object files and
+                            executables for use with debuggers
+                            such as gdb (or its many frontends).
+
+    --enable-debug_flag     Define __DEBUG__ and __WXDEBUG__ when
+                            compiling. This enable wxWidgets' very
+                            useful internal debugging tricks (such
+                            as automatically reporting illegal calls)
+                            to work. Note that program and library
+                            must be compiled with the same debug 
+                            options.
 
 * Feature Options
 -------------------
 
 Many of the configure options have been thoroughly tested
-in wxWindows snapshot 6, but not yet all (ODBC not).
+in wxWidgets snapshot 6, but not yet all (ODBC not).
 
 When producing an executable that is linked statically with wxGTK
 you'll be surprised at its immense size. This can sometimes be
-drastically reduced by removing features from wxWindows that 
+drastically reduced by removing features from wxWidgets that 
 are not used in your program. The most relevant such features
 are
 
-       --without-libpng        Disables PNG image format code.
-       
-       --without-libjpeg       Disables JPEG image format code.
-       
-{      --without-odbc          Disables ODBC code. Not yet. }
-       
-        --disable-resources     Disables the use of *.wxr type
-                               resources.
-               
-       --disable-threads       Disables threads. Will also
-                               disable sockets.
-
-       --disable-sockets       Disables sockets.
-
-       --disable-dnd           Disables Drag'n'Drop.
-       
-       --disable-clipboard     Disables Clipboard.
-       
-       --disable-serial        Disables object instance serialisation.
-       
-       --disable-streams       Disables the wxStream classes.
-       
-       --disable-file          Disables the wxFile class.
-       
-       --disable-textfile      Disables the wxTextFile class.
-       
-       --disable-intl          Disables the internationalisation.
-       
-       --disable-validators    Disables validators.
-       
-       --disable-accel         Disables accel.
-       
+    --without-libpng    Disables PNG image format code.
+    
+    --without-libjpeg    Disables JPEG image format code.
+    
+{   --without-odbc          Disables ODBC code. Not yet. }
+    
+    --disable-resources     Disables the use of *.wxr type
+                            resources.
+        
+    --disable-threads       Disables threads. Will also
+                            disable sockets.
+
+    --disable-sockets       Disables sockets.
+
+    --disable-dnd           Disables Drag'n'Drop.
+    
+    --disable-clipboard     Disables Clipboard.
+    
+    --disable-serial        Disables object instance serialisation.
+    
+    --disable-streams       Disables the wxStream classes.
+    
+    --disable-file          Disables the wxFile class.
+    
+    --disable-textfile      Disables the wxTextFile class.
+    
+    --disable-intl          Disables the internationalisation.
+    
+    --disable-validators    Disables validators.
+    
+    --disable-accel         Disables accel.
+    
 Apart from disabling certain features you can very often "strip"
 the program of its debugging information resulting in a significant
 reduction in size.
@@ -296,7 +270,7 @@ or ~/wxWin or whatever)
 Now the makefiles are created (by configure) and you can compile 
 the library by typing:
 
-       make
+    make
 
 make yourself some coffee, as it will take some time. On an old
 386SX possibly two weeks. During compilation, you'll get a few 
@@ -310,16 +284,16 @@ Then you may install the library and its header files under
 have to log in as root (i.e. run "su" and enter the root
 password) and type
 
-        make install   
+        make install    
 
-You can remove any traces of wxWindows by typing
+You can remove any traces of wxWidgets by typing
 
         make uninstall
-       
+    
 If you want to save disk space by removing unnecessary
 object-files:
 
-        make clean
+     make clean
 
 in the various directories will do the work for you.
 
@@ -334,22 +308,22 @@ g++ myfoo.cpp `wx-config --libs` `wx-config --cflags` -o myfoo
 Using this way, a make file for the minimal sample would look
 like this
 
-CC = g++
+CXX = g++
 
 minimal: minimal.o
-    $(CC) -o minimal minimal.o `wx-config --libs` 
+    $(CXX) -o minimal minimal.o `wx-config --libs`
 
-minimal.o: minimal.cpp mondrian.xpm
-    $(CC) `wx-config --cflags` -c minimal.cpp -o minimal.o
+minimal.o: minimal.cpp
+    $(CXX) `wx-config --cflags` -c minimal.cpp -o minimal.o
 
 clean: 
-       rm -f *.o minimal
+    rm -f *.o minimal
 
 This is certain to become the standard way unless we decide
 to stick to tmake.
 
 2) The other way creates a project within the source code 
-directories of wxWindows. For this endeavour, you'll need
+directories of wxWidgets. For this endeavour, you'll need
 the usual number of GNU tools, at least
 
 GNU automake version 1.4
@@ -370,5 +344,42 @@ go ahead yourself :-)
 In the hope that it will be useful,
 
         Robert Roebling <roebling@sun2.ruf.uni-freiburg.de>
-       
-       
+    
+
+Addition notes by Julian Smart, August 2002
+===========================================    
+
+I've fixed some compile errors, and got as far as
+compiling wxWINE, but actually linking a sample will take
+further work.
+
+To compile wxWINE, export these variables:
+
+export CPPFLAGS=-I/usr/local/include/wine
+export LDFLAGS=-L/usr/local/lib/wine
+
+and configure with:
+
+configure --disable-static --enable-shared --enable-gui \
+ --with-wine --without-libpng --enable-debug_flag --enable-log \
+ --enable-debug_info --enable-ole --enable-clipboard --enable-dataobj \
+ --enable-debug --enable-threads --disable-sockets \
+ --with-libjpeg --enable-debug_cntxt
+
+Compiling a sample won't work yet because 'winebuild' needs
+to be called, and the resuling C file compiled and linked.
+Plus, Windows DLLs need to be imported.
+
+Note that the documentation on the WINE web site on using
+winebuild is out of date (August 2002) -- the spec file no
+longer supports import and type keywords. Instead look at
+samples in the WINE 'programs' directory for inspiration
+and compile options to use. It's probable that the
+wxWINE library will need recompiling with different options.
+
+Any progress on this front will be very welcome.
+
+Note that while wxWINE builds with --enable-unicode, samples
+don't run. Some samples will run when built with
+--disable-unicode, and others (such as auidemo) fail.
+