Here's an example of a makefile. We want to create a program out of two source files, p1.cpp and p2.cpp, linking the object files to two of our own libraries libaudio.a and libmidi.a that reside in /usr/local/myownlibraries.
CC = g++ CFLAGS = -I../include -I$(PARSERDIR)/include -g -Wall LDFLAGS = -L /usr/local/myownlibraries -laudio -lmidi program: p1.o p2.o $(CC) -o $@ p1.o p2.o .cpp.o: $(CC) -c $< $(CFLAGS)
Note the blue bars, indicating you should type a TAB-character, NOT a number of spaces.
|$@||The current target|
|$*||Base name of the current target|
|$<||The first prerequisite (the left-most file in the line)|
|$?||All prerequisites that are newer than the target|
|$^||All prerequisites, with spaces between them.|