Thanks to Common Lisp's powerful macro system, I can write lots of code template to generate functions avoid writing redundant code manually. What's more, it can generate different code based on configure file, so I can implement many kinds of feature just apply different configure file.

**However, I have no idea how to deliver the project (It's a library):**

In my opinion, maybe every config file corresponds to a package?

For example, there is a common lisp file `common.lisp`, it generate different functions based different configure file in compile-time.
It reads `a.conf` in compile-time and generate functions for `PackageA` and reads config `b.conf` in compile-time for `PackageB`. But `in-place` statement must specify only one package, the `common.lisp` can't both in Package A and B.

**By the way, I still can't find out a proper method to get the configure path of project (So I can read and use it in compile-time to generate functions)** I have tried `*load-truename*` for it points to the cache path which contains .fasl file on SBCLv2.0.1. But it looks like the staic files are not contained in it, so it doesn't works.