Justin Clark-Casey (justincc) 90c6d2e50c Stop Prebuild from generating <copy> statements which unnecessarily copy files into bin/Debug or bin/Release 12 lat temu
..
doc a9acc6730d Removing .svn directories under Prebuild/ from source control 14 lat temu
scripts f36fe45fa7 Add Copy task to Prebuild.exe (vsxxxx targets) 13 lat temu
src 90c6d2e50c Stop Prebuild from generating <copy> statements which unnecessarily copy files into bin/Debug or bin/Release 12 lat temu
tests a9acc6730d Removing .svn directories under Prebuild/ from source control 14 lat temu
AUTHORS 7e65590a55 Update Prebuild.exe with Prebuild r323 + an existing OpenSim specific nant hack to correctly clean up chosen OpenSim exes and dlls in bin/ on a "nant clean" 14 lat temu
COPYING f36fe45fa7 Add Copy task to Prebuild.exe (vsxxxx targets) 13 lat temu
ChangeLog 7e65590a55 Update Prebuild.exe with Prebuild r323 + an existing OpenSim specific nant hack to correctly clean up chosen OpenSim exes and dlls in bin/ on a "nant clean" 14 lat temu
INSTALL 7e65590a55 Update Prebuild.exe with Prebuild r323 + an existing OpenSim specific nant hack to correctly clean up chosen OpenSim exes and dlls in bin/ on a "nant clean" 14 lat temu
NEWS f36fe45fa7 Add Copy task to Prebuild.exe (vsxxxx targets) 13 lat temu
README f36fe45fa7 Add Copy task to Prebuild.exe (vsxxxx targets) 13 lat temu
THANKS 7e65590a55 Update Prebuild.exe with Prebuild r323 + an existing OpenSim specific nant hack to correctly clean up chosen OpenSim exes and dlls in bin/ on a "nant clean" 14 lat temu
TODO 7e65590a55 Update Prebuild.exe with Prebuild r323 + an existing OpenSim specific nant hack to correctly clean up chosen OpenSim exes and dlls in bin/ on a "nant clean" 14 lat temu
clean.bat 7e65590a55 Update Prebuild.exe with Prebuild r323 + an existing OpenSim specific nant hack to correctly clean up chosen OpenSim exes and dlls in bin/ on a "nant clean" 14 lat temu
clean.sh 7e65590a55 Update Prebuild.exe with Prebuild r323 + an existing OpenSim specific nant hack to correctly clean up chosen OpenSim exes and dlls in bin/ on a "nant clean" 14 lat temu
prebuild 7e65590a55 Update Prebuild.exe with Prebuild r323 + an existing OpenSim specific nant hack to correctly clean up chosen OpenSim exes and dlls in bin/ on a "nant clean" 14 lat temu
prebuild.xml f36fe45fa7 Add Copy task to Prebuild.exe (vsxxxx targets) 13 lat temu

README

Prebuild Instructions

Prebuild is an XML-driven pre-build tool allowing developers to easily generate project or make files for major IDE's and .NET development tools including: Visual Studio 2005, Visual Studio 2003, Visual Studio 2002, SharpDevelop, SharpDevelop2, MonoDevelop, and NAnt.

_______________________________________________________________________________
Overview

Prebuild can be either be run from the command line to generate the
project and make files or you can execute the included batch (*.bat)
and Unix Shell script (*.sh) files.

_______________________________________________________________________________
The currently supported developement tools and their associated batch
and shell script files.

Visual Studio .NET 2005 (VS2005.bat)
Visual Studio .NET 2003 (VS2003.bat)
Visual Studio .NET 2002 (VS2002.bat)
SharpDevelop (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/
SharpDevelop2 (SharpDevelop.bat) - http://www.icsharpcode.net/OpenSource/SD/
MonoDevelop (MonoDevelop.sh) - http://www.monodevelop.com/
NAnt (nant.sh and nant.bat) - http://nant.sourceforge.net/
Autotools (autotools.bat and autotools.sh) - http://en.wikipedia.org/wiki/GNU_build_system

Notes:

A Unix Shell script is provided for MonoDevelop, as it does not run on
Windows at this time.

Visual Studio .NET 2005 and the Visual Express IDE's can import
solutions from older versions of Visual Studio .NET.

Makefiles are not currently supported.

_______________________________________________________________________________
Command Line Syntax:

Example:
> Prebuild /target vs2003

This will generate the project files for Visual Studio.NET 2003 and
place the redirect the log to a file named PrebuildLog.txt in the
parent directory


The syntax structure is as below, where commandParameter is optional
depending on the command and you can provide several option-value
pairs.

Note: The '> ' signifies the command prompt, do not enter this literally

> Prebuild /

> Prebuild /target vs2003 /pause

> Prebuild /target vs2003 /log ../Log.txt /pause /ppo /file ProjectConfig.xml

> Prebuild /target sharpdev /log

> Prebuild /removedir obj|bin

> Prebuild /target vs2003 /allowedgroups Group1|Group2

> Prebuild /clean

> Prebuild /clean /yes

> Prebuild /clean vs2003

_______________________________________________________________________________
Command Line Options:

/usage - Shows the help information on how to use Prebuild and what
the different options are and what they do

/clean - The project files generated for the target type specified as
a parameter for this option will be deleted. If no value is specified
or if 'all' is specified, then project files for all the target types
will be deleted.

/target - Specified the name of the development tool for which project
or make files will be generated. Possible parameter values include:
vs2003, vs2002, sharpdev

/file - Specifies the name of the XML which defines what files are to
be referenced by the generated project files as well as configures the
options for them. If not specified, prebuild.xml in the current
directory will be used as the default.

/log - Specified the log file that should be written to for build
errors. If this option is not specified, no log file is generated,
but if just no value is specified, then the defaul filename will be
used for the log (Prebuild.log).

/ppo - Preprocesses the xml file to test for syntax errors or problems
but doesn't generate the files

/pause - Shows the console until you press a key so that you can view
the messages written while performing the specified actions.

This allows you to check if an errors occurred and - if so - what it
was.

/showtargets - Shows a list of all the targets that can be specified
as values for the /clean and /target commands.

/allowedgroups - This is followed by a pipe-delimited list of project
group filter flags (eg. Group1|Group2) allow optional filtering of all
projects that dont have at least one of these flags

/removedir - This is followed by a pipe-delimited list of directory
names that will be deleted while recursivly searching the directory of
the prebuild application and its child directories (eg. use obj|bin to
delete all output and temporary directories before file releases)

/yes - Answer yes to any warnings (e.g. when cleaning all projects).

_______________________________________________________________________________
Example Batch Files and Shell Scripts

NOTE: Common batch and shell script files are included with Prebuild source and file releases.
______________________________
MonoDevelop

#!/bin/sh
# Generates a solution (.mds) and a set of project files (.mdp)

# for MonoDevelop, a Mono port of SharpDevelop
# (http://icsharpcode.net/OpenSource/SD/Default.aspx)

./Prebuild /target monodev /pause

______________________________
Visual Studio .NET 2003

@rem Generates a solution (.sln) and a set of project files (.csproj)
@rem for Microsoft Visual Studio .NET 2002
Prebuild /target vs2003 /pause

Notes:
Text after lines that start with @rem are comments and are not evaluated
You can also place pause on the last line instead of specifing the /pause command.

_______________________________________________________________________________
Example XML Configuration File

Note:

XML Comments () are used to markup the prebuild.xml
file with notes

The below file may be out-of-date, however the RealmForge Prebuild
file serves as an up-to-date and extensive example.

It can be viewed using Tigris.org's WebSVN
(http://realmforge.tigris.org/source/browse/realmforge/trunk/src/prebuild.xml)
by just clicking on the "view file" link for the latest revision.

_________________________________










DEBUG;TRACE;WIN32

DEBUG;TRACE;POSIX

false
false
false
4


false
1591;219;1573;1572;168


..\bin
true
false
true
285212672
4096
false
Docs.xml




TRACE
true
false
false
4
false
1591;219;1573;1572;168
..\bin
false
false
true
285212672
4096
false
true
Docs.xml







..\bin\lib\Utility
RealmForge.Utility.xml




..\bin\lib\Utility
RealmForge.Utility.xml


../bin


















..\bin
DemoGame.xml




..\bin
DemoGame.xml


../bin