target = 'System' files = Split(""" Source/Buffers.c Source/Plugin.c Source/System.c """) libs = Split(""" kernel32 user32 ole32 """) examples = Split(""" Resource.dll System.nsi System.nsh SysFunc.nsh """) docs = Split(""" System.html WhatsNew.txt """) Import('BuildPlugin env') defs = ['SYSTEM_EXPORTS'] msvc = 'msvc' in env['TOOLS'] or 'mstoolkit' in env['TOOLS'] if env['TARGET_ARCH'] != 'amd64' or msvc: # BUGBUG: Call-amd64.S is missing GAS macros srcsuff = '' if env['TARGET_ARCH'] != 'x86': srcsuff = '-' + env['TARGET_ARCH'] defs += ['SYSTEM_NOCALLBACKS'] # BUGBUG: Remove this when CallBack() is implemented if msvc: # BUGBUG: Remove this when GAS is fixed defs += ['SYSTEM_PARTIALCALLSUPPORT'] filename = 'Call' + srcsuff conf = env.Configure() if conf.TryCompile('END', '.S'): files += ['Source/'+filename+'.S'] elif conf.TryCompile('.end', '.sx'): files += ['Source/'+filename+'.sx'] else: print 'WARNING: System.dll: unable to find assembler for '+filename+'.S' conf.Finish() else: print 'WARNING: System.dll: missing Win64 code, dynamic function calls not supported' BuildPlugin( target, files, libs, examples, docs, nodeflib = False, defines = defs ) res = 'Resource/Resource.rc' res_obj = 'Resource/Resource-rc.o' res_target = env.RES(res_obj, res) res_main = env.Object('Resource/Main.c') resources = Split(""" Resource/Icon.ico Resource/Resource.h """) env.Depends(res_target, resources) env.SharedLibrary('Resource', res_target + res_main)