X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2edb0bdef6238c8c246b6978bc14828b7033d931..2e18fe7139558b3cb592a04a4e4668319a966ebf:/docs/wine/install.txt diff --git a/docs/wine/install.txt b/docs/wine/install.txt index b696299648..9a5cd5da1a 100644 --- a/docs/wine/install.txt +++ b/docs/wine/install.txt @@ -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 > 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 - - + + +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. +