Skip to content
/ cant Public

C re-implementation of Apache ANT

License

Unknown, GPL-2.0 licenses found

Licenses found

Unknown
LICENSE
GPL-2.0
COPYING
Notifications You must be signed in to change notification settings

gnb/cant

Repository files navigation

This is intended to be an implementation of the Apache/Tomcat
project's ANT build tool in the C language.  Hence, C-ANT or CANT.

Basically, CANT is used to build large and complex software
projects cleanly and simply.  It is similar in purpose to
GNU make plus a set of makefiles, e.g. GNU automake, but
cleaner to use and without weird 1970s semantics.

The input format for CANT is in XML, and is designed to be
a minimal set of data needed to know how to build the software,
e.g. filenames.  Details of how to proceed from filenames to
finished software are designed to be centralised and easily
controlled.  In contrast, make requires a specific, dated
and complex format which ultimately requires that each Makefile
contain the complete specification of how to build software.

The focus of ANT of very much towards building Java programs,
which is understandable because Java's compilation paradigm
and platform-independance mean that "make" is a very poor
solution.  Initially CANT will also focus on building Java
programs.  Once a decent level of compatibility with ANT is
achieved, features specific for C and C++ will be added.

One area where it will be impossible to achieve real
compatibility with ANT is extendability via Java classes.
Probably the best way to approach this is combining XML
configuration with string construction to run commandlines.
For example, adding a new C compiler should mean creating
an XML file which describes the way to map CANT features to
compiler command lines, e.g. <compile-c debug="true"> becomes
"gcc -g".

Greg Banks <gnb@alphalink.com.au>
2 November 2001.

About

C re-implementation of Apache ANT

Resources

License

Unknown, GPL-2.0 licenses found

Licenses found

Unknown
LICENSE
GPL-2.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages