Jonny D's Projects
News
GigaSun Jet
Tutorials
C++ Projects
   -Beginners
SDL Projects
   -SPriG
   -NFont
Other Projects

Contact

Outside Projects

  Why?

Pile
by Jonny D



    Vaguely put, Pile is a generalized build tool.  It's purpose is to facilitate the production of some output from some input.  More specifically, it can be used for things such as automatic building of C++ programs and libraries.  Pile takes a description of what to do, written in a Pilefile, and performs all of the tasks indicated.  It can be used as a simpler, more intuitive replacement for (GNU) Make.  Make is not simply portable, has obscure syntax, and has a design that encourages awful workarounds and confusing bugs.

    Pile's design has been based on an analysis of the different takes on a Make replacement (Cook, Cake, Jam, Scons, Rake, CMake, Makepp, etc.) and several articles about Make.  It looks to satisfy these basic criteria for a truly better build tool:
    * Simple or familiar syntax (in description file)
    * Power of a real language (in description file)
    * Intuitive usage (running the build)
    * Standard functions to ease portability (in description file)
    * System-specific configuration file
    * Checksum testing in addition to timestamp testing
    * Easy debugging (in description file)
    * Safe recursive use

    Pile has a scripting language built in, which is very similar to C/C++.  If you know C, then you avoid one of Make's biggest problems (having to know C, Make, bash, and compiler commands).  If you don't know C, Pile does take some steps away from it's mother language in order to simplify it (e.g. with expressive built-in data types).  A main goal is to be not just cross-platform, but to be intuitively cross-platform.  Linux users would probably be comfortable typing "pile", then "pile install" into the console.  Windows users, or Windows converts, however, can just double-click on a Pilefile to have it run with graphical output (as long as Pile has been built with SDL support enabled).  This is accomplished by a standard file extension (you guessed it: ".pile") and a command-line flag, "-g".

     Currently, Pile is still very young.  The build system, the basics of the interpreter, and simple output are all working on both Linux and Windows.  Pile can do enough even now to replace Make for many simple projects (like video games)...  And to answer the typical frequently-asked question:  Yes, Pile can build Pile.  The latest release, v0.0.0, only has explicit support for MinGW32 (on Windows) and g++ (on Linux).

     At the moment, Pile needs some feedback and testing to ensure that it's on the right track.  If you're running Linux or Windows, please help out the project by downloading and trying Pile and filling out the Feedback Form.  I'd like to give credit to anyone involved in this process, so there's a question on that form for that.  There is a file, "How to Use Pile", in the distribution archive that should help with setting it up, but if you have any questions at all, contact me.


Pile A simple, clear, and cross-platform build tool.

SDL
(optional)

Source at Google Code

v0.0.0

[Windows Binary]
[Linux Binary]

[Feedback Form]

GPL