-Copyright Robert J. Amstadt, 1993. All code is provided without
-warranty. All code is covered by the license contained in the file
-LICENSE unless explicitly stated in the individual source file.
-
-INSTALLATION:
-
-Linux:
-
- Uncompress and untar this archive into the directory of your
-choice. This release requires a Linux version 0.99 pl13 kernel
-or above.
-
-NetBSD:
-
- If you use BSD make rather than GNU make, you must apply the patches
-in the file "bsdmake.patch". This release requires NetBSD-current.
-
-All:
-
-To build Wine, first do a "make depend" and then a "make". The
-executable "wine" will be built. "wine" will load and run Windows'
-executables. You must have a file "wine.ini" in the current directory,
-your homedirectory, or in the path specified by the environment
-variable WINEPATH. Multiple directories in WINEPATH should be seperated
-by semi-colons and NOT by colons!
-
-You must specify the entire path to the executable, or a filename only
-(using the path= statement in wine.ini as the search path)
-
-For example: to run Windows' solitaire:
-
- export WINEPATH=/etc;/usr/windows
-
- wine sol (using the path= statement in wine.ini
- wine sol.exe as the search path)
-
- wine c:\\windows\\sol.exe (using a dosfilename)
-
- wine /usr/windows/sol.exe (using a unixfilename)
-
-Have a nice game of solitaire, but be careful. Emulation isn't perfect.
-So, occassionally it will crash.
-
-WHAT'S NEW with version 0.5: (see ChangeLog for details)
- - Working towards elimination of Xt-dependent code.
- - StretchBlt()
- - GetClassName() & GetClassInfo()
- - Implemented loader relocation types 5 and 6.
-
-WHAT'S NEW with version 0.4.14: (see ChangeLog for details)
- - Bug fixes and enhancements
- - Comm functions
- - Text caret functions
-
-WHAT'S NEW with version 0.4.13: (see ChangeLog for details)
- - Bug fixes
- - GetCapture()
- - More keyboard handling
- - Polyline() and Polygon()
-
-WHAT'S NEW with version 0.4.12: (see ChangeLog for details)
- - Bug fixes
- - New DOS file functions
- - Experimental Imakefiles
-
-WHAT'S NEW with version 0.4.11: (see ChangeLog for details)
- - Bug fixes
- - New cursor functions
- - New file system handling
- - Atoms
-
-WHAT'S NEW with version 0.4.10: (see ChangeLog for details)
- - Bug fixes
- - More scroll bar functions
- - More icon and cursor handling
-
-WHAT'S NEW with version 0.4.9: (see ChangeLog for details)
- - Bug fixes
- - real MessageBox()
- - New resource functions
- - Icon functions
- - Selector manipulation functions
- - Catch()/Throw()
-
-WHAT'S NEW with version 0.4.7: (see ChangeLog for details)
- - More dialog box functions
- - More DOS interrupts
- - NetBSD compatibility patches
-
-WHAT'S NEW with version 0.4.5: (see ChangeLog for details)
- - Bug fixes
- - focus routines
- - dialog box functions
- - improvements to control windows
-
-WHAT'S NEW with version 0.4.4: (see ChangeLog for details)
- - Bug fixes
- - New static control class
- - Preliminary listbox, combobox and scrollbar controls
- - System initialization file is now called "wine.ini", and
- may be located in the user's current directory, the
- user's home directory or any directory specified by
- the WINEPATH environment variable.
- - The loader now searches the directories specified by the
- WINEPATH environment variable for programs and DLLs.
- - Internal debugger now works on 386BSD.
-
-WHAT'S NEW with version 0.4.3: (see ChangeLog for details)
- - Bug fixes
- - Resource loading now able to load DLL resources
- - Button control now based on GDI calls
- - Preliminary system color support
- - Miscellaneous window functions
- - Limited debugging facility (sometimes hangs)
-
-WHAT'S NEW with version 0.4.2: (see ChangeLog for details)
- - Bug fixes
- - 32-bit callback functions allowed
- - .INI file handling
- - lstr* functions and ANSI<->OEM conversion functions.
-
-WHAT'S NEW with version 0.4.1: (see ChangeLog for details)
- - Bug fixes
- - Memory usage changes.
-
-WHAT'S NEW with version 0.4.0: (see ChangeLog for details)
- - Wine now compiles and runs under NetBSD. Patches are
- required for NetBSD.
- - Wine stat patches included. Add "-DWINESTAT" to the definition
- of COPTS in the main Makefile to activate.
- - Preliminary keyboard handling.
- - Button control window implemented.
- - many other new functions added.
-
-WHAT'S NEW with version 0.3.1: (see ChangeLog for details)
- - LineDDA() completed
- - numerous bug fixes
- - INT 1Ah implemented
- - SOUND DLL implemented
- - More of WIN87EM DLL implemented
- - OpenFile() and friends implemented
-
-WHAT'S NEW with version 0.3.0: (see ChangeLog for details)
- - Mouse capture
- - Text justification and underlining
- - Clipping
- - LoadBitmap() completed
- - Code generated by the Borland compiler should now work
-
-WHAT'S NEW with version 0.2.8: (see ChangeLog for details)
- - Text functions from Alexandre
- - INT 21h from Eric
- - Menu improvements from David
- - Bug fixes and GetProcAddress() stub from me
-
-WHAT'S NEW with version 0.2.7: (see ChangeLog for details)
- - sol.exe gets further. I did some debugging and now solitaire
- stops when it tries to call GetTextExtent(). Any volunteers?
- - Many DC updates from Alexandre.
- - Menu updates to support underlining characters from David Metcalfe.
-
-WHAT'S NEW with version 0.2.6: (see ChangeLog for details)
- - More region updates from Alexandre
-
-WHAT'S NEW with version 0.2.5: (see ChangeLog for details)
- - Regions implemented by Alexandre
- - More menuing code from me
-
-WHAT'S NEW with version 0.2.4: (see ChangeLog for details)
- - Many improvements to GDI from Alexandre
- - Many improvements to menu handling by me.
-
-WHAT'S NEW with version 0.2.3: (see ChangeLog for details)
- - Bug fixes with SendMessage() and PostMessage()
- - Preliminary menu support
-
-WHAT'S NEW with version 0.2.2: (see ChangeLog for details)
- - Misc bug fixes
- - More bitmap code
- - Timers
- - Memory DC's
-
-WHAT'S NEW with version 0.2.1:
- - I have placed things into sub-directories. The organization is
- not finalized. I imagine that the directory structure will
- change as is necessary. Files in the ./misc directory need
- to be split apart and placed in apropriate directories.
- - Tons of code from Alexandre. He has constructed the framework
- for handling GDI objects. He has also provided code for DCEs.
- - Local heap functions have been completed.
- - Bug fixes in global.c and win.c
- - New function GlobalQuickAlloc() combines GlobalAlloc() and
- GlobalLock() into a single function call.
- - New patch kit for Linux 0.99 pl11 kernel. Thanks to Linus
- who has graciously included our patches into the ALPHA patch
- release cycle.
-
-WHAT'S NEW with version 0.2.0:
- - Alexandre Julliard has provided a replacement for the Tcl code.
- The new code uses Xlib and Xt directly with no intervening
- interpretted language. This should reduce the learning
- curve for casual hackers.
- - I changed all GLOBAL_ names to Global.
-
-WHAT'S NEW with version 0.1.1:
- - I have completed global memory allocation, but I don't like it.
- It is not 100% compatible with Windows. I need some more kernel
- modifications for 100% compatibility.
- - Alexandre Julliard has provided written better emulation for
- the Windows message queue.
-
-WHAT'S NEW with version 0.1.0:
- - Latest patches from Alexandre Julliard.
- - minor bug fix in if1632.S
-
-WHAT'S NEW with version 0.0.5:
- - Patches from Alexandre Julliard. Some integration with Tcl.
- - Generic interface for callback procedures. This will allow
- callbacks into DLLs.
- - MakeProcInstance() has been implemented but untested.
-
-WHAT'S NEW with version 0.0.4:
- - Eric Youngdale modified wine.c and selector.c to allow loading
- of Windows DLLs.
- - Added global memory allocation routines (GlobalAlloc, GlobalFree,
- and GlobalLock)
- - Bitmap resource loading into global memory.
-
-WHAT'S NEW with version 0.0.3:
- - Fixed bug with sector sizes.
- - Registers at program startup are now set correctly.
- - Segment fixups for relocatable-segment internal entry points.
- - Fixed bug in DOS PSP structure.
- - Some resource loading is done.
- - Added "return" ordinal type to build program.
- - Added comment capability to build program.
-
-WHAT'S NEW with version 0.0.2:
-
- - Again thanks to Eric Youngdale for some very useful comments.
- - The Windows startup code created by Micrsoft C 7.0 now runs
- to completion.
- - Added a new patch to the kernel to increase the usable size of
- the ldt to the full 32 entries currently allowed.
- - Imported name relocations are now supported.
- - Source code for my infamous test program is now included.
- - A handful of basic Windows functions are now emulated. See
- "kernel.spec" for examples of how to use the build program.
-
-WHAT'S NEW with version 0.0.1:
-
- - Eric Youngdale contributed countless improvements in memory
- efficiency, bug fixes, and relocation.
- - The build program has been completed. It now lets you specify
- how the main DLL entry point should interface to your emulation
- library routines. A brief description of how to build these
- specifications is included in the file "build-spec.txt".
- - The code to dispatch builtin DLL calls is complete, but untested.
-
-TODO:
-
- - Segment fixup code completion.
- - Trap and handle DOS and DPMI calls.
- - GlobalAlloc of code segments.
- - Rewrite global memory support including kernel mods to allow
- application to mess with page map.
- - Handle self-loading applications.
- - Resource loading
- - Lots and lots of API fiunctions.
-
-BUILD:
-
- The documentation for the build program is in the file build-spec.txt
-
-FINALE:
-
-Good luck,
-
- If you successfully add anything, please send me a copy.
-
-Bob Amstadt
-bob@amscons.com
+1. INTRODUCTION
+
+Wine is a program which allows running Microsoft Windows programs
+(including DOS, Windows 3.x and Win32 executables) on Unix. It
+consists of a program loader which loads and executes a Microsoft
+Windows binary, and a library (called Winelib) that implements Windows
+API calls using their Unix or X11 equivalents. The library may also
+be used for porting Win32 code into native Unix executables.
+
+Wine is free software, and its license (contained in the file LICENSE)
+is BSD style. Basically, you can do anything with it except claim
+that you wrote it.
+
+2. QUICK START
+
+Whenever you compile from source, it is recommended to use the Wine
+Installer to build and install wine. From the top-level Wine
+directory (which contains this file), run:
+
+./tools/wineinstall
+
+Run programs as "wine [options] program". For more information and
+problem resolution, read the rest of this file, the Wine man page,
+the files in the documentation directory in the Wine source, and
+especially the wealth of information found at http://www.winehq.com.
+
+3. REQUIREMENTS
+
+To compile and run Wine, you must have one of the following:
+
+ Linux version 2.0.36 or above
+ FreeBSD-current or FreeBSD 3.0 or later
+ Solaris x86 2.5 or later
+
+Linux info:
+ Although Linux version 2.0.x will mostly work, certain features
+ (specifically LDT sharing) required for properly supporting Win32
+ threads were not implemented until kernel version 2.2. If you get
+ consistent thread-related crashes, you may want to upgrade to 2.2.
+ Also, some bugs were fixed and additional features were added
+ late in the Linux 2.0.x series, so if you have a very old Linux kernel,
+ you may want to upgrade to at least the latest 2.0.x release.
+
+FreeBSD info:
+ On FreeBSD, you may want to apply an LDT sharing patch too
+ (unless you are tracking -current where it finally has
+ been committed just recently), and there also is a small sigtrap
+ fix that's needed for wine's debugger. (Actually now that it's using
+ ptrace() by default it may no longer make a difference but it still
+ doesn't hurt...) And if you're running a system from the -stable
+ branch older than Nov 15 1999, like a 3.3-RELEASE, then you also
+ need to apply a signal handling change that was MFC'd at that date.
+ Make sure you have the USER_LDT, SYSVSHM, SYSVSEM, and SYSVMSG options
+ turned on in your kernel.
+ More information including patches for the -stable branch is in
+ the ports tree:
+ ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/ports/emulators/wine/files/
+
+Solaris info:
+ You will most likely need to build wine with the GNU toolchain
+ (gcc, gas, etc.)
+
+Wine requires kernel-level threads to run. Currently, only Linux
+version 2.0 or later, FreeBSD-current or FreeBSD 3.0 or later,
+and Solaris x86 version 2.5 or later are supported.
+Other operating systems which support kernel threads may be supported
+in the future.
+
+You need to have the X11 development include files installed
+(called xlib6g-dev in Debian and XFree86-devel in RedHat).
+To use wine's support for multi-threaded applications, your X libraries
+must be reentrant, which is probably the default by now.
+If you have libc6 (glibc2), or you compiled the X libraries yourself,
+they were probably compiled with the reentrant option enabled.
+
+You also need to have libXpm installed on your system. The sources for
+it are available at ftp.x.org and all its mirror sites in the directory
+/contrib/libraries. If you are using RedHat, libXpm is distributed as the
+xpm and xpm-devel packages. Debian distributes libXpm as xpm4.7, xpm4g,
+and xpm4g-dev. SuSE calls these packages xpm and xpm-devel.
+
+On x86 Systems gcc >= 2.7.2 is required.
+Versions earlier than 2.7.2.3 may have problems when certain files
+are compiled with optimization, often due to problems with header file
+management. pgcc currently doesn't work with wine. The cause of this problem
+is unknown.
+
+You also need flex version 2.5 or later and yacc.
+Bison will work as a replacement for yacc. If you are
+using RedHat or Debian, install the flex and bison packages.
+
+In case you want to build the documentation yourself, you'll also
+need the DocBook tools (db2html, db2ps, db2pdf).
+
+4. COMPILATION
+
+In case you chose to not use wineinstall, run the following commands
+to build Wine:
+
+./configure
+make depend
+make
+
+This will build the program "wine" and numerous support libraries/binaries.
+The program "wine" will load and run Windows executables.
+The library "libwine" ("Winelib") can be used to compile and link
+Windows source code under Unix.
+
+To see compile configuration options, do ./configure --help.
+
+To upgrade to a new release by using a patch file, first cd to the
+top-level directory of the release (the one containing this README
+file). Then do a "make clean", and patch the release with:
+
+ gunzip -c patch-file | patch -p1
+
+where "patch-file" is the name of the patch file (something like
+Wine-yymmdd.diff.gz). You can then re-run "./configure", and then
+run "make depend && make".
+
+
+5. SETUP
+
+Once Wine has been built correctly, you can do "make install"; this
+will install the wine executable, the Wine man page, and a few other
+needed files.
+
+Don't forget to uninstall any conflicting previous Wine installation
+first. Try either "dpkg -r wine" or "rpm -e wine" or "make uninstall"
+before installing.
+
+If you want to build the documentation, you can run "make" in the
+documentation directory.
+
+Wine requires a configuration file named named "config" in your
+~/.wine directory. The format of this file is explained in the man
+page. The file documentation/samples/config contains an example
+configuration file which has to be adapted and copied to the location
+mentioned above.
+
+See http://www.winehq.com/support.shtml for further configuration hints.
+
+In order to verify the correctness of the environment you need for
+Wine to run successfully, run "./tools/winecheck | less". You'll get
+a percentage score indicating "Wine configuration correctness".
+
+6. RUNNING PROGRAMS
+
+When invoking Wine, you may specify the entire path to the executable,
+or a filename only.
+
+For example: to run Solitaire:
+
+ wine sol (using the searchpath to locate the file)
+ wine sol.exe
+
+ wine c:\\windows\\sol.exe (using a DOS filename)
+
+ wine /usr/windows/sol.exe (using a Unix filename)
+
+Note: the path of the file will also be added to the path when
+ a full name is supplied on the commandline.
+
+Wine is not yet complete, so some programs may crash. Provided you set up
+winedbg correctly according to documentation/debugger.sgml, you will be dropped
+into a debugger so that you can investigate and fix the problem. For more
+information on how to do this, please read the file documentation/debugging.
+If you post a bug report, please read the file documentation/bugreports to
+see what information is required.
+
+You should backup all your important files that you give Wine access
+to, or use a special Wine copy of them, as there have been some cases
+of users reporting file corruption. Do NOT run Explorer, for instance,
+if you don't have a proper backup, as it renames/cripples several
+directories sometimes.
+
+
+7. GETTING MORE INFORMATION
+
+WWW: A great deal of information about Wine is available from WineHQ at
+ http://www.winehq.com/ : various user guides, application database,
+ bug tracking. This is probably the best starting point.
+
+FAQ: The Wine FAQ is located at http://www.winehq.com/FAQ
+
+HOWTO: The Wine HOWTO is available at
+ http://www.westfalen.de/witch/wine-HOWTO.txt .
+
+Usenet: The best place to get help or to report bugs is the Usenet newsgroup
+ comp.emulators.ms-windows.wine. Please read the file
+ documentation/bugreports to see what information should be included
+ in a bug report.
+
+ Please browse old messages on http://groups.google.com/ to check
+ whether your problem is already fixed before posting a bug report
+ to the newsgroup.
+
+IRC: Online help is available at channel #WineHQ on irc.openprojects.net.
+
+CVS: The current Wine development tree is available through CVS.
+ Go to http://www.winehq.com/dev.shtml for more information.
+
+Mailing lists:
+ There are several mailing lists for Wine developers; see
+ http://www.winehq.com/dev.shtml#ml for more information.
+
+If you add something, or fix a bug, please send a patch ('diff -u'
+format preferred) to julliard@winehq.com or to the
+wine-patches@winehq.com mailing list for inclusion in the next
+release.
+
+--
+Alexandre Julliard
+julliard@winehq.com