Compiler Warning removed
[u/mrichter/AliRoot.git] / man / man4 / alibtool.4
CommitLineData
d8a72edf 1.TH alibtool 4 "" "ALICE Reference Manual"
2.ad b
3.SH NAME
4alibtool - a shell script to help makeing Make modules for AliRoot
5.SH SYNOPSIS
6alirun <command> <commandparameters>
7
8command must be one of the following:
9
10 mkmodule
11 depend
12 dependF
13
14
15.SH DESCRIPTION
16
17This scipts is called with a primary command and a commandparameter. It generates output on stdout, so normally it is called with a redirection like alibtool mkmoudle STEER > STEER/module.mk
18
19The command is one of the following
20
21depend
22 Makes the dependencies for the file specified as second argument (c and cxx files)
23
24dependF
25 Makes the dependencies for the file specified as second argument (fortran files)
26
27mkmoudle
28 Creates the module.mk for the the given directory specified as the second argument.
29
30.SH MKMOUDLE
31
32When alibtool is called with the mkmodule command it searches the directory given as the second argument for files called *.pkg. If a file (possibly several) is found, it will create a file called module.mk based on these files. For example if running alibtool mkmodule STEER, it will search the STEER directory and create STEER/module.mk based on all .pkg files is STEER directory. If a file called libSTEER.pkg is found, then module.mk will have a section devoted to makeing library libSTEER.so with alle the sourcefiles specified in libSTEER.pkg. If a file called binSTEER.pkg is found the module.mk file will create an executable called STEER. Several *.pkg files can be placed in the same directory. The module.mk files is created on background of templates/header.tpl and templates/module.mk by variable substituion of variables @MODULE@ @PACKAGE@ and @TYPE@.
33
34.SH PKG FILES
35
36
37The syntax for the pkg file is very simple. You specify the sources, headers and possibly extra include or link options. The *.pkg files is just inserted "as is" in the module.mk file, so normal Makefile syntax can be used. These variables can be specified: SRCS, FSRCS, CSRCS, HDRS, CHDRS, DHDR, EINCLUDE, ELIBS, ELIBSDIR, PACKFFLAGS, PACKCFLAGS, PACKCXXFLAGS. The first five is just the c++ sources, fortran sources, c sources, c++ headers and c headers. DHDR is the dictionary header and is the LinkDef file. EINCLUDE, ELIBS and ELIBSDIR is extra includedirs, libraries and library search paths. If for example a binary is to be linked against $ALICE_ROOT/lib/tgt_$ALICE_TARGET/libminicern.so the variable ELIBSDIR would be set to lib/tgt_$ALICE_TARGET and ELIBS = minicern. Notice that -L and -l is not needed. If the PACKFFLAGS, PACKCFLAGS or PACKCXXFLAGS is not set it will be set to the default options (Set in config/Makefile.$ALICE_TARGET. For example on Linux GEANT321 has to be compiled without -O options, so a line like PACKFFLAGS := $(filter-out -O%,$(FFLAGS)) is needed.
38
39
40.SH DEPEND
41
42If alibtool is called with the depend command it will generate a dependecy file for the sourcefile given as second argument. This only goes for c++ and c files. If dependencies for fortran-fiels is needed, call alibtool with command dependF. The dependencies is made with rmkdepend.
43
44
45.SH DEPENDF
46
47The same as depend, but for fortran files.
48