1#!/usr/bin/env python 2# encoding: utf-8 3# Jérôme Carretero, 2011 (zougloub) 4 5from waflib import Options 6from waflib.Tools import ccroot 7from waflib.Configure import conf 8 9@conf 10def find_dcc(conf): 11 conf.find_program(['dcc'], var='CC', path_list=getattr(Options.options, 'diabbindir', "")) 12 conf.env.CC_NAME = 'dcc' 13 14@conf 15def find_dld(conf): 16 conf.find_program(['dld'], var='LINK_CC', path_list=getattr(Options.options, 'diabbindir', "")) 17 conf.env.LINK_CC_NAME = 'dld' 18 19@conf 20def find_dar(conf): 21 conf.find_program(['dar'], var='AR', path_list=getattr(Options.options, 'diabbindir', "")) 22 conf.env.AR_NAME = 'dar' 23 conf.env.ARFLAGS = 'rcs' 24 25@conf 26def find_ddump(conf): 27 conf.find_program(['ddump'], var='DDUMP', path_list=getattr(Options.options, 'diabbindir', "")) 28 29@conf 30def dcc_common_flags(conf): 31 v = conf.env 32 v['CC_SRC_F'] = [] 33 v['CC_TGT_F'] = ['-c', '-o'] 34 35 # linker 36 if not v['LINK_CC']: 37 v['LINK_CC'] = v['CC'] 38 v['CCLNK_SRC_F'] = [] 39 v['CCLNK_TGT_F'] = ['-o'] 40 v['CPPPATH_ST'] = '-I%s' 41 v['DEFINES_ST'] = '-D%s' 42 43 v['LIB_ST'] = '-l:%s' # template for adding libs 44 v['LIBPATH_ST'] = '-L%s' # template for adding libpaths 45 v['STLIB_ST'] = '-l:%s' 46 v['STLIBPATH_ST'] = '-L%s' 47 v['RPATH_ST'] = '-Wl,-rpath,%s' 48 #v['STLIB_MARKER'] = '-Wl,-Bstatic' 49 50 # program 51 v['cprogram_PATTERN'] = '%s.elf' 52 53 # static lib 54 v['LINKFLAGS_cstlib'] = ['-Wl,-Bstatic'] 55 v['cstlib_PATTERN'] = 'lib%s.a' 56 57def configure(conf): 58 conf.find_dcc() 59 conf.find_dar() 60 conf.find_dld() 61 conf.find_ddump() 62 conf.dcc_common_flags() 63 conf.cc_load_tools() 64 conf.cc_add_flags() 65 conf.link_add_flags() 66 67def options(opt): 68 """ 69 Add the ``--with-diab-bindir`` command-line options. 70 """ 71 opt.add_option('--with-diab-bindir', type='string', dest='diabbindir', help = 'Specify alternate diab bin folder', default="") 72 73