|
- <html>
- <head>
- <title>BuildTool Readme</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- </head>
-
- <body bgcolor="#FFFFFF">
- <h1>BuildTool</h1>
- <p>BuildTool is a Java based build tool. In theory it is kind of like make without
- makes wrinkles.</p>
- <h2>Why?</h2>
- <p>Why another build tool when there is already make, gnumake, nmake, jam, and
- others? Because all of those tools have limitations that its original author
- couldn't live with when developming software across multiple platforms. Make
- like tools are inherently shell based. They evaluate a set of dependencies and
- then execute commands not unlike what you would issue on a shell. This means
- that you can easily extend these tools by using or writing any program for the
- OS that you are working on. However, this also means that you limit yourself
- to the OS, or at least the OS type such as Unix, that you are working on.</p>
- <p>Makefiles are inherently evil as well. Anybody who has worked on them for any
- time has run into the dreaded tab problem. "Is my command not executing
- because I have a space in front of my tab!!!" said the original author
- of BuildTool way too many times. Tools like Jam took care of this to a great
- degree, but still use yet another format to use and remember.</p>
- <p>BuildTool is different. Instead a model where it is extended with shell based
- commands, it is extended using Java classes. Instead of writing shell commands,
- the configuration files are XML based calling out a target tree where various
- tasks get executed. Each task is run by an object which implments a particular
- Task interface. </p>
- <p>Granted, this removes some of the expressive power that is inherent by being
- able to construct a shell command such as `find . -name foo -exec rm {}` but
- it gives you the ability to be cross platform. To work anywhere and everywhere.And
- hey, if you really need to execute a shell command, BuildTool has an exec rule
- that allows different commands to be executed based on the OS that it is executing
- on. </p>
- <h2>How?</h2>
- <p>To get started using BuildTool check out the following topics:</p>
- <ul>
- <li>Installing BuildTool</li>
- <li>Writing a simple BuildFile</li>
- <li>Built in Tasks</li>
- <li>Writing a new Task</li>
- <li>API Documentation</li>
- </ul>
- <h2>License</h2>
- <h2>Feedback</h2>
- <p>To provide feedback on this software, please send mail to <a href="mailto:duncan@x180.com">duncan@x180.com</a>.</p>
- <hr>
- <p>Java is a trademark of Sun Microsystems.</p>
- </body>
- </html>
|