This document http://llvm.org/docs/Projects.html says the USEDLIBS should be used to statically link libraries:
USEDLIBSThis variable holds a space separated list of libraries that should be linked into the program. These libraries must be libraries that come from your **lib** directory. The libraries must be specified without their "lib" prefix. For example, to link libsample.a, you would set USEDLIBS to `sample.a`.
Note that this works only for statically linked libraries.
But, what is that “lib” directory? How can I specify external libxyz.a file that doesn’t live in this libs directory?
Anybody has done this?
A related question and I cannot find answers by Googling:
How should you write the main function to compile an executable LLVM pass?
You could try to use the LIBS variable, that one gets passed directly to the linker and takes arguments in the standard linking convention. It's a few items down on the page you linked.