Index: INSTALL.librnd.txt =================================================================== --- INSTALL.librnd.txt (nonexistent) +++ INSTALL.librnd.txt (revision 897) @@ -0,0 +1,110 @@ +Non-standard librnd installation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. Standard librnd installation + + As per FHS, librnd should be installed to prefix /usr/local (when installed + from source) or /usr (when installed from package). If no prefix is specified + when configuring librnd, it will default to /usr/local. + + Another standard prefix is /opt/librnd, in case a per-package root is + preferred. + + When standard librnd installation is chosen, no librnd-specific arguments + need to be passed to camv-rnd ./configure, it will automatically find + librnd (with a preference for source install). + + On some systems ldconfig needs to be ran after the installation so that + the dynamic linker leanrs about the new .so files available. + +2. Installing librnd in a non-standard prefix + + If --prefix was specified at configure time pointing to a non-standard + path, camv-rnd configuration, compilation and execution need extra + preparation. + + Examples in this document assume librnd was configured with + --prefix=/foo/librnd + +2.1. Before camv-rnd ./configure + + Set librnd prefix so ./configure can find it: + + export LIBRND_PREFIX=/foo/librnd + + After that, from the same shell, run ./configure with the usual arguments. + +2.2. Before compiling camv-rnd + + Nothing special, make should work as usual. + + (LIBRND_PREFIX doesn't need to be set, ./configure ironed that in to + compile time config files.) + +2.3. Executing camv-rnd + + This includes: + - executing camv-rnd from source (must happen from within src/) + - executing camv-rnd after installation + - executing any utility, from source or installed + - running make test + - manually executing any test program + + Failing this step will lead to an error message generated by the dynamic + linker of the operating system, and will look similar to: + + error while loading shared libraries: librnd-hid.so.3: cannot open shared object file: No such file or directory + + Before execution, the operating system's dynamic linker needs to be + configured to look for dynamic libs (.so files) in the non-standard place + librnd is installed in. How this needs to be done may differ from system + to system. + + Please note: this is not specific to librnd or camv-rnd, this happens + with any dynamic linked lib that gets installed to a non-standard place. + If you already have a trick for those, that trick will work with librnd too. + + Here are some examples: + + - GNU/Linux; temporary solution (for a single execution) + + LD_LIBRARY_PATH=/foo/librnd/lib camv-rnd + + - GNU/Linux; temporary solution (for a given shell session) + + export LD_LIBRARY_PATH=/foo/librnd/lib + camv-rnd + + - old OSX: same options as above, but use DYLD_LIBRARY_PATH instead of + LD_LIBRARY_PATH + + - recent OSX: they have ruined DYLD_LIBRARY_PATH; for interactice usage + simple exporting DYLD_LIBRARY_PATH as above will work. For make test to + pass, you'll need to: + + create a file in your home directory called .zshenv + + add in ~/zshenv: export DYLD_LIBRARY_PATH=/foo/librnd/lib + + after ./configure in camv-rnd, add this line at the end of Makefile.conf: + SHELL=zsh + + create a file src/camv-rnd.wrap, enter: + #!/bin/zsh + exec ./camv-rnd "$@" + + - GNU/Linux; permanent solution: + + Add /foo/librnd/lib to /etc/ld.so.conf or in a new file under + /etc/ld.so.conf.d/ if that directory exists. Run ldconfig as root to + get ld read your changes. + + +3. Other configure options that may matter + +3.1. ./configure --libarchdir + + The default value of librachdir is "lib", which means the lib dir is + $(PREFIX)/lib. On some systems, e.g. x86_64, it may need to be changed + to "lib64". + + The --libarchdir setting between librnd and camv-rnd must match: + - either not set + - or if set, it must be set explicitly to the same string in both librnd + and camv-rnd ./configure.