To compile an external you need a Makefile for the make program to read. Pd's website provides a generic Makefile that works fine, you just need to tweek a couple of things.
It's strange that the external works when it's in the same folder as your project, this usually happens with abstractions. Is the external a .pd_linux file? If so, you don't need to compile it, it's compiled. It might not work if it's compiled on a laptop, as tomchaossen mentioned. In this case you can find the source and compile it yourself.
As for the pd-externals directory, I don't think it must be in /, you can put it your home directory and set it in Pd's search path..