Automating Compilation with make
Problem
You get tired of typing javac and java commands.
Solution
Use the make utility to direct your compilations.
Discussion
The Unix operating system has long had to deal with automating large
or repetitive compilations. The most enduring tool for this purpose
is make, invented by Stu Feldman at Bell
Laboratories in the mid-1970s and still widely used. There have been
literally dozens of make -like programs over the
years. The
X Window System has
imake, which is really a front-end to
make. Linux and GNU enthusiasts have
gmake, and BSD systems feature BSD
make; one or another will be installed under the
name make. The cygwin32 project features its own
make, a version of gmake.
make consults a file called
Makefile (or
makefile
) in the current directory to figure out
what you want done and how to do it. A makefile to build one Java
program could be as simple as this:
all:
javac HelloWorld.javaMakefiles can be much more involved. One common feature is to
parameterize a makefile so that if you need to port the code to a new
platform or you distribute your source code to others to port, all
the necessary makefile changes are in one place. For example, to use
make variables to let the user compile with
either javac or Jikes, and to add a rule to
remove the *.class files after a round of
debugging, the makefile might grow somewhat, as shown here. Note that
lines beginning with the pound sign (#) are
comments for the reader and are
ignored by make : ...