Skip to content
This repository has been archived by the owner on Feb 16, 2024. It is now read-only.

Compilation

Benoit Favre edited this page Mar 14, 2014 · 2 revisions

Details on the compilation of icsiboost

The basic compilation generates the icsiboost executable in the ./src subdirectory:

./configure
make

Or, if you want to install icsiboost in a specific directory (dir/bin) and get optimizations:

./configure --prefix=dir CFLAGS=-O3
make
make install

Refer to automake/autoconf... tools documentation for details.

icsiboost is compiled by gcc (never tried anything else) and requires pcre, pthreads and zlib. It has been tested on linux and MacOSX 10.4.

A library for data structures is provided in ./src/utils/. It handles things like hashtables, strings, regular expressions or growable arrays in the philosophy of perl, but for c. This library is not very clever but it does its job and icsiboost is heavily built on it. You can compile the test suite for that library and run it:

    cd src
    make utils_test
    ./utils_test

The main configuration options are located in the source files (not yet in configure):

  • icsiboost.c:#define USE_THREADS -> threaded weak learners. shrinks training time (enabled)
  • icsiboost.c:#define USE_FLOATS -> floating point precision. does not work (disabled)
  • utils/common.h:#define USE_PCRE -> use pcre regular expression library. otherwise, fallback on posix implementation. (enabled)
  • utils/common.h:#define DEBUG -> activate debugging mode. runs gdb on sigsegv... (disabled)
  • utils/common.h:#defined USE_GC -> use garbage collector. does not work. (disabled)
  • utils/string.h:#define STRING_REGEX_USE_CACHE -> regular expressions are only compiled once (enabled)
  • utils/hashtable.h:#define HASHTABLE_REORDER_ON_ACCESS -> speed up access to frequent values in hashtables. (enabled)
  • utils/hashtable.h:#define HASHTABLE_GATHER_STATS -> count accesses to hashtables for debugging. (disabled)
  • utils/hashtable.h:#define HASHTABLE_INCREASE_SIZE -> increase hashtable size when the number of collisions is too large. (enabled)
  • utils/hashtable.h:#define HASHTABLE_CENTRALIZE_KEYS -> hashtables use less memory but insertion is slower. (disabled)
Clone this wiki locally