diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..52fe022 --- /dev/null +++ b/INSTALL @@ -0,0 +1,84 @@ +# 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