1.16. Building a Static Library with GNU Make
Problem
You want to use GNU make to build a static library from a collection of C++ source files, such as those listed in Example 1-1.
Solution
First, create a makefile in the directory where you want your static library to be
created, and declare a phony target all whose single
prerequisite is the static library. Next, declare your static library target. Its
prerequisites should be the object files that the library will contain, and its command
script should be a command line to build the library from the collection of object files,
as demonstrated in Recipe 1.3. If you
are using GCC or a compiler with similar command-line syntax, customize the implicit
patterns rules, if necessary, by modifying one or more of the variables CXX, CXXFLAGS,
etc. used in make's database
of implicit rules, as shown in Recipe
1.15. Otherwise, write a
pattern rule telling make how to compile
.cpp files into object files, using the command
lines from Table 1-4 and the pattern
rule syntax explained in Recipe 1.16.
Next, declare targets indicating how each of your library’s source files depends on the
headers it includes, directly or indirectly. You can write these dependencies by hand or
arrange for them to be generated automatically. Finally, add install and clean targets as demonstrated
in Recipe 1.15.
For example, to build a static library from the source files listed in Example 1-2 using GCC on Unix, create a makefile in the directory johnpaul, as shown ...