从GitHub检索Common Lisp项目依赖项

时间:2015-12-18 19:05:01

标签: git github common-lisp quicklisp asdf

我有一个Common Lisp项目,它依赖于在GitHub上托管的C / C ++库。我需要克隆,配置和建立这种依赖关系,以便我的项目能够工作,我更喜欢在Common Lisp中执行此操作,而不是提供shell脚本。

为Common Lisp项目自动执行此操作的最佳方法是什么?我尝试用INFERIOR-SHELL复制我的shell命令,但它在git clone上崩溃了。

1 个答案:

答案 0 :(得分:1)

一些可能性:

  • 如果您的项目本身是Git仓库(GitHub或其他),请将C库作为子模块。

    git submodule add --name clib git@github.com:someone/clib ./src/clib

  • 或者,也许使用drakma或您喜欢的HTTP客户端(甚至可能是curlwget)来从GitHub中删除源代码的tarball而不是克隆。 (假设您只对构建包而不是编辑包感兴趣。)

  • Makefile运行整个结帐和构建流程。 inferior-shell可能是可行的;我通常使用uiop:run-program,因为ASDF提供了它,只需呼叫make

```

   all: src/clib/lib/libclib.so

   src/clib/lib/libclib.so: src/clib/Makefile
             $(MAKE) -C src/clib all

   src/clib/Makefile: src/clib/configure
             cd src/clib; ./configure

   src/clib/configure: src/clib/configure.in
             cd src/clib; autoconf

   src/clib/configure.in:
             git clone https://github.com/someone/clib ./src/clib     

```

你没有提到你从git clone得到的错误,但是我要猜测它期待用户输入(例如,解锁你的SSH钥匙串) 。假设它是一个公开可见的项目,您可能最好使用https: URI而不是SSH(git@github.com:)版本。