xref: /btstack/tool/create_makefile_inc.py (revision 5c54401929043df982e040eba652f5fd7763ce15)
1*5c544019SMatthias Ringwald#!/usr/bin/env python3
26601f559SMatthias Ringwald#
36601f559SMatthias Ringwald# Create Makefile.inc file for all source folders
46601f559SMatthias Ringwald# Copyright 2017 BlueKitchen GmbH
56601f559SMatthias Ringwald
66601f559SMatthias Ringwaldimport sys
76601f559SMatthias Ringwaldimport os
86601f559SMatthias Ringwald
96601f559SMatthias Ringwaldmakefile_inc_header = '''# Makefile to collect all C source files of {folder}
106601f559SMatthias Ringwald
116601f559SMatthias Ringwald{var_name} = \\
126601f559SMatthias Ringwald'''
136601f559SMatthias Ringwald
146601f559SMatthias Ringwaldfolders = [
156601f559SMatthias Ringwald'src',
166601f559SMatthias Ringwald'src/ble',
176601f559SMatthias Ringwald'src/ble/gatt-service',
186601f559SMatthias Ringwald'src/classic',
196601f559SMatthias Ringwald]
206601f559SMatthias Ringwald
216601f559SMatthias Ringwald# get btstack root
226601f559SMatthias Ringwaldbtstack_root = os.path.abspath(os.path.dirname(sys.argv[0]) + '/..')
236601f559SMatthias Ringwald
246601f559SMatthias Ringwalddef create_makefile_inc(path):
256601f559SMatthias Ringwald    global btstack_root
266601f559SMatthias Ringwald
276601f559SMatthias Ringwald    folder_path = btstack_root + '/' + path + '/'
286601f559SMatthias Ringwald
296601f559SMatthias Ringwald    # write makefile based on header and list
306601f559SMatthias Ringwald    with open(folder_path + "Makefile.inc", "wt") as fout:
31a442c325SMilanka Ringwald        var_name = path.upper().replace('/','_').replace('-','_')+'_FILES'
326601f559SMatthias Ringwald        fout.write(makefile_inc_header.format(var_name=var_name,folder=path))
336601f559SMatthias Ringwald
346601f559SMatthias Ringwald        # get all .c files in folder
35a442c325SMilanka Ringwald        for file in sorted(os.listdir(folder_path)):
366601f559SMatthias Ringwald            if not file.endswith(".c"):
376601f559SMatthias Ringwald                continue
386601f559SMatthias Ringwald            fout.write('    %s \\\n' % file)
396601f559SMatthias Ringwald
406601f559SMatthias Ringwald        fout.write('\n')
416601f559SMatthias Ringwald
426601f559SMatthias Ringwald# create all makefile.inc
436601f559SMatthias Ringwaldif (len(sys.argv) > 1):
446601f559SMatthias Ringwald    path = sys.argv[1]
456601f559SMatthias Ringwald    print('Creating Makefile.inc for %s' % path)
466601f559SMatthias Ringwald    create_makefile_inc(path)
476601f559SMatthias Ringwaldelse:
486601f559SMatthias Ringwald    for path in folders:
496601f559SMatthias Ringwald        print('Creating Makefile.inc for %s' % path)
506601f559SMatthias Ringwald        create_makefile_inc(path)
51