1import os 2import sys 3 4def usage(): 5 print '%s all -- build all bsp' % os.path.basename(sys.argv[0]) 6 print '%s clean -- clean all bsp' % os.path.basename(sys.argv[0]) 7 print '%s project -- update all prject files' % os.path.basename(sys.argv[0]) 8 9BSP_ROOT = os.path.join("..", "bsp") 10 11if len(sys.argv) != 2: 12 usage() 13 sys.exit(0) 14 15# get command options 16command = '' 17if sys.argv[1] == 'all': 18 command = ' ' 19elif sys.argv[1] == 'clean': 20 command = ' -c' 21elif sys.argv[1] == 'project': 22 23 projects = os.listdir(BSP_ROOT) 24 for item in projects: 25 project_dir = os.path.join(BSP_ROOT, item) 26 27 if os.path.isfile(os.path.join(project_dir, 'template.Uv2')): 28 print ('prepare MDK3 project file on ' + project_dir) 29 command = ' --target=mdk -s' 30 31 os.system('scons --directory=' + project_dir + command) 32 33 if os.path.isfile(os.path.join(project_dir, 'template.uvproj')): 34 print ('prepare MDK4 project file on ' + project_dir) 35 command = ' --target=mdk4 -s' 36 37 os.system('scons --directory=' + project_dir + command) 38 39 if os.path.isfile(os.path.join(project_dir, 'template.uvprojx')): 40 print ('prepare MDK5 project file on ' + project_dir) 41 command = ' --target=mdk5 -s' 42 43 os.system('scons --directory=' + project_dir + command) 44 45 if os.path.isfile(os.path.join(project_dir, 'template.ewp')): 46 print ('prepare IAR project file on ' + project_dir) 47 command = ' --target=iar -s' 48 49 os.system('scons --directory=' + project_dir + command) 50 51 sys.exit(0) 52else: 53 usage() 54 sys.exit(0) 55 56projects = os.listdir(BSP_ROOT) 57for item in projects: 58 project_dir = os.path.join(BSP_ROOT, item) 59 if os.path.isfile(os.path.join(project_dir, 'SConstruct')): 60 if os.system('scons --directory=' + project_dir + command) != 0: 61 print 'build failed!!' 62 break 63