Changeset 40:e1419398e05a

Show
Ignore:
Timestamp:
08/24/06 13:36:44 (2 years ago)
Author:
halina@ada
Children:

41:41a57ae97f55 42:55a281b92e00

Message:

merged

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • Env/BuildJob.py

    r34 r40  
    66class CompInfo: 
    77 
    8     def __init__(self, name, includes, libpathes = [], libs = [] , uses = [], node = None): 
     8    def __init__(self, name, includes = [], libpathes = [], libs = [] , uses = [], node = None): 
    99        self.name = name 
    1010        self.includes = sets.ImmutableSet(includes) 
     
    2828 
    2929             
    30         elp = sets.ImmutableSet(evar('LIBPATH')) 
    31         einc = sets.ImmutableSet(evar('CPPPATH')) 
    32         elibs = sets.ImmutableSet(evar('LIBS')) 
    33  
    34      
    35         newlp = self.libpathes - elp 
    36         newinc = self.includes - einc 
    37         newlibs = self.libs - elibs  
    38          
    39  
    40         if len(newlp): 
    41             env.Append(LIBPATH = list(newlp)) 
    42         if len(newinc): 
    43             env.Append(CPPPATH = list(newinc)) 
    44         if len(newlibs): 
    45             env.Append(LIBS = list(newlibs)) 
     30        env.AppendUnique(LIBPATH = list(self.libpathes)) 
     31        env.AppendUnique(CPPPATH = list(self.includes)) 
     32        env.AppendUnique(LIBS = list(self.libs)) 
    4633             
    4734        # print "Preparing for:", self.name, " libs=", self.libs  
     
    6148          env.Help(opts.GenerateHelpText(env)) 
    6249 
     50          self.env = env 
    6351          self.debug = env["debug"] 
    6452          self.targetos = env["target_os"] 
     
    6654 
    6755          self.cc = os.environ['CC'] 
    68           print "self CC is ", self.cc 
    69            
    70           self.cf = os.environ['CFLAGS'] 
    71           print "self CFLAGS is ", self.cf 
     56 
     57#          self.cf = os.environ['CFLAGS'] 
     58#          print "self CFLAGS is ", self.cf 
    7259           
    7360          self.armlinuxTarget = "arm-linux" in self.cc 
     
    10794              self.buildpath += "/release" 
    10895           
    109            
    110  
    111  
    112     def Component(self, name, includes = [], libpath = [], libs = [] , uses = [], node = None):  
     96 
     97          self.sharedtarget = False 
     98 
     99 
     100    def Component(self, name, includes = [], libpath = [], libs = [], uses = [], node = None):  
    113101          if self.components.has_key(name): 
    114102              return self.components[name] 
     
    117105              if isinstance(x, CompInfo): 
    118106                  return x 
     107               
     108              if not x in self.components.keys(): 
     109                  self.components[x] = CompInfo(x, libs = [ x ]) 
     110                   
    119111              return self.components[x] 
    120112 
    121           newuses = [ compinfo(x) for x in uses ] 
    122  
     113          if uses and len(uses): 
     114              newuses = [ compinfo(x) for x in uses ] 
     115          else: 
     116              newuses = [] 
     117 
     118          if node: 
     119              self.env.Alias(name, node) 
     120 
     121          if node: 
     122              if len(libpath) == 0: 
     123                  libpath = [node[0].dir] 
     124              if len(libs) == 0: 
     125                  libs = [name] 
     126                   
    123127          m = CompInfo(name, includes, libpath, libs, newuses, node) 
    124128          self.components[name] = m 
     129          if node: 
     130              self.env.Alias(name, node) 
     131 
    125132          return m 
    126133 
     
    130137     
    131138     
    132     def Use(self, env,  uses): 
     139    def Use(self, env,  uses, USEDEBUG=False): 
    133140 
    134141          dict = env.Dictionary() 
     
    146153          for m in usedComponents: 
    147154              m.use(env) 
     155 
     156          stdlibs = Set(uses) - Set(self.components.keys())  
     157          env.AppendUnique(LIBS = list(stdlibs)) 
     158           
     159           
     160          #showprep("After preparing") 
     161 
     162 
     163 
     164 
     165    def NewEnv(self): 
     166          env = Environment(options = self.opts) 
     167          env['CC'] = self.cc 
     168          if self.win32Target: 
     169              # print "preparing for Win32"  
     170              env['CC']=self.cc 
     171              env.Append( CPPDEFINES = { 'WIN32' : 1, '_WIN32' : 1 } ) 
     172          if self.msvc: 
     173              debug = "" 
     174              if self.debug: 
     175                  debug = "d" 
     176                  env.AppendUnique(LINKFLAGS = [ "/DEBUG", "/MAP", "/NODEFAULTLIB:LIBC.LIB" ]) 
     177              env.AppendUnique(SHCCFLAGS = "/MD" + debug, SHCXXFLAGS = "/MD" + debug) 
    148178               
    149           #showprep("After preparing") 
    150  
    151  
    152  
    153  
    154     def NewEnv(self): 
    155          
    156           return Environment(CC = self.cc,  options = self.opts) 
    157 #          return Environment(CC = self.cc, CPPFLAGS = self.cf,  options = self.opts) 
     179          return env   
    158180 
    159181 
    160182    def Autoconf(self, env, moduleName, outputFiles, 
    161183                       configureCommand = './configure', makeCommand = 'make', 
    162                        configureFiles = 'configure', makeFiles = 'Makefile'): 
     184                       configureFiles = 'configure', makeFiles = 'Makefile', 
     185                       uses = None, includes = None, libpath = None, libs = None): 
    163186        """ 
    164187        Build a library using autotools: configure and make. 
    165188         
    166189        Algorithm: 
    167         - Copy the library source directory to the build path directory 
    168190        - Launch the configure command 
    169191        - Launch the make command 
     
    193215 
    194216        env.Depends(make, makefile) 
     217        #self.Component(moduleName, includes, libpath, libs, uses) 
    195218        env.Alias(moduleName, [make]) 
     219         
    196220 
    197221 
     
    216240     
    217241       
    218        
    219            
     242    def Library(self, env, target, source = None, uses = [], includes = [], libpath = [], libs = [],  sharedtarget = None, **kw): 
     243 
     244        if sharedtarget == None: 
     245            sharedtarget = self.sharedtarget 
     246 
     247 
     248        self.Use(env, uses) 
     249        env.AppendUnique( **kw ) 
     250        if sharedtarget: 
     251            obj = env.SharedObject( source = source) 
     252        else: 
     253            obj = env.StaticObject( source = source) 
     254             
     255 
     256        lib = env.StaticLibrary( target, obj ) 
     257        self.Component(target, includes = includes, libpath = libpath, libs = libs, uses = uses, node = lib) 
     258 
     259        return lib 
     260 
     261 
     262    def SharedLibrary(self, env, target, source,  uses = [], includes = [], libpath = [], libs = [],  **kw): 
     263 
     264        self.Use(env, uses) 
     265        env.AppendUnique( **kw ) 
     266        lib = env.SharedLibrary( target, source = source ) 
     267        self.Component(target, includes = includes, libpath = libpath, libs = libs, uses = uses, node = lib) 
     268 
     269        return lib 
     270     
  • eXosip/SConscript

    r19 r40  
    1212include_path = [ 
    1313        'include', 
    14         '#libosip2/include', 
     14        '#/libosip2/include', 
    1515] 
    1616 
     
    5050        defines['USE_HTTP_TUNNEL'] = 1 
    5151 
    52 if env['shared_phapi']: 
    53    exosipobj = env.SharedObject( source=sources, CPPDEFINES = defines, CPPPATH = include_path) 
    54 else: 
    55    exosipobj = env.StaticObject( source=sources, CPPDEFINES = defines, CPPPATH = include_path) 
    56     
    57 lib = env.StaticLibrary('eXosip', source = exosipobj) 
    58 BJ.Component('eXosip', includes = ["#/eXosip/include"], libpath = [lib[0].dir], libs = ["eXosip"], uses = ['osip'], node = lib ) 
     52eXosip  =  BJ.Library(env, 'eXosip', source = sources,  
     53       uses = ['osip'], 
     54       includes = ["#/eXosip/include"], 
     55       CPPDEFINES = defines, CPPPATH = include_path 
     56       ) 
    5957 
    60 Alias('eXosip', lib) 
     58 
  • httptunnel/SConscript

    r20 r40  
    2323 
    2424 
    25 BJ.Use(env, ['veronacurl']) 
    26 env.Append(CPPDEFINES = defines, CPPPATH=["."]) 
    27  
    28 if env['shared_phapi']: 
    29    ho = env.SharedObject( source = sources) 
    30 else: 
    31    ho = env.StaticObject( source = sources) 
    32  
    33 ht = env.StaticLibrary('httptunnel', source = ho) 
    34 BJ.Component('httptunnel', includes = ['#/httptunnel'], libpath = [ht[0].dir], libs = ['httptunnel'], uses = uses, node = ht) 
    35 Alias('httptunnel', ht) 
     25httptunnel = BJ.Library(env, 'httptunnel', 
     26                source = sources,  
     27                includes = ['#/httptunnel'],  
     28                uses = uses,  
     29                CPPDEFINES = defines, CPPPATH=["."] 
     30                ) 
  • libosip2/SConscript

    r34 r40  
    9999 
    100100 
    101 if env['shared_phapi']: 
    102    osipobj = env.SharedObject(source = osip_sources + osipparser_sources, CPPDEFINES = defines, CPPPATH = includes, LIBS=libs) 
    103 else: 
    104    osipobj = env.StaticObject(source = osip_sources + osipparser_sources, CPPDEFINES = defines, CPPPATH = includes, LIBS=libs) 
     101 
     102osip = BJ.Library(env, 'osip',  
     103     source = osip_sources + osipparser_sources,  
     104     includes = ['#/libosip2/include'], 
     105     CPPDEFINES = defines, CPPPATH = includes, LIBS=libs 
     106     ) 
    105107 
    106108 
    107 osip = env.StaticLibrary('osip', source = osipobj) 
    108  
    109 BJ.Component('osip', includes = ['#libosip2/include'], libpath = [osip[0].dir], libs = ["osip"])  
    110 Alias("osip", osip) 
  • libs/curl/SConscript

    r34 r40  
    114114 
    115115 
    116 env.Append(CPPPATH = include_path, CPPDEFINES = defines, LIBS = libs) 
    117  
    118 BJ.Use(env, uses) 
    119116 
    120117if BJ.osxTarget or BJ.armlinuxTarget: 
    121         lib=env.StaticLibrary('veronacurl', sources) 
     118   veronacurl = BJ.Library(env, 'veronacurl', source = sources, 
     119           use = uses, 
     120           includes = ['#/libs/curl/include'],  
     121           CPPPATH = include_path, CPPDEFINES = defines, LIBS = libs) 
    122122else: 
    123         lib=env.SharedLibrary('veronacurl', sources) 
    124  
    125 BJ.Component('veronacurl', includes = ['#/libs/curl/include'], libpath = [ lib[0].dir ],  libs = ['veronacurl'], node = lib) 
    126 Alias('curl', lib
     123   veronacurl = BJ.SharedLibrary(env, 'veronacurl', source = sources, 
     124           use = uses, 
     125           includes = ['#/libs/curl/include'],  
     126          CPPPATH = include_path, CPPDEFINES = defines, LIBS = libs
  • libs/ffmpeg/SConscript

    r9 r27  
    3131        projects = [ 
    3232                'libavutil', 
    33                 'libavcodec' 
    34         ] 
    35          
    36         env.SConscript(dirs = projects) 
    37  
     33                'libavcodec'    ] 
     34        BJ.Component("avcodec", includes = [ "#/libs/ffmpeg/libavcodec" ], libpath = [ "#/libs/ffmpeg/binary-lib" ], libs = ["avcodec"] ) 
     35        BJ.Component("avutil", includes = [ "#/libs/ffmpeg/libavutil" ] ) 
    3836else: 
    3937        env.SConscript('SConscript-avutil') 
  • libs/ffmpeg/libavcodec/SConscript

    r0 r27  
     1Import('BJ') 
     2 
     3env = BJ.NewEnv() 
     4 
    15libs = [] 
    26lib_path = [ 
    3         '../binary-lib', 
     7        '#libs/ffmpeg/binary-lib', 
    48        '.' 
    59] 
    610include_path = [ 
    711        '..', 
    8         '../libavutil', 
     12        '#libs/ffmpeg/libavutil', 
    913        '.' 
    1014] 
     
    7882sources = core_sources + i386_sources 
    7983 
    80 env = GlobalGetEnvironment() 
    81  
    82 env.GlobalAddIncludePath(include_path) 
    83 env.GlobalAddLibPath(lib_path) 
    84 env.GlobalAddDefines(defines) 
    85 env.GlobalUseLibraries(libs) 
    86  
    87 sse_env = env.Copy() 
    88 sse_env.GlobalAddCCFlags(['-msse']) 
     84#sse_env.GlobalAddCCFlags(['-msse']) 
    8985#sse_lib = sse_env.SharedObject('fft_sse', i386_sse_sources) 
    9086 
     
    9389 
    9490files = [] 
    95 if GlobalOSWindows()
     91if BJ.win32Target
    9692        copycmd = "copy" 
    9793        files += [ 
  • libs/openssl/SConscript

    r22 r40  
    1717                        'libeay32', 
    1818                        'ssleay32', 
     19            'gdi32' 
    1920                ] 
    2021                lib_path += ['#/libs/openssl/out32/msvc'] 
     
    3637 
    3738 
    38 BJ.Component('openssl', libpath = lib_path, libs = libs) 
    39 #Alias('openssl', Command(target = 'out', commands= [ "echo openssl built" ])) 
     39BJ.Component('openssl', includes = include_path, libpath = lib_path, libs = libs) 
  • libs/pixertool/SConscript

    r20 r40  
    3535        sources += ['src/null-pixertool.cpp'] 
    3636 
    37 env.Append(CPPPATH = include_path, CPPDEFINES = defines) 
    38 BJ.Use(env, libs) 
    3937 
    40 if env['shared_phapi']: 
    41    pxo = env.SharedObject( source = sources ) 
     38if True: 
     39   pxl = BJ.Library(env, target = 'pixertool',  
     40            source = sources,  
     41            uses = ["owutil", "owcutil", "avcodec", "avutil"], 
     42            includes = ["#/libs/pixertool/include"], 
     43            CPPPATH = include_path, CPPDEFINES = defines 
     44            )  
     45             
     46 
    4247else: 
    43    pxo = env.StaticObject( source = sources ) 
     48   env.Append(CPPPATH = include_path, CPPDEFINES = defines) 
     49   BJ.Use(env, libs) 
     50   if env['shared_phapi']: 
     51      pxo = env.SharedObject( source = sources ) 
     52   else: 
     53      pxo = env.StaticObject( source = sources ) 
    4454 
    45 pxl = env.StaticLibrary('pixertool', source = pxo) 
     55   pxl = env.StaticLibrary('pixertool', source = pxo) 
    4656 
    47 BJ.Component('pixertool', includes = ["#/libs/pixertool/include"], libpath = [pxl[0].dir], libs = ["pixertool"], 
    48              uses = ["owutil", "owcutil", "avcodec", "avutil"], node = pxl
     57   BJ.Component('pixertool', uses = ["owutil", "owcutil", "avcodec", "avutil"], 
     58           includes = ["#/libs/pixertool/include"]
    4959 
    50 Alias('pixertool', pxl) 
     60 
     61 
     62 
    5163 
    5264#env.SConscript('tests/SConscript') 
  • libs/portaudio/SConscript

    r34 r40  
    7474source_msvc = [ 
    7575        'pa_win/pa_x86_plain_converters.c', 
     76    'pa_win/msvc/portaudio-wengo.def' 
    7677] 
    7778 
     
    181182pa = env.SharedLibrary('portaudio', sources) 
    182183BJ.Component('portaudio', includes = ["#libs/portaudio/pa_common"], libpath = [pa[0].dir], libs = ["portaudio"])  
    183 Alias('portaudio', pa) 
    184184 
    185185 
  • libs/timer/SConscript

    r19 r40  
    3434 
    3535BJ.Component("wtimer", includes = ["#/libs/timer/include"], libpath = [lib[0].dir], libs = [ "wtimer" ], node = lib) 
    36 Alias("wtimer",  lib) 
    3736 
  • libs/util/cutil/SConscript

    r19 r40  
    1515] 
    1616 
     17msvcinc = [] 
    1718if BJ.msvc: 
    1819        include_path += ['include/cutil/msvc'] 
     
    2021                'src/msvc/dirent.c', 
    2122        ] 
     23        msvcinc = [ "#/libs/util/cutil/include/cutil/msvc" ] 
    2224 
    2325 
     
    2931 
    3032cutil = env.StaticLibrary('owcutil', source = utilobjs) 
    31 BJ.Component("owcutil", includes = ["#/libs/util/cutil/include"], libpath = [cutil[0].dir], libs = ["owcutil"], node = cutil) 
    32 Alias('owcutil', cutil) 
     33BJ.Component("owcutil", includes = ["#/libs/util/cutil/include"] + msvcinc, libpath = [cutil[0].dir], libs = ["owcutil"], node = cutil) 
  • libs/util/util/SConscript

    r20 r40  
    5454print "DEFINING owutil" 
    5555BJ.Component("owutil", includes = ["#/libs/util/util/include"], libpath = [ lib[0].dir ], libs = ["owutil"], node = lib) 
    56 Alias("owutil", lib) 
    5756 
    5857#env.SConscript('tests/SConscript') 
  • libs/webcam/SConscript

    r20 r40  
    7676 
    7777wblib = env.StaticLibrary('webcam', source = wbo) 
    78 Alias('webcam', wblib) 
    7978 
    8079BJ.Component('webcam', includes = ["#/libs/webcam/include"], libpath = [wblib[0].dir], libs = ["webcam"]) 
  • miniua/SConscript

    r34 r40  
    7777 
    7878m = env.Program('miniua', sources) 
    79 Alias("miniua", m) 
  • ortp/SConscript

    r34 r40  
    5656 
    5757ortplib = env.StaticLibrary('ortp', source = ortpobj) 
    58 Alias('ortp', ortplib) 
    5958BJ.Component('ortp', includes = [ "#/ortp/src" ], libpath = [ortplib[0].dir], libs = ["ortp"])   
  • phapi/gsm/SConscript

    r21 r40  
    3535BJ.Component('gsm', includes = include_path, libpath = [gsmlib[0].dir], libs = ['gsm'], node = gsmlib)   
    3636 
    37 Alias('gsm', gsmlib) 
  • phapi/ilbc/SConscript

    r19 r40  
    3838BJ.Component('ilbc', includes = include_path, libpath = ["."], libs = ["ilbc"], node = ilbclib) 
    3939 
    40 Alias('ilbc', ilbclib) 
    4140 
  • phapi/speex/SConscript

    r19 r27  
    55if BJ.osxTarget: 
    66        env.Autoconf('speex', ['libspeex/.libs/libspeex.la']) 
    7         BJ.Component('speex', ['include'], None, 'speex') 
     7        BJ.Component('speex', ['include/speex'], None, 'speex') 
    88 
    99else: 
  • phapi/speex/libspeex/SConscript

    r19 r40  
    4141 
    4242env = BJ.NewEnv() 
    43 includes = [] 
    44 libpath = [] 
     43includes = ['#phapi/speex/include' ] 
     44libpath = ["#phapi/speex/libspeex"] 
     45defines = { } 
     46 
    4547node = None 
    4648# this is private WIN32 specific include 
    4749if BJ.win32Target: 
    48         includes = ['../win32', '../include', '.'] 
     50        includes += ['#phapi/speex/win32'] 
    4951 
    5052        defines = { 
     
    5254        } 
    5355 
    54         env.Append(CPPDEFINES = defines, CPPPATH = includes, CCFLAGS = BJ.phapi_optimization_flags) 
    55         node = env.StaticLibrary('speex', sources) 
    56         libpath = ["."] 
     56         
     57env.Append(CPPDEFINES = defines, CPPPATH = includes, CCFLAGS = BJ.phapi_optimization_flags) 
     58node = env.SharedObject( source = sources) 
     59lnode = StaticLibrary('speex', source = node) 
    5760 
    58  
    59 BJ.Component("speex", includes, libpath, "speex")   
    60  
     61BJ.Component("speex", includes, libpath = [lnode[0].dir], libs = ["speex"], node = lnode)   
  • phapi/stun/SConscript

    r21 r40  
    2424BJ.Component('stun',  includes = include_path, libpath = [stunlib[0].dir], libs = ['stun'], node = stunlib) 
    2525 
    26 Alias('stun', stunlib)