【问题标题】:How can I automatically set version numbers in a Makefile?如何在 Makefile 中自动设置版本号?
【发布时间】:2015-11-26 18:27:58
【问题描述】:

我有一个 Makefile 用于启动包构建工具。我的debian 文件和rpm 构建文件在同一个目录中,我可以说build debbuild rpm 和包构建。

现在,当我更新软件包时,我会在必要时对源进行去皮,并手动使用新版本号更新Makefile。我想自动化版本号,因为它很乏味,但我不知道该怎么做。

我的 Makefile 如下所示:

# a list of tools we depend on and must install if they're missing
DEBTOOLS=/usr/bin/debuild-pbuilder
RPMBUILD=/usr/bin/rpmbuild

# convenience target for "make deb"
deb: my-packages_1.1.1_all.deb

# check for the pbuilder package
/usr/bin/debuild-pbuilder:
    apt-get -y install pbuilder

# convenience target for "make rpm".  This should acctually be strutured to depend on the RPM file as "deb" does
rpm:
    my-package-1.1.1-Public.noarch.rpm

# the target package (on Ubuntu at least)
my-package_1.0_all.deb: $(DEBTOOLS)
    cd my-package; debuild-pbuilder -us -uc

my-package-1.1-Public.noarch.rpm: $(RPMBUILD) tar-source
    cd my-package-rpm; rpmbuild -bb SPECS/my-packages.spec

tar-source:
    tar -cvzf my-packages-1.1.1.tar.gz my-package-1.1.1/

【问题讨论】:

    标签: makefile debian packaging rpmbuild


    【解决方案1】:

    我不知道 rpm,但是对于 debian,您可以使用 -v 参数创建一个调用 debchange 的目标

    未经测试的样本:

    VERSION=`git describe`
    
    bump-version:
                dch -v $(VERSION)
    

    【讨论】:

      【解决方案2】:

      您可以尝试使用类似以下的方式来获取 Debian 版本字符串:

      dpkg-parsechangelog --show-field Version

      我不知道 rpm 的情况。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-29
        • 2016-11-02
        • 2015-06-06
        • 2011-02-07
        • 1970-01-01
        • 1970-01-01
        • 2022-10-16
        相关资源
        最近更新 更多