OpenMS/source/Makefile
.
make lib install test TOPP TOPPtest
The main make targets are:
make
without further arguments.
depend
, .Dependencies
.
collect
.
dirs
. The object files are (re)compiled from the source code if necessary using a pattern rule %.o:%.C
.
%.so:%.objects
make lib
will compile and link the library, but not install it. The subtasks are explained below.
OpenMS/lib/<architecture>/
).
Note: that the lib directory must be included in the in LD_LIBRARY_PATH
environment variable so that applications will find it at startup.
source/TEST/
).
Note: tests are restricted to a total CPU time of 60 seconds per test. You can change this default by setting the OPENMS_TESTTIMEOUT
environment variable to another value (in seconds). If the timeout condition is met, the test will fail.
OpenMS/bin/
.
source/TEST/TOPP/
).
*.o
file only if at least one of its source files (*.h
, *.C
, etc.) has changed. The dependency information is stored in .Dependencies
files, one per directory. The .Dependencies
files are included by the Makefile
so that its update check will work. The .Dependencies
lines are created by the compiler using a special option.
Note: For performance reasons, make
will not check whether the .Dependencies
files themselves are up-to-date.
For example, when you have added or removed source files, then make
might fail to realize that an *.o
file needs to be recompiled, or it might complain that it doesn't know how to generate some *.h
file which is in fact unnecessary.
Call make depend
if you think the .Dependencies
files are outdated. (Note for the impatient: It suffices to call make depend
in those directories where the changes have taken place.)
make
checks whether the file source/.Dependencies
exists, and if not, all .Dependencies
files are created automatically. Thus make depend
is implied when you compile OpenMS for the first time.
(Note for experienced users: On the other hand, source/.Dependencies
is deleted by configure
to trigger a make depend
. If you have invoked configure
but you are really sure the dependencies are still fine, you can touch source/.Dependencies
to avoid this.)
and calls make recursively. The target is default
, which means that the *.C
files are compiled to *.o
files.
libOpenMS.objects
, which is handed on to the linker.
Note: For reasons similar to those explained for make depend
, the lib*.objects
files might become outdated when you have changed the Makefile
s in subdirectories, most notably the CPP_SOURCES
variable and its relatives which are defined there.
Such an error might show up when linking the library (because an *.o
file listed in the *.objects
file is not found) or, worse, when linking an application against the OpenMS
library (because you get undefined or doubly defined symbol names).
In such a case, the remedy is to call make recollect
and then make lib
again.
make lib
will create shared libraries. However, there are situations in which you might prefer to use a static library instead, for example to simplify the debugging process. Then you can use make staticlibs
to create the static versions of the libraries.
Note: however, that when you link an application against the OpenMS libraries, the linker will generally prefer the shared libraries over the static libraries. Therefore it is necessary to remove the shared libraries to make the static libraries effective. This can be done by make delete.shared
.
*.o
, *.objects
, core.*
, *~
, and .Dependencies
. Removes the installed libraries. Purges the subdirectories recursively using make default_clean
, etc., etc., etc.. See common.mak
for details.
configure
. Most of this reflects the options given to the configure
script and the results of its test. Generated Tue Apr 1 15:36:40 2008 -- using doxygen 1.5.4 | OpenMS / TOPP 1.1 |