Skip to content
Tony Bai edited this page Dec 2, 2019 · 10 revisions

Table of Contents

简介

buildc是一个C语言项目构建管理辅助工具(需python版本[2.4.3,]3.0.0), sed和gawk)。

buildc目前主要实现了三个功能:

  1. 第三方依赖库的远程获取和本地管理
  2. 根据目标主机环境、目标主机本地缓存的第三方库情况以及项目本身所依赖的第三方库的最新配置,自动生成一份包含了依赖库环境变量信息的Make.rules文件,或重新更新已有Make.rules文件(上一次由buildc生成的)。项目中的Makefile只需包含(include)Make.rules文件并使用该文件中的变量即可。
  3. 生成安装工程,构建、清理和上传安装包

最新更新

  • 2014-04-16 发布buildc 0.3.2版本
    • 增加SVN库版本变更的处理逻辑
    • 增加设置SVN的用户名和密码
    • 增加buildc pack build/source命令可输入参数user和passwd
    • 增加打包时默认清除打包工程中src/lib目录
    • 增加打包时过滤掉.svn路径
    • 增加显示打包时make命令的输出信息
  • 2013-12-6 fix bug: 当库版本更新后,无法自动获取,生成Makefile失败
  • 2013-07-15 发布buildc 0.3.1版本
    • 提高容错能力
    • 支持命令行变量
    • 支持指定项目构建配置文件
  • 2013-06-20 发布buildc 0.3.0以及后续版本适用的user guide在这里
  • 2013-05-10 buildc-0.3.0发布
    • 重新定义buildc cache init/update/upgrade/remove各命令的语义
    • 重新定义buildc config make的命令语义
    • 利用OO范型对局部代码进行重构
  • 2013-05-10 buildc-0.2.3发布
    • 执行cache upgrade时增加对.buildc.rc中repository特征文件存在性的验证
    • 执行config make时增加对Make.rules文件是否为空的判断
    • 执行pack source时,添加VERSION文件,记录打包的上下文信息。
  • 2013-04-02 fork a copy to https://github.com/bigwhite/buildc.git.
  • 2013-01-15 buildc-0.2.2发布
    • 增加buildc pack source --component=[src|deps|all]命令,用于创建源码与依赖文件包
    • 增加--ignore-error命令行参数,用于跳过一些可以忽略的错误。
  • 2012-12-06 buildc-0.2.1发布
    • 修正buildc pack --cmode=32-bit无法创建32位安装包的问题
    • 修正buildc cache相关命令与cmode的结合问题,修正后,buildc cache相关命令将根据--cmode的值对本地缓存中的相应库进行处理。如果不指定cmode的值,buildc将同时处理64-bit和32-bit库。
  • 2012-11-06 buildc-0.2.0发布
    • 支持将依赖的第三方库根据目标程序运行平台类别自动打包到最终的安装包中。
  • 2012-07-18 buildc-0.1.9发布
    • 支持将多个子工程打包到一个安装包中
    • 打包时自动生成VERSION文件
    • 去除make.rules.in中的DEBUG变量定义
    • 进一步细化模板例子
  • 2012-07-02 buildc-0.1.8发布
    • 删除Make.rules模板中的FOPTIMIZE变量
    • 为setup.py.in增加了backup功能、log facility等
    • 将setup.py中原install命令的参数full改为'all';
    • 提供一个deps_check.py的更为详尽的参考实现
  • 2012-04-19 buildc-0.1.7发布
    • 修改buildc init的执行语义,只创建.buildc.rc
    • 增加buildc config init,负责创建buildc.cfg
    • 用buildc config make替代buildc config-make
  • 2012-04-19 buildc-0.1.6发布
    • 对buildc的代码结构进行调整
    • 修改了cache upgrade的实现
  • 2012-04-13 buildc-0.1.5发布
    • add STATIC_LIBS and DYNAMIC_LIBS
    • add SYSTEM_LIBS
  • 2012-04-12 buildc-0.1.4发布
    • fix a bug in command.execute when command executing result is over 256
  • 2012-4-10 buildc-0.1.3发布
    • 修改Make.rules.in模板
    • 修正一些bug
  • 2012-02-16 buildc-0.1.2发布
    • 增加安装包制作功能
  • 2012-02-08 buildc-0.1.1发布
    • Add setup.py and ChangeLog
    • fix some bugs
  • 2011-12-08 buildc第一个版本0.1.0发布

使用前提

源码工程构建功能使用前提

第三方库必须按特定规划集中存储在一个版本控制服务器中,每个第三方库的组织形式都像下面这样:

package_name/
      version/
         CPU_MODE_OS/
            include/
            lib/
  • cpu - x86, sparc
  • mode - 64, 32
  • os - solaris, linux

安装工程创建、安装包构建功能使用前提

buildc支持安装工程(setup)创建、构建、清理与上传安装包,前提是安装工程符合下面目录组织结构:

setup_project/
      setup.cfg
      distributions/
         cn_foo_2.14.0.0_x86_linux_64bit.tar.gz
      src/
         setup.py
         layout.cfg
         README
         app/
         conf/
         deps/
           libevent.so
           ... ...
         scripts/
           deps_check.py
           env_gen.py
         others/

安装

buildc的安装未采用标准python安装模式。

安装步骤如下:

  • 下载最新发布包或svn export/checkout相关发布版本的源码
  • 在目标主机下执行setup.py(如果安装到默认路径下,需要root权限),buildc会被默认安装到/usr/share/buildc下面;在/usr/bin下会建立buildc可执行程序的符号链接;如果要指定安装路径,则可通过--prefix=INSTALL_PATH命令行参数指定。
buildc安装后的目录结构如下:
buildc         脚本入口
core/          核心逻辑
utils/         工具库
templates/     Make.rules.in、配置模板等
ChangeLog      变更日志
setup.py       安装和卸载脚本
  • 卸载方法 执行setup.py uninstall [--prefix=INSTALL_PATH]接口(如果卸载默认路径下的buildc,则需要root权限)

使用方法

其他