From 7449cfb5fb57833b48d29130bdbea490a43c2035 Mon Sep 17 00:00:00 2001 From: bsongis Date: Fri, 3 Feb 2012 23:00:29 +0000 Subject: [PATCH] Compile script --- util/compile.py | 54 ++++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/util/compile.py b/util/compile.py index d24112f49..5ae32fd01 100644 --- a/util/compile.py +++ b/util/compile.py @@ -3,22 +3,24 @@ import os, sys, shutil from subprocess import call -options_stock = [("frsky", "EXT=STD", "EXT=FRSKY"), - ("heli", "HELI=NO", "HELI=YES"), - ("templates", "TEMPLATES=NO", "TEMPLATES=YES"), - ("speaker", "BEEPER=BUZZER", "BEEPER=SPEAKER"), +options_stock = [[("", "EXT=STD"), ("frsky", "EXT=FRSKY"), ("jeti", "EXT=JETI"), ("ardupilot", "EXT=ARDUPILOT"), ("nmea", "EXT=NMEA")], + [("", "HELI=NO"), ("heli", "HELI=YES")], + [("", "TEMPLATES=NO"), ("templates", "TEMPLATES=YES")], + [("", "AUDIO=NO"), ("audio", "AUDIO=YES")], + [("", "HAPTIC=NO"), ("haptic", "HAPTIC=YES")], # ("DSM2", "DSM2="NO", "DSM2=PPM"), # ("PXX", "PXX=NO", "PXX=YES"), - ] + ] -options_v4 = [("heli", "HELI=NO", "HELI=YES"), - ("templates", "TEMPLATES=NO", "TEMPLATES=YES"), +options_v4 = [[("", "HELI=NO"), ("heli", "HELI=YES")], + [("", "TEMPLATES=NO"), ("templates", "TEMPLATES=YES")], ] languages = ["en", "fr"] def generate(hex, arg, options): - states = [False] * len(options) + result = [] + states = [0] * len(options) index = 0 while 1: @@ -28,31 +30,41 @@ def generate(hex, arg, options): hex_file = hex make_args = ["make", arg] for i, option in enumerate(options): - if states[len(options) - 1 - i]: - hex_file += "-" + option[0] - make_args.append(option[2]) - else: - make_args.append(option[1]) + state = states[len(options) - 1 - i] + if option[state][0]: + hex_file += "-" + option[state][0] + make_args.append(option[state][1]) hex_file += "-" + language make_args.append("TRANSLATIONS=" + language.upper()) print hex_file call(["make", "clean"]) call(make_args) shutil.copyfile("open9x.hex", "../binaries/" + hex_file + ".hex") + result.append(hex_file) - try: - index = states.index(False) - except: + for index, state in enumerate(states): + if state < len(options[len(options) - 1 - index]) - 1: + for i in range(index): + states[i] = 0 + states[index] += 1 + break + else: break - for i in range(index): - states[i] = False - states[index] = True + + return result + +def generate_c9x_list(filename, hexes, size): + f = file(filename, "w") + for hex in hexes: + f.write('open9x->add_option(new Open9xFirmware("%s", new Open9xInterface(%s), OPEN9X_BIN_URL "%s.hex"));\n' % (hex, size, hex)) # stock board -generate("open9x-stock", "PCB=STD", options_stock) +hexes = generate("open9x-stock", "PCB=STD", options_stock) +generate_c9x_list("../../companion9x/src/open9x-stock-binaries.cpp", hexes, "EESIZE_STOCK") # v4 board -generate("open9x-v4", "PCB=V4", options_v4) +hexes = generate("open9x-v4", "PCB=V4", options_v4) +generate_c9x_list("../../companion9x/src/open9x-v4-binaries.cpp", hexes, "EESIZE_V4") # stamp call(["make", "stamp"])