     ______   ___    ___
    /\  _  \ /\_ \  /\_ \
    \ \ \L\ \\//\ \ \//\ \      __     __   _ __   ___ 
     \ \  __ \ \ \ \  \ \ \   /'__`\ /'_ `\/\`'__\/ __`\
      \ \ \/\ \ \_\ \_ \_\ \_/\  __//\ \L\ \ \ \//\ \L\ \
       \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
	\/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
				       /\____/
				       \_/__/


		 MSVC-specific information.

	 See readme.txt for a more general overview.



====================================
============ MSVC notes ============
====================================

   Status: complete.



===========================================
============ Required software ============
===========================================

   - Microsoft Visual C++.
   - Recent set of DirectX and other Windows SDK headers.
   - A GNU environment to run GNU tools with, such as DJGPP, MinGW or Cygwin.
     Depending on which one you choose, you will need the following packages:
     - DJGPP: compiler (djdev*.zip, gcc*b.zip, bnu*b.zip).
              GNU make (mak*b.zip).
              Optional: GNU sed (sed*b.zip). Used by "make depend" and "fixdll.bat".
              Optional: GNU sort (txt*b.zip). Used by "fixdll.bat".
     - MinGW: compiler (mingw-runtime, gcc, binutils).
              GNU make.
              Optional: GNU sed. Used by "make depend" and "fixdll.bat".
              Optional: GNU sort (textutils). Used by "fixdll.bat".
     - Cygwin: compiler (cygwin, gcc, binutils)
               GNU make.
               Optional: GNU sed. Used by "make depend" and "fixdll.sh"
               Optional: GNU sort (textutils). Used by "fixdll.sh".

   Allegro should work ok with MSVC versions 4, 5, 6 and 7.

   The DirectX SDK can be obtained directly from Microsoft. An old version 
   of the headers is included with MSVC, but Allegro requires more recent 
   files. You should either copy the current headers into your MSVC include 
   and lib directories, or alter your INCLUDE and LIB environment variables 
   to put the DirectX SDK files in front of the standard MSVC locations.

   If you choose to use DJGPP as your GNU environment, the DJGPP compiler and
   associated tools can be downloaded from your nearest SimTel mirror site,
   in the /pub/simtelnet/gnu/djgpp/ directory, or you can use the zip picker
   on http://www.delorie.com/djgpp/. See the djgpp readme.1st file for
   informations about how to install DJGPP.

   If you choose MinGW, download the MinGW compiler and associated tools from
   'http://www.mingw.org' or 'http://sourceforge.net/projects/mingw/'. You
   can download the complete distribution instead of the individual packages
   if you don't want to install each package manually.

   If you choose Cygwin, get setup.exe from 'http://sources.redhat.com/cygwin/'.
   Start the Cygwin setup program and download the required packages. Then
   install the packages (run setup.exe once more). When setup asks you which
   line endings you want, select unix-style instead of DOS.



============================================
============ Installing Allegro ============
============================================

   This is a source-only distribution, so you will have to compile Allegro 
   before you can use it. To do this you should:

   Set up your environment so that MSVC can be used from the commandline.
   You probably have a vcvars32.bat file that will do this for you (usually
   located in the VC98\BIN folder where you have MSVC installed, for example
   C:\Program Files\Microsoft Visual Studio\). Under either Windows NT or
   Windows 2000, you will have to run this file every time you open a DOS box
   or configure the environment variables in Control Panel/System/Environment.

   If you are using Cygwin as the GNU environment, start the Cygwin bash shell
   from the command prompt (if you used the command prompt to run vcvars32.bat
   then you must start Cygwin in the same command-prompt window you used to
   run vcvars32.bat unless you configured the environment variables in Control
   Panel/System/Environment). This is usually done via "C:\cygwin\cygwin.bat".

   Go to the directory where you have installed Allegro by using 'cd'.

   If you are using Cygwin, type "./fix.sh msvc --utod". Otherwise (i.e if
   you are using DJGPP or MinGW), type "fix.bat msvc". 

   Type "make". Then go do something interesting while everything compiles.
   When it finishes compiling, type "make install" to set the library up
   ready for use.

   If you also want to install a debugging version of the library (highly 
   recommended), now type "make install DEBUGMODE=1". Case is important, so 
   it must be DEBUGMODE, not debugmode!

   If you also want to install a profiling version of the library, now type 
   "make install PROFILEMODE=1".

   If you want statically linked libraries as well as the default DLLs, pass
   additionally "STATICLINK=1" to the make commands above.

   If your copy of Allegro doesn't include the makefile.dep dependency files 
   (unlikely, unless you have run "make veryclean" at some point), you can 
   regenerate them by running "make depend".

   If your copy of Allegro doesn't include the linker .def file (unlikely, 
   unless you have run "make veryclean" at some point), you can regenerate 
   it by running "misc\fixdll.bat".

   Once the build is finished you can recover some disk space by running
   "make compress", which uses the UPX program to compress the executable
   files and the optimized dll. Before running "make compress", you must set
   the environment variable UPX_BIN to point to upx.exe. You will have to
   do run "make compress" before "make install" if you want the compressed
   dll to be copied to the windows directory. To recover even more disk
   space, you can run "make clean" to get rid of all the temporary files and
   HTML format documentation.



=======================================
============ Using Allegro ============
=======================================

   All the Allegro functions, variables, and data structures are defined in 
   allegro.h. You should include this in your programs, and link with one of 
   the libraries:

   alleg.lib      - optimised DLL import library
   alld.lib       - debugging DLL import library
   allp.lib       - profiling DLL import library
   alleg_s.lib    - statically linked optimised library
   alld_s.lib     - statically linked debugging library
   allp_s.lib     - statically linked profiling library

   When using a statically linked library, you must define the preprocessor
   symbol ALLEGRO_STATICLINK before including any of the Allegro headers and
   link your program against Allegro and the main Win32/DirectX libraries
   in that order (see the variable LIBRARIES in makefile.vc). You have also
   to make sure that your program is linked against the right C run-time
   library, ie. the multi-threaded DLL version of MSVCRT (or the debug
   version if you are using the debug library). You can change this option
   at Project - Settings - C/C++ - Category: Code Generation - Use run-time
   library.

   Don't forget that you need to use the END_OF_MAIN() macro right after 
   your main() function!

   If you use one of the DLL versions, you will obviously need to distribute 
   the appropriate DLL along with your program: these can be found in the 
   allegro/lib/msvc/ directory.

