Hey missed some of the answers.
Answer 1: It depends on your application

... What do you want to do with it? Should it be portable? If so, it should be a unix style shared library. If it's just for OS X, then a framework will be better.
Answer 2: See my post above. In addition:
When you compile a large program (and libraries in your case), you need to first compile the object files, then link then. When you do a straight cc, you are telling the compiler to both compile and link then. What you want to do is in CFLAGS, add a -c (and also probably -no-cpp-precompile). You might also need to do -flat_namespace and quite possibly -traditional_cpp.
Take a look at the release notes of Project Builder.
__nether