The build process works mostly on makefiles. Those are hand edited to compile. Build can be started only from the topmost directory, as components hard link object files from other directories if they need those (e.g. almost everybody needs share memory access, so the processes gets linked with GshmVar
- translates *.ui (Qt forms) using moc to c++ source files
- compiles all *.cpp files
- link .o with system .o to produce output binary
Makefile enviromental variables
Those can be set from shell, using export <variable_name>[=value] command. You need to set those before starting the build.
- VERBOSE allows to see commands being performed and their output.
- BUILD passes build string as __BUILD__ macro. Build number can be retrieved in code as TCS_Version (declared in GshmSum.hpp) or as NetworkConfig::myVersion() (declared in NetworkConfig.hpp). Build should have form yyyy[A-Z], where yyyy is buid year.
Please note that patchname is never included in binaries. The version is, and that should signal a patch.
Makefiles libraries variables
Lots of settings affect which libraries will get linked,.. Those are set in .build/environment files, which are include from Makefile.
Those scripts assumes TCS
files resides under /lbt/tcs/ directory, with /lbt/tcs/current soft-linking to the TCS build.
Correctly sets build environment (OS variables BUILD,..) and build the software. Overwrites .buildtag before the build.
The only supplied parametr is build name. Builds TCS using bundle.sh script, and install it in /lbt/tcs/.
Distributes path to mountain servers (tcs2.mountain.lbto.org hardcoded as target host; as binary files resides on NFS mount, that will distribute binaries to all TCS and OBS computers). You need to call ./bundle.sh before. Makes sure .debug files are copied as well.
Activates patches. Does not restarts subsystems.
Lists available patches per subsystem.
Compares configuration files, making it easy to spot what should be changed when new build is installed.