Compiling Instructions and Dependencies - 2011-06-30

LINUX you will need:
* g++
* qt4-dev-tools
* flex
* bison
* libsdl-mixer??-dev
* libespeak-dev (if using the LINUX_ESPEAK option in BASIC256.pro)
  - this option gives an integrated library approach to the say statement
* espeak (if using the LINUX_ESPEAK_EXECUTE option in BASIC256.pro)
  - use this option and install if the library use of portaudio conflicts with other sound systems installed
* and the sqlite3 amalgamation installed from sqlite.org

Windows you will need:

* mingw c++ compiler for Win32 and the qt sdk
  - the easiest way to get this installed and working is to use the
    Qt SDK version 1.x.x from the downloas page at QT.  Choose a custom install and select mingw to be installed
  - You will have problems getting this to work if you do not have the EXACT mingw version required
  - be sure you have the following (or similar) fildres listed in the PATH system variable
    C:\QtSDK\mingw\bin and C:\QtSDK\Desktop\Qt\4.7.3\mingw\bin

* gtk win32 bundle headers and libraries from http://www.gtk.org/download/win32.php
  - extract the zip file to the mingw folder

* the gretl development headers need to be added to mingw they are in a file called mingw-extra.zip
  and can be found at http://ricardo.ecn.wfu.edu/pub/gretl/winbuild/

* sqlite development libraries and headers need to be installed and downloaded fron http://www.sqlite.org/download.html
  - use the *amalgation* zip file and copy the *.h files into MinGW/include
  - download the windows dll zip file, extract files into MinGW/lib, and run the following
    dlltool -D sqlite3.dll -d sqlite3.def -l libsqlite3dll.a
  - you will also need to place the sqlite.dll file in the project/trunk/debug 
    and project/trunk/release folders.

* inpout32.dll
  - download version 1.2 from http://www.highrez.co.uk/Downloads/InpOut32/default.htm
  - copy the file inpout32.dll into MinGW/lib
  - you will also need to place the inpout32.dll and inpout32.sys fileg in the project/trunk/debug 
    and project/trunk/release folders.
  
For MAC 10.6.4
	- QT
	- XCode (from apple)
	- MACPorts (Porticus front end is handy)
		-	sqlite3
		-	flex
		-	libsdl_dev
		-	libsdl_dev-framework
		-	libsdl_mixer
		-	libsdl_mixer-framework

Build Windows MINGW, LINUX, and MACX (g++):

  open a command window (cmd)
  type "make clean" and hit enter
  type "qmake" and hit enter - for MACX "qmake -spec macx-g++"
  type "make" and hit enter 
  
  You'll see an executable called BASIC256 either in this directory or in a "debug" directory, depending on your version of QT.

  linux:  "make install" will install translations, help and binary  You can then create a
      launcher to "BASIC256" or "BASIC256 -l locale".

  windows (observed under vista business sp2): make will not work because of Microsoft's command
      line length issue.  A possible work around would be to use 'msys'.  It gives a unix like
	 shell to work from without the problem.

Release Build (Windows):
  To build a nice WIN32 installer use the nullsoft scriptable install system file
  2.39 or better) called BASIC256.nsi.  You must build a release copy of BASCI256.
  
  You must also copy the QtCore4.dll, QtGui4.dll, sqlite3.dll, and mingwm10.dll to the release
  folder before testing the build or running the installer script.  Under QT 4.5.3
  be sure to use the dlls from C:\Qt\nnnn.nn\qt\bin and not the ones from C:\Qt\nnnn.nn\bin. 
  
  make clean
  qmake -config release
  make release 
  
  then run the NSIS script


