Compilation and Deployment
Compiling Trickonos
Prerequisite
The following Software must be installed and setup correctly for compilation:
- FreePascal 2.4.4+
- GNU Make 3.81 (reference version) and GNU Utilities (both may be available/packaged with FreePascal Release and Build snapshots)
Optional
The following Software may be used for extended testing, development and so on (Versions from development machine setup, just as reference):
Make Targets (Commands)
Build
NOTE: creates <trickonos root>/{bin,lib}, <trickonos root>/bin/tcci{,.exe,...} is the command line interpreter
NOTE: local or system global fpc settings may change used flags/switches
- Create debug build (using debug symbols, overflow/range error and method check, assertions, no inling, ... have a look at the root makefile)
$make debug
Create release build (using lineinfo [stabs, since smartlinking is deactivated for gdwarf], smart linking, optimizer level 2, inlining, disables range/overflow/io/method checking) not recommended for unstable versions $make release
Special Builds
- Create debug build with heaptrc: $make memdebug
- Create debug build for valgrind (-gp -gv for profiling and memleak checks using callgrind/cachegrind/memcheck): $make vgdebug
- Create release build for valgrind (mostly for profiling): $make vgrelease
Test Targets
NOTE: all test targets will clean, test cleans and corresponding build before testrun
- Create debug build and run tests: $make test
- Create release build and run tests: $make releasetest
- Create debug build with heaptrc and run tests (won't stop on memleaks): $make memtest
- Create debug build for valgrind and run tests with memcheck (slow, won't stop on memleaks): $make vgtest
Documentation Targets
NOTE: creates <trickonos root>/apidoc, where pasdoc puts the html files
- Create api docs pasdoc (same as docrelease): $make pasdoc
- Create api docs pasdoc (use release switches): $make docrelease
- Create api docs pasdoc (use debug switches): $make docdebug
Others
- Clean (remove <trickonos root>/{bin,lib}): $make clean
- Clean All (run clean, remove generated docs, generated test logs and so on): $make cleanall
Program Variables (and defaults)
- FPC = fpc
- PASDOC = pasdoc
- MKDIR = mkdir
- RM = rm
- VALGRIND = valgrind
Deployment
Currently, there is nothing special about Deploying/Installing the Trickonos Command Line Program tcci. Simply add it to your shell/prompt Environment and/or call it directly.
(reserved for future)