Compiling Instructions and Dependencies - 2012-03-16

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 download 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 from
  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.
  
* Microsoft Speech SDK 5.1
  available from http://www.microsoft.com/download/en/details.aspx?id=10121
  - install the SpeechSDK51.exe file
  - copy the file C:\Program Files\Microsoft Speech SDK 5.1\Lib\i386\sapi.lib into
    C:\QtSDK\mingw\lib

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.
  
  Make sure the dll and library files are copied in the folders as above. 
  
  make clean
  qmake -config release
  make release 
  
  then run the NSIS script


