Let's suppose I want to have the headers installed into /Tests/include, and the libraries into /Tests/lib: $ cd /Tests/src/talloc-2.1.1 $ ./configure --prefix=/Tests Checking for program gcc or cc : /usr/bin/gcc Checking for program cpp : /usr/bin/cpp [...] Checking linker accepts -Wl,-no-undefined : no Checking linker accepts ['-undefined', 'dynamic_lookup'] : yes 'configure' finished successfully (29.013s) So, configure succeeded; let's thus compile the project: $ make WAF_MAKE=1 PATH=buildtools/bin:../../buildtools/bin:$PATH waf build Waf: Entering directory `/Tests/src/talloc-2.1.1/bin' Checking project rules ... Project rules pass [ 1/21] Compiling lib/replace/replace.c [...] [11/21] Compiling lib/replace/test/os2_delete.c ../lib/replace/test/os2_delete.c:41:28: warning: expression result unused [-Wunused-value] mkdir(TESTDIR, 0700) == 0 || FAILED("mkdir"); ~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~ ../lib/replace/test/os2_delete.c:84:22: warning: expression result unused [-Wunused-value] unlink(fname) == 0 || FAILED("unlink"); ~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~ ../lib/replace/test/os2_delete.c:113:31: warning: expression result unused [-Wunused-value] strcmp(de->d_name, ".") == 0 || FAILED("match ."); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~ ../lib/replace/test/os2_delete.c:115:32: warning: expression result unused [-Wunused-value] strcmp(de->d_name, "..") == 0 || FAILED("match .."); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~ ../lib/replace/test/os2_delete.c:126:22: warning: expression result unused [-Wunused-value] rmdir(TESTDIR) == 0 || FAILED("rmdir"); ~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~ 5 warnings generated. [12/21] Compiling lib/replace/test/getifaddrs.c [...] [17/21] Compiling pytalloc.c [18/21] Linking default/libtalloc.dylib ld: warning: directory not found for option '-L/usr/local/lib' [19/21] Linking default/libpytalloc-util.dylib ld: warning: directory not found for option '-L/usr/local/lib' [20/21] Linking default/pytalloc.so ld: warning: directory not found for option '-L/usr/local/lib' [21/21] Linking default/talloc_testsuite ld: warning: directory not found for option '-L/usr/local/lib' Waf: Leaving directory `/Tests/src/talloc-2.1.1/bin' 'build' finished successfully (0.975s) I've left some more pieces of the the output: - this is the opportunity to reports some warnings, - who exactly insists on looking into /usr/local/lib? Anyway, let's run the tests: $ make test WAF_MAKE=1 PATH=buildtools/bin:../../buildtools/bin:$PATH waf test test: ref1 # SINGLE REFERENCE FREE [...] # TALLOC AUTOFREE CONTEXT success: autofree testsuite returned 0 Fine; it seems one may install the product: $ make install WAF_MAKE=1 PATH=buildtools/bin:../../buildtools/bin:$PATH waf install Waf: Entering directory `/Tests/src/talloc-2.1.1/bin' * installing bin/default/talloc.pc as /Tests/lib/pkgconfig/talloc.pc * installing bin/default/pytalloc-util.pc as /Tests/lib/pkgconfig/pytalloc-util.pc [21/24] Linking default/libtalloc.inst.dylib ld: warning: directory not found for option '-L/usr/local/lib' [22/24] Linking default/libpytalloc-util.inst.dylib ld: warning: directory not found for option '-L/usr/local/lib' [23/24] Linking default/pytalloc.inst.so ld: warning: directory not found for option '-L/usr/local/lib' [24/24] Linking default/talloc_testsuite.inst ld: warning: directory not found for option '-L/usr/local/lib' * installing bin/default/libtalloc.inst.dylib as /Tests/lib/libtalloc.2.1.1.dylib * symlink /Tests/lib/libtalloc.2.dylib (-> libtalloc.2.1.1.dylib) * symlink /Tests/lib/libtalloc.dylib (-> libtalloc.2.1.1.dylib) * installing bin/default/libpytalloc-util.inst.dylib as /Tests/lib/libpytalloc-util.2.1.1.dylib * symlink /Tests/lib/libpytalloc-util.2.dylib (-> libpytalloc-util.2.1.1.dylib) * symlink /Tests/lib/libpytalloc-util.dylib (-> libpytalloc-util.2.1.1.dylib) * installing bin/default/pytalloc.inst.so as /Tests/lib/python2.7/site-packages/talloc.so * installing talloc.h as /Tests/include/talloc.h * installing pytalloc.h as /Tests/include/pytalloc.h Waf: Leaving directory `/Tests/src/talloc-2.1.1/bin' 'install' finished successfully (0.157s) Again, those attempts to link against would be libraries in /usr/local/lib. But the expected pieces are there: $ cd /Tests/lib $ ls -aln total 192 drwxr-xr-x 10 502 0 340 24 mai 10:33 . drwxr-xr-x 6 502 0 204 24 mai 10:33 .. -rwxr-xr-x 1 502 0 9668 24 mai 10:33 libpytalloc-util.2.1.1.dylib lrwxr-xr-x 1 502 0 28 24 mai 10:33 libpytalloc-util.2.dylib -> libpytalloc-util.2.1.1.dylib lrwxr-xr-x 1 502 0 28 24 mai 10:33 libpytalloc-util.dylib -> libpytalloc-util.2.1.1.dylib -rwxr-xr-x 1 502 0 66812 24 mai 10:33 libtalloc.2.1.1.dylib lrwxr-xr-x 1 502 0 21 24 mai 10:33 libtalloc.2.dylib -> libtalloc.2.1.1.dylib lrwxr-xr-x 1 502 0 21 24 mai 10:33 libtalloc.dylib -> libtalloc.2.1.1.dylib drwxr-xr-x 4 502 0 136 24 mai 10:33 pkgconfig drwxr-xr-x 3 502 0 102 24 mai 10:33 python2.7 Let's have a look at the talloc library (the same holds for pytalloc-util): $ otool -l libtalloc.2.1.1.dylib libtalloc.2.1.1.dylib: [...] Load command 3 cmd LC_ID_DYLIB cmdsize 88 name /Tests/src/talloc-2.1.1/bin/default/libtalloc.inst.dylib (offset 24) time stamp 1 Thu Jan 1 01:00:01 1970 current version 0.0.0 compatibility version 0.0.0 [...] With such an ID, the library is unusable: trying to link another project against it will fail. The "damage" may be repaired that way: $ install_name_tool -id /Tests/lib/libtalloc.2.1.1.dylib libtalloc.2.1.1.dylib $ otool -l libtalloc.2.1.1.dylib libtalloc.2.1.1.dylib: [...] Load command 3 cmd LC_ID_DYLIB cmdsize 64 name /Tests/lib/libtalloc.2.1.1.dylib (offset 24) time stamp 1 Thu Jan 1 01:00:01 1970 current version 0.0.0 compatibility version 0.0.0 [...]