Marius Bakke writes: >> + (add-after 'install 'install-pkg-config >> + (lambda* (#:key outputs #:allow-other-keys) >> + (let* ((out (assoc-ref outputs "out")) >> + (pkgconfig-path (string-append out "/lib/pkgconfig"))) >> + (mkdir-p pkgconfig-path) >> + (with-output-to-file >> + (string-append pkgconfig-path "/libcrypto++.pc") >> + (lambda _ >> + (format #t >> + "prefix=~@*~a~@ >> + libdir=${prefix}/lib~@ >> + includedir=${prefix}/include~@ >> + Name: libcrypto++-~1@*~a~@ >> + Description: Class library of cryptographic schemes~@ >> + Version: ~1@*~a~@ >> + Libs: -L${libdir} -lcryptopp~@ >> + Cflags: -I${includedir}~%" >> + out version))))))))) > > Ahh.. This is why it was let-bound. You can "unquote" version here to > make it be evaluated without binding it at the top level. Note: You > probably also have to "quasiquote" the arguments with ` instead of ' (on > the line that contains #:phases). I forgot to explain what "unquote" means. It's the ',' symbol, meaning "insert the result of this expression". Read more about unquote and quasiquote here: https://www.gnu.org/software/guile/manual/guile.html#Expression-Syntax