The configure script should pick up all the necessary configuration data and generate a working Makefile. There are ways to hack around this, but I would generally say that doing so probably won't work because you have to figure out why the configure script itself is not picking up the library. A thought I just had - remove the config.cache and re-run configure with the --with-ldflags=-L/usr/local/lib --with-includes=-I/usr/local/include It is possible that the configure script read the cache, discovered that it had previously not found the png library, and doesn't search for it again. Carefully watch the ouput of configure - in there someplace it will say checking for -lpng. If that fails, something is still not right. Make the following program: main() { } Call it test.c run cc test.c -L/usr/local/lib -lpng Do you get any errrors? Its possible you are missing a library that png depends on (like libz).