acgmake
tools has rather mild system requirements. All you need is:
make
, bash
shell.make
since by default another make
is installed.
./acgmake/bin to your PATH
variable, or place a link to
./acgmake/bin/acgmake in a directory listed in the PATH
variable. acgmake
sets it's necessary parameters (it's location, location of configuration files) on it's own. It will set the variable ACGMAKE
, which points to the directory where acgmake has been installed, e.g. $ACGMAKE/bin/
holds the script acgmake
.
acgmake
will look for configuration files in the default configuration directory /ACG/acgdev/acgmake/configs
, and for user defined configurations in ~/
.acgmake/.
acgmake
it determines operating system (OS
), host name (HOST
), domain name (DOMAIN
), and compiler (COMP
) and reads the following configuration files (in this order):
/ACG/acgdev/acgmake/configs/config
.Linux /ACG/acgdev/acgmake/configs/config
.informatik.rwth-aachen.de /ACG/acgdev/acgmake/configs/config
.gasperi ~/
.acgmake/config.Linux ~/
.acgmake/config.informatik.rwth-aachen.de ~/
.acgmake/config.gasperi /ACG/acgdev/acgmake/configs/config
. ~/
.acgmake//config. /ACG/acgdev/acgmake/configs/config
.packages ~/
.acgmake//config.packages
Here only the files config
.Linux and config
. must exists, the other files are optional. If they are provided the domain configuration overrides the OS
settings, the HOST
settings in turn override the DOMAIN
settings and so on. In which of these files you provide what kind of settings is up to you, but there are useful default settings that you can base your configuration files on.
You can see a list of configuration files that acgmake tries to read by typing acgmake sysinfo
. The +
and -
signs indicate whether a configuration file has been found or not.
There are two prinicipal components of configuration: module and package configuration. The configuration of the different modules will be described in the section on modules (see section List of Modules). The package configuration will be explained in the rest of this section.
Packages are nothing more than 3rd party libraries that are to be used for your compilation. When using such a lib you have to
acgmake
to automatically add these options to the compiler and linker calls, you have to specify these three options for each package you want to use. The syntax is quite simple: to configure a package that the users will refer to by the name MyPckg
you have to specify the following variables (note the "uppercasified" package name).
# config for package MyPckg
MYPCKG_CFLAGS := -Dsomething
MYPCKG_INCDIR := /opt/my_pckg/include
MYPCKG_LIBDIR := /opt/my_pckg/lib
MYPCKG_LIBS := mypckg mypckg_util
When using MyPckg
for compilation acgmake
will add
-Dsomething
-I/opt/my_pckg/include
-L/opt/my_pckg/lib
-lmypckg -lmypckg_util