下载,修补和构建外部库

时间:2013-11-16 19:21:32

标签: python waf

我正在尝试将waf设置为我正在处理的项目的构建系统。编译和使用项目中已有的文件工作得很好,很容易理解。但是,我现在要做的是下载newlib,应用补丁,构建它,然后用它来编译我项目中的更多文件。我不完全确定如何使用waf来做到这一点。这是我到目前为止所做的:

project
+-- src
  +-- stuff.c
  +-- wscript
+-- newlib
  +-- newlib.patch
  +-- wscript
+-- wscript

这是newlib / wscript文件的内容:

def configure(ctx):
    '''
   Configure the library.
   '''

   # tools
   ctx.load("flex")
   ctx.load("bison")

   # locate programs
   ctx.find_program("wget", var="WGET")
   ctx.find_program("tar", var="TAR")
   ctx.find_program("patch", var="PATCH")
   ctx.find_program("strip")

   # XXX
   ctx.env["NEWLIB_URL"] = "ftp://sourceware.org/pub/newlib/newlib-2.0.0.tar.gz"

def build(ctx):
   '''
   Build the library.
   '''

   # download the library
   ctx(rule="${WGET} -q -O ${TGT} ${NEWLIB_URL}", target="newlib-2.0.0.tar.gz")
   ctx(rule="${TAR} -xzf ${SRC} -C newlib", source="newlib-2.0.0.tar.gz")

   # apply the patch
   ctx(rule="${PATCH} -p0 -i ${SRC}", source="newlib.patch")

应用补丁的最后一条规则不起作用,但即使这样做,我也忍不住觉得我做错了。这里的正确方法是什么?有没有更好的方法呢?

0 个答案:

没有答案