Updated 2014-12-03 04:40:01 by pooryorick (Redirected from the make command and various alternatives)

make is a classic Unix program to mange the process of building other programs. Popular implementation of make include GNU make.

Non-Tcl Alternatives  edit

Boost Build
uses a variant of Perforce's Jam
Cmake
Electric Cloud's emake
by a company founded by JO
OpenOffice Dmake
irregular syntax, but is available for various platforms
Jam
makepp - Make++
a GNU-Make compatible replacement written in Perl
Rake
written in Ruby ,provides a domain-specific language intended as an alternative for make
SCons
Python based, powerful but complex
ant
popular in the Java community

Tcl Alternatives  edit

top 3:
bras
smake
tmk

full list:
Rivet's Aardvark
A Little Make Replacement
another make replacement
bras
make library
oommf's pimake
stands for Platform-Independent Make.
smake
tabs
tclmake
tcmake - yet another make replacement
tmk
[Should we mention Ant, either on the basis of dwelton's connections, or because of Tcl/Java?] [Only if someone out there is really using Ant with Tcl and has some info online some place regarding the use of the app]
TBuild
A small Tcl extension
dependency-tcl

See Also  edit

gnu
MaMa
Mkdepend
PADE
PVM
tmk
UltraMake

Tools  edit

[1]
a debugger for make.
TEA3
leverages make

Reading  edit

Debuggin Makefiles ,John Graham Cumming , 2007-02-05
valuable tips on coercing Make to introspect.
Regular Expressions: Getting Started with SCons ,Miki Tebeka and Cameron Laird ,2005-10
includes a critique of make
make: The Evolution and Alternatives ,Andy Oram ,2004-11-18

Description  edit

 '''make''' scripts describe
targets
files that make should keep up-to-date
dependencies
files that the various targets depend on.
recipes
each recipe is a sequence of actions to take to make a target

Make uses a target's file timestamp and its dependency information to determine when it should be made or re-made.

Traditionally, on Unix, the make command is used to combine pieces of source, transform it into a state suitable for installation, and then actually installing the resulting files into the final destination directories.

Where programs are deployed in source form (as opposed to executables), the issue of how to build either the applications themselves, or the tools needed to build the application becomes a deployment issue. Sometimes you need something simple to bootstrap your application stack, or you rely on a relatively standard tool chain that will let you build your tools. Sometimes that means following a least common denominator notion of tools, often making the assumption about a Unix-like operating system with C compiler.

Tips  edit

override allows += to append to a variable even if it is passed in on the command line:
override CPPFLAGS += -I.