]> git.uio.no Git - u/mrichter/AliRoot.git/blob - man/man4/alibtool.4
Changed for new Aliroot version.
[u/mrichter/AliRoot.git] / man / man4 / alibtool.4
1 .TH alibtool 4 "" "ALICE Reference Manual"
2 .ad b
3 .SH NAME
4 alibtool - a shell script to help makeing Make modules for AliRoot
5 .SH SYNOPSIS
6 alirun <command> <commandparameters>
7
8 command must be one of the following:
9
10         mkmodule
11         depend
12         dependF
13
14
15 .SH DESCRIPTION
16
17 This 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
19 The command is one of the following
20
21 depend
22        Makes the dependencies for the file specified as second argument (c and cxx files)
23
24 dependF
25        Makes the dependencies for the file specified as second argument (fortran files)
26
27 mkmoudle
28        Creates the module.mk for the the given directory specified as the second argument.
29
30 .SH MKMOUDLE
31
32 When 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
37 The 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
42 If 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
47 The same as depend, but for fortran files.
48