If your program is relatively simple and doesn't require anything
particularly special, makepp may already know how to build it
without your explicitly giving instructions. For example, suppose
you have a program in a single source file, called
test.c
. You can just type
makepp test
and your program will build like
this:
% makepp test makepp: Entering directory `/somewhere/or/other' gcc -g -Wall -c test.c -o test.o gcc -g -Wall test.o -o test Warning: on unix, to run a program called 'test', you must type ./test rather than just 'test'.
These are the basic commands needed to compile a program on unix. If these commands don't make any sense to you, that's ok--you can just rely on makepp's builtin rules, or you can see the primer on unix compilation commands on the next page.
Makepp contains builtin rules for C, C++, and Fortran. Java support will probably come as soon as I learn Java.
Makepp can sometimes figure out how to compile programs that are contained in more than one source file, or programs that must be linked with various system libraries. It does this by guessing which source files and libraries you need based on the files that you include. The actual algorithm is too complicated to discuss here in a tutorial (but see the section on builtin rules in the reference manual); you can try it, and if it doesn't work automatically for you, you need to write your own makefile.
By default, for C and C++, makepp compiles the program with debug information and without optimization. If you want to turn on optimization so that your program runs faster, change the command line to:
makepp CFLAGS=-O2 test
If you're compiling C++ instead of C, use
CXXFLAGS=-O2
instead of CFLAGS=-O2
. For a
complete list of other options you can configure, see the reference manual.
Makepp's builtin rules are somewhat more powerful than the standard unix make, but if you write programs of any complexity, it's likely that you'll need a makefile eventually to tell makeppq what to do. The next page explains simply what all those cryptic unix compilation commands actually do, and how to write them; following that, I explain how you tell makepp to use these commands.