宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

执行bootstrap时大量warning: but option ‘subdir-objects’ is disabled
据说是autoconf版本问题,把下面的代码保存到rtems源码根目录并执行即可
感谢作者bh_binghu,转自https://blog.csdn.net/bh_binghu/article/details/80132632

# !/usr/bin/env python
# -*- coding: utf-8 -*-
""" This Script add "subdir-objects" option for configure.ac file """

import os
import os.path

def add_subdir_objects(filename):
    """ find AM_INIT_AUTOMAKE line and add option
    arg: configure.ac full path
    """
    fd = open(filename, 'r')
    lines = fd.readlines()
    fd.close()
    find = False
    dst_index = 0
    dst_line = ''
    for index, line in enumerate(lines):
        if line.find("AM_INIT_AUTOMAKE") >= 0:
            find = True
            dst_index = index
            dst_line = line
            break
    if find:
        add_option = "subdir-objects"
        options_start = dst_line.find('[')
        options_end = dst_line.find(']')
        if options_end > options_start > 0:
            options = dst_line[options_start+1:options_end].split(' ')
            add_count = options.count(add_option)
            if add_count == 0:
                options.append(add_option)
            elif add_count == 1:
                return False
            elif add_count > 1:
                while add_count > 1:
                    options.remove(add_option)
                    add_count -= 1
            new_line = "AM_INIT_AUTOMAKE([%s])
" % ' '.join(options)
            print new_line
            lines[dst_index] = new_line
            fd = open(filename, 'w')
            fd.writelines(lines)
            fd.close()

    return True


def main():
    """ main function, no arg
    """
    dst_dir = './'
    for root, dirs, files in os.walk(dst_dir):
        if "configure.ac" in files:
            fullname = os.path.join(root, "configure.ac")
            if add_subdir_objects(fullname):
                print fullname
    pass


if __name__ == '__main__':
    main()

autoconf automake aclocal的版本问题
刚开始因为一些问题,我的makefile显示是由automake 1.15版本生成的,而不是rtems官方的1.12版本
导致最终编译的时候提示start.o有问题编译失败。
说明rtems编译依赖auto系列的版本