diff options
Diffstat (limited to 'c/wscript')
-rw-r--r-- | c/wscript | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/c/wscript b/c/wscript new file mode 100644 index 0000000000..357a26b240 --- /dev/null +++ b/c/wscript @@ -0,0 +1,154 @@ +from imp import new_module +from os.path import basename + + +def build(ctx): + source = [] + + # Nothing below this will work on the host. + if ctx.variant == "host": + return + + # version.c + source_version = ["src/support/version.c"] + ctx.bsp.source( + source_version, + alias="version", + features="src_include", + cflags=[ + "-DRTEMS_VERSION=\"%s\"" % ctx.env.RTEMS_VERSION + ] + ) + + + source_networking = [ + "src/libchip/network/cs8900.c", + "src/libchip/network/dec21140.c", + "src/libchip/network/elnk.c", + "src/libchip/network/greth.c", + "src/libchip/network/i82586.c", + "src/libchip/network/if_dc.c", + "src/libchip/network/if_fxp.c", + "src/libchip/network/open_eth.c", + "src/libchip/network/smc91111.c", + "src/libchip/network/sonic.c" + ] + ctx.bsp.networking( + source_networking, + features="src_include src_include_networking src_include_libchip", + defines=["__INSIDE_RTEMS_BSD_TCPIP_STACK__", "_KERNEL", "__BSD_VISIBLE", "__RTEMS_HAVE_DECL_SIGALTSTACK__"] + ) + + + source_mp = [ + "src/libchip/shmdr/addlq.c", + "src/libchip/shmdr/cnvpkt.c", + "src/libchip/shmdr/getlq.c", + "src/libchip/shmdr/dump.c", + "src/libchip/shmdr/fatal.c", + "src/libchip/shmdr/getpkt.c", + "src/libchip/shmdr/init.c", + "src/libchip/shmdr/initlq.c", + "src/libchip/shmdr/intr.c", + "src/libchip/shmdr/mpisr.c", + "src/libchip/shmdr/poll.c", + "src/libchip/shmdr/receive.c", + "src/libchip/shmdr/retpkt.c", + "src/libchip/shmdr/send.c" + ] + ctx.bsp.mp( + source_mp, + features="src_include", + includes = ["%s/c/src/libchip/shmdr" % ctx.srcnode.abspath()] + ) + + + source_ata = [ + "src/libchip/ide/ata.c", + "src/libchip/ide/ata_util.c", + ] + ctx.bsp.source( + source_ata, + features="src_include src_include_libchip" + ) + + + source += [ + "src/libchip/display/disp_hcms29xx.c", + "src/libchip/display/font_hcms29xx.c", + "src/libchip/flash/am29lv160.c", + "src/libchip/i2c/i2c-2b-eeprom.c", + "src/libchip/i2c/i2c-ds1621.c", + "src/libchip/i2c/spi-flash-m25p40.c", + "src/libchip/i2c/spi-fram-fm25l256.c", + "src/libchip/i2c/spi-memdrv.c", + "src/libchip/i2c/spi-sd-card.c", + "src/libchip/ide/ide_controller.c", + "src/libchip/rtc/ds1375.c", + "src/libchip/rtc/icm7170.c", + "src/libchip/rtc/icm7170_reg.c", + "src/libchip/rtc/icm7170_reg2.c", + "src/libchip/rtc/icm7170_reg4.c", + "src/libchip/rtc/icm7170_reg8.c", + "src/libchip/rtc/m48t08.c", + "src/libchip/rtc/m48t08_reg.c", + "src/libchip/rtc/m48t08_reg2.c", + "src/libchip/rtc/m48t08_reg4.c", + "src/libchip/rtc/m48t08_reg8.c", + "src/libchip/rtc/mc146818a.c", + "src/libchip/rtc/mc146818a_ioreg.c", + "src/libchip/rtc/rtcprobe.c", + "src/libchip/serial/mc68681.c", + "src/libchip/serial/mc68681_baud.c", + "src/libchip/serial/mc68681_reg.c", + "src/libchip/serial/mc68681_reg2.c", + "src/libchip/serial/mc68681_reg4.c", + "src/libchip/serial/mc68681_reg8.c", + "src/libchip/serial/ns16550.c", + "src/libchip/serial/serprobe.c", + "src/libchip/serial/z85c30.c", + "src/libchip/serial/z85c30_reg.c" + ] + ctx.bsp.source( + source, + features="src_include", + includes = ["%s/include/libchip" % ctx.srcnode.abspath()] + ) + + + # Open the correct sub-wscript and execute build() as waf does not support + # loading arbitrary wscripts. + path = "%s/c/" % ctx.srcnode.abspath() + with open("%s/wscript_%s" % (path, ctx.env.RTEMS_ARCH), "r") as fp: + module = new_module("RTEMS_MODULE") + exec(compile(fp.read(), "%swscript_%s" % (path, ctx.env.RTEMS_ARCH), "exec"), module.__dict__) + module.build(ctx) + + ctx( + target = "rtemsbsp", + use = [ + "auto_libbsp_objects" + ], + includes = ["%s/include/libchip" % ctx.srcnode.abspath()], + features = "c cstlib", + install_path = ctx.env.LIBDIR + ) + + # First file is always installed as "linkcmds" + # XXX: This needs to be removed eventually by fixing the filenames. + if ctx.env.LINKCMDS: + ctx.copy_or_subst( + ctx.env.LINKCMDS[0], + "linkcmds", + "linkcmds_linkcmds" + ) + + for file in ctx.env.LINKCMDS[1:]: + base = basename(file) + ctx.copy_or_subst( + file, + base, + "linkcmds_base" + ) + + |