# Basics It is planned to use the `autotools` in a near future, but for now, OwlPS uses a simple set of GNU makefiles to compile and install the various modules. The top-level makefile will call `make` into the subdirectories for all the modules. At any level, you can type: make help to see the usable targets and requirements to compile. Once you have all the requirements, the easy way is to just call `make` from the top-level directory, to build all the modules. # Compiling You can choose the compiler to use by setting the CC variable when calling `make`, for example: make CC=tcc By default, `clang` will be used for C modules, or `colorgcc` if `clang` is not installed. If neither `clang` or `colorgcc` is installed, CC is left to the `make` default. For OwlPS Positioner (C++), `colorgcc` is used, or the default CC if it is not installed. Please keep in mind that this module requires GCC 4.4 or later. # Compiling on BSD systems Remember to use `gmake` instead of `make`. From the top-level, you will need to set the MAKE variable, for example: gmake MAKE=gmake OwlPS Listener will not compile since it still contains some Linux-specific code. You may want to comment-out the related lines of the top-level makefile. You might also need to set some variables, for example CC to force a specific GCC version to be used. # Compiling for OpenWrt To compile for OpenWrt, you need to set the OPENWRT_VERSION when calling make, for example: make OPENWRT_VERSION=10.03 It is assumed than the OpenWrt SDK is installed in `$HOME/openwrt/buildroot` and that the target architecture is `atheros`. For a different set up, you will need to edit the `common.mk` file. For now, only OpenWrt 10.03 and trunk are supported. If you set OPENWRT_VERSION to something different than "10.03", it is replaced by "trunk". For this to work we advise that you do something like that: mkdir -p ~/openwrt/atheros/trunk cd ~/openwrt/atheros/trunk ln -s ../../buildroot/staging_dir ln -s \ ../../buildroot/staging_dir/target-mips_uClibc-0.9.33 \ target-mips_uClibc ln -s \ ../../buildroot/staging_dir/toolchain-mips_gcc-4.6-linaro_uClibc-0.9.33/ \ toolchain-mips_gcc_uClibc Of course, you will have to update the symlinks when you compile a new version of the SDK. # Installing At any level, you can install what is installable by typing, as `root`: make install