#! /usr/bin/env python # encoding: utf-8 # Thomas Nagy, 2006 (ita) VERSION='0.0.1' APPNAME='d_test' top = '.' out = 'build' def options(opt): opt.load('compiler_d') def configure(conf): # why does dmd require -fPIC on everything? conf.env.DFLAGS='-fPIC' conf.load('compiler_d') conf.env.LIB_PTHREAD = ['pthread'] conf.check_dlibrary() try: conf.check(features='d dprogram', fragment='int main() {return 0;}', compile_filename='test.d', dflags=['-version=Posix']) except: pass else: conf.env.append_value('DFLAGS', ['-version=Posix']) def build(bld): if bld.env.DLIBRARY != 'tango': bld.recurse('src') # here is how to use the object-oriented notation bld.stlib( source = 'testlib/code.d', includes = '.', name = 'testlib', target = 'testlib') bld.program( source = 'example.d', target = 'd_test', use = 'testlib PTHREAD', includes = '.') else: # bad pun hidden bld.program(source='foo.d', target='bar', use='hmm', includes=[bld.path]) bld.stlib(source='hmm.d', target='hmm') #bld(features='d dshlib', source='shared.d', target='sha') # shared libs do not work here: # ldc -relocation-model=pic -L-shared shared.d -offoo # /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld: # /disk/comp/ldc/bin/../lib/libtango.a(tango-core-rt-compiler-ldc-object_-O2.o): # relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC