Building An Executable: Difference between revisions
Line 102: | Line 102: | ||
trunk\MediaWiki\art\ | trunk\MediaWiki\art\ | ||
trunk\MediaWiki\extensions\ | trunk\MediaWiki\extensions\ | ||
trunk\qdebug | |||
trunk\ReleaseNotes\ | trunk\ReleaseNotes\ | ||
trunk\WineHQ\ | trunk\WineHQ\ |
Revision as of 20:20, 18 January 2009
Platforms
The current version of NARS2000 runs on Windows platforms only, however the goal is to move it to Linux, Mac OS, etc. as per user requests and developer interests. As such, for the moment, the following description for building an executable is necessarily biased towards Windows.
Downloads
To build the executable you'll need the following
- C Compiler and Linker
- Make program
- Resource Compiler
- Windows SDK
- Parser Generator
- Zip Utility
- PHP (Hypertext Preprocessor)
- NARS2000 Source Code
- NARS2000 External Libraries
- Optionally, Source Control program
- Optionally, a Code Merge program
All of the tools you'll need are freely available. Some of them happen to be Microsoft-specific, however there is no reason more generic tools (such as DJGPP, Cygwin or MinGW) can't be used, a task I'm hoping someone will volunteer to investigate. In particular, the tools currently used are as follows:
- C Compiler and Linker: Microsoft Visual C++ Express 2008 (requires Windows XP or later) — includes Link, Make, a Resource Compiler, and an SDK (among others)
- Parser Generator: Bison (Choose All (Default), Devel, and bison)
- Zip Utility: 7-Zip
- PHP (Hypertext Preprocessor): Downloads
- NARS2000 Source Code: tar ball
- NARS2000 External Libraries: qdebug Library miscellaneous files gsl Library
- Source Control program: Tortoise SVN
- Code Merge program: WinMerge
Install Tools
To install the Parser Generator (Bison), run the Cygwin setup.exe program and choose the Devel category, then bison (when the Cygwin setup program asks you to choose a Default Text File Type, choose DOS/text so any committed files are the same as in the version control repository). Install the rest of the tools as per their separate instructions.
Install Source Code
First create a root directory somewhere on one of your hard drives, perhaps calling it NARS2000, as in C:\NARS2000 or perhaps at some lower level. The source code and external libraries are installed below this level.
Download the source code tar ball (trunk.tar.gz) into the root directory and decompress it with tar zxvf trunk.tar.gz. The tar program is part of Cygwin and is found in C:\Cygwin\bin (or wherever you installed Cygwin). This command also creates the trunk directory and several directories below that.
Under the root directory (at the same level as the trunk directory), also make a directory called branches. The former directory holds the main body of code. The latter directory is used for developer-specific branches not as yet incorporated into the main trunk.
Download the qdebug.zip, misc.zip, and gsldir.zip files into the trunk directory and unzip them using 7z.exe as in 7z x qdebug.zip, 7z x misc.zip, and 7z x gsldir.zip.
Directories
After unzipping the above files, the directory structure under the root directory should look something like
branches\ trunk\ trunk\binaries\ trunk\binaries\COM\ trunk\Extensions\ trunk\Extensions\aplchars\ trunk\Extensions\aplchars\chrome\ trunk\Extensions\aplchars\chrome\content\ trunk\Extensions\aplchars\chrome\content\aplchars\ trunk\Extensions\aplchars\chrome\locale\ trunk\Extensions\aplchars\chrome\locale\en-US\ trunk\Extensions\aplchars\chrome\locale\en-US\aplchars\ trunk\Extensions\aplchars\chrome\skin\ trunk\Extensions\aplchars\chrome\skin\classic\ trunk\Extensions\aplchars\chrome\skin\classic\aplchars\ trunk\Extensions\aplchars\defaults\ trunk\Extensions\aplchars\defaults\preferences\ trunk\gsl\ trunk\gsl\.libs\ trunk\gsl\blas\ trunk\gsl\block\ trunk\gsl\cblas\ trunk\gsl\cblas\.libs\ trunk\gsl\complex\ trunk\gsl\eigen\ trunk\gsl\include\ trunk\gsl\include\arpa\ trunk\gsl\include\asm\ trunk\gsl\include\cygwin\ trunk\gsl\include\gsl\ trunk\gsl\include\machine\ trunk\gsl\include\mingw\ trunk\gsl\include\mingw\sys\ trunk\gsl\include\net\ trunk\gsl\include\netinet\ trunk\gsl\include\sys\ trunk\gsl\include\w32api\ trunk\gsl\include\w32api\ddk\ trunk\gsl\include\w32api\GL\ trunk\gsl\linalg\ trunk\gsl\matrix\ trunk\gsl\permutation\ trunk\gsl\sort\ trunk\gsl\specfunc\ trunk\gsl\statistics\ trunk\gsl\vector\ trunk\htdocs\ trunk\htdocs\art\ trunk\htdocs\download\ trunk\htdocs\styles\ trunk\images\ trunk\MediaWiki\ trunk\MediaWiki\art\ trunk\MediaWiki\extensions\ trunk\qdebug trunk\ReleaseNotes\ trunk\WineHQ\ trunk\WineHQ\Include\ trunk\WineHQ\Include\msvcrt\ trunk\WineHQ\Include\msvcrt\sys\ trunk\WineHQ\Include\msvcrt\Wine\
Setup VC Express
If you are using VC++ Express, the project file is in the trunk directory and is called NARS2000.vcproj. You may load it manually every time you invoke VC++ Express, or you may load it automatically by placing the path to the project file on the command line in the VC++ Express shortcut as in "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe" C:\NARS2000\trunk\NARS2000.vcproj or wherever you defined your NARS2000 root directory.
The vast majority of the project settings are found in the above file with some exceptions.
Open VC++ Express and select from the menu Tools | Options.... In the Options dialog lefthand pane, select Projects and Solutions.
- In the lefthand pane, select VC++ Directories. In the righthand pane, in the Show directories for: combobox, select Include files. Append to the end of the list of include directories .\gsl\include.
- In the lefthand pane, select VC++ Project Settings. In the righthand pane, enter in Rule File Search Paths, the NARS2000 root directory (e.g., C:\NARS2000\trunk).
- Click OK to close the Options dialog.
Environment Variables
If you are building from the makefile, you'll need to set some environment variables in your autoexec.bat file:
REM Path and name of zip program (7-Zip) Set ZIPPRG="C:\Program Files\7-Zip\7z" REM Path and name of parser generator (bison) Set PARGEN=C:\Cygwin\bin\bison REM Directory of SDK ("C:\Program Files\Microsoft SDKs\Windows\v6.0A") Set SDK=U:\ REM MSVC compiler ("C:\Program Files\Microsoft Visual Studio 9.0") (Version 15.00.30729.01) Set MSVC=V:\VC\
I find it convenient to use the Windows subst command to map drive letters as in the references to drives U: and V: above.
subst U: "C:\Program Files\Microsoft SDKs\Windows\v6.0A" subst V: "C:\Program Files\Microsoft Visual Studio 9.0"
If you install the above tools in other directories, make the appropriate changes to the above lines.
You will also have to append the directories V:\Common7\IDE and V:\VC\bin to your path so the C compiler can find some of its DLLs and tools.
Building The Executable
At this point you should be ready to build the executable. To do this from VC Express (having already opened the project file), click on the menu item Build | Build Solution or press F7. To do this from a makefile, type mk32.