Esempio n. 1
0
def show_usage():
    print 'buildtool -- a tool for building packages.'
    print
    print 'Usage:   buildtool action [target]'
    print
    print wrap_for_usage('Actions: ', build_action_map().keys())
    print
    print wrap_for_usage('Targets: ', packageinfo.get_packages())
    print
    print 'See supplied README file for more details.'
Esempio n. 2
0
def do_generate_makefile():
    dependency_map = {}
    for name in packageinfo.get_packages():
        info = packageinfo.get(name)
        if info.enabled:
            dependency_map.update(info.dependency_map())
    names = sorted(dependency_map.iterkeys())
    build_targets = add_prefix('build-', names)
    clean_targets = add_prefix('clean-', names)

    target_file = path.join(packageinfo.get_work_dir(), 'Makefile')
    with open(target_file, 'w') as f:
        f.write('export BUILDTOOL_PROFILE  := %s\n' % _config_profile)
        f.write('export BUILDTOOL_BASE_DIR := %s\n\n' % _base_dir)

        f.write('buildtool := %s %s\n\n' % (sys.executable, path.abspath(__file__)))

        f.write('build := $(buildtool) build\n')
        f.write('clean := $(buildtool) clean\n\n')

        f.write('_default:\n')
        f.write('\t@echo No defaults. Please, specify target to build.\n\n')

        f.write('refresh:\n')
        f.write('\t@$(buildtool) generate-makefile\n\n')

        f.write('clean: %s\n\n' % wrap_for_make(clean_targets))

        for name, target in zip(names, build_targets):
            deps = add_prefix('build-', dependency_map[name])
            f.write('%s: %s\n' % (target, wrap_for_make(deps)))
            f.write('\t@$(build) %s\n\n' % name)

        for name, target in zip(names, clean_targets):
            f.write('%s:\n' % target)
            f.write('\t@$(clean) %s\n\n' % name)

        f.write('.PHONY: _default refresh clean\n')
        f.write('.PHONY: %s\n' % wrap_for_make(build_targets))
        f.write('.PHONY: %s\n' % wrap_for_make(clean_targets))