# what are build tools ??

## Recommended Posts

NickBarkus    148
hi all, can anyone give me your precious comments on " what is automated builds tool" . I heard this word when i was going through a article but was not able to get what exactly it is and what it is used for . Can anyone please advice ?. Secondly on gamedev.net site in the pooling section " Which revison control system u use " ? what is exactally it is . I have heard abt CVS . Both mean the same ??. Thanks, -nick-

##### Share on other sites
OrangyTang    1298
Automated build tools are setup so that you only have to trigger a single command to build a complete working game from scratch. Usually this involves compiling and linking your app, and often can involve all sorts of custom data processing steps (like maybe compressing your level data ready for use, or building a final zip or installer file). There are lots of different tools to do this, I use Ant, but Make is also popular (and IIRC Visual Studio has built-in support for).

Heres a bit of one of my ant scripts:
	<target name="CreateLWJGLJars" depends="CleanBuild">				<copy todir="${Build}"> <fileset dir="${LWJGLDir}/jar">				<include name="lwjgl.jar" />				<include name="lwjgl_util.jar" />			</fileset>		</copy>				<jar jarfile="${Build}/lwjgl_Win32.jar" basedir="${LWJGLWin32Dir}" />		<jar jarfile="${Build}/lwjgl_linux.jar" basedir="${LWJGLLinuxDir}" />		<jar jarfile="${Build}/lwjgl_MacOS.jar" basedir="${LWJGLMacOSDir}" />	</target>

Generally you just have a script which triggers the various build processes (compile, link, zip) in the correct order with the correct parameters.

Revision control systems keep track of the changes to files over time. So you can go back and peek at what a particular file looked like last week, or last month. CVS is one particular revision control system, and is open source and free but a bit old now. Subversion (SVN) is a newer open source replacement. Commercial revision control systems tend to be very pricy as they're aimed at big teams of profesional developers, but SVN is pretty damn good.

##### Share on other sites
NickBarkus    148

First part is o.k - i got ur point . About second is revision control system and concurrent control system mean the same thing ?? U wrote that CVS has became a bit old what does that mean ? . Can u put more light into it . I before never used a CVS but i know one of the popluar CVS - Tortoise CVS . Is there any difference between Subversion and Tortoise CVS . Please advice

Thanks,
-nick-

##### Share on other sites
Bregma    9202
Quote:
 Original post by NickBarkusFirst part is o.k - i got ur point . About second is revision control system and concurrent control system mean the same thing ?? U wrote that CVS has became a bit old what does that mean ? . Can u put more light into it . I before never used a CVS but i know one of the popluar CVS - Tortoise CVS . Is there any difference between Subversion and Tortoise CVS . Please advice

A revision control system tracks revisions and allows older revisions of code to be recovered (as well as other things like snapshots, branches, locking, deltas and auditing, automated email when someone commits a change, etc).

Subversion is the current darling of the open source world becausde it fixes some of the shortcomings of CVS, which fixed some of the shortcomings of RCS, which was an improvement on SCCS. CVS is good enough for starting a single-user project but my experience is that SVN (subversion) is definitely better.

You should definitely use some sort of version control system (aka VCS) even if it's just you on your lonesome doing goof-around work. You will no doubt learn that the hard way, most people do. Make backups of your source repository.

##### Share on other sites
OrangyTang    1298
Revision control system and concurrent control system mean the same thing.

CVS is a bit old in that it's been around a while and so while basically solid it isn't quite as advanced as newer ones, and certain operations (like renaming a file) aren't handled quite as well as they could be. Subversion is intended to be a more up to date replacement which fixes a lot of the quirks and problems with CVS.

Revision control systems have two halves - a server and a client. The server runs on a separate machine (which might be another computer on the network, or somewhere on the internet). The server keeps all the files and information and is usually running constantly.

The client runs on whatever machine you're doing your actual work on (TortoiseCVS is a CVS client). It connects to the server and provides a command line or GUI interface that lets you see and manipulate the files on the server. This is handy because in a team you'd have one server and each person running their own client on their own computer.

You then use the client to check out a "working version" onto your own computer. You use this to develop and test with, then when you're ready you use the client to send your changes to the server. Then other people can get the latest code from the server and automatically get your (and everybody elses) changes.

There's also TortoiseSVN, which is an SVN client with a very similar interface to TortoiseCVS.

If you're working on your own you don't need a revision control system, but it can be very handy at times to (say) hack away at something for a weekend, then if it doesn't you just switch back to the version before you broke everything. If you're not working in a team then you can run both the server and the client on the same computer to make things a little easier to setup.

##### Share on other sites
NickBarkus    148
Thanks OrangyTang and Bregma for ur reply .
It solves my query .

Thanking once again.
-nick-