diff options
Diffstat (limited to 'cpukit/score/wscript')
-rw-r--r-- | cpukit/score/wscript | 490 |
1 files changed, 490 insertions, 0 deletions
diff --git a/cpukit/score/wscript b/cpukit/score/wscript new file mode 100644 index 0000000000..35680da5fc --- /dev/null +++ b/cpukit/score/wscript @@ -0,0 +1,490 @@ +def build(ctx): + source = [] + + source_mp = [ + "src/mpci.c", + "src/objectmp.c", + "src/threadmp.c", + ] + + ctx.cpu.mp( + source_mp, + alias="score_mp", + features="src_include", + includes=["%s/cpukit/score/include" % ctx.srcnode.abspath()] + ) + + source_smp = [ + "src/percpustatewait.c", + "src/profilingsmplock.c", + "src/schedulerdefaultpinunpin.c", + "src/scheduleredfsmp.c", + "src/schedulerpriorityaffinitysmp.c", + "src/schedulerprioritysmp.c", + "src/schedulersimplesmp.c", + "src/schedulerstrongapa.c", + "src/smp.c", + "src/smplock.c", + "src/smpmulticastaction.c", + "src/schedulerdefaultaskforhelp.c", + "src/schedulerdefaultsetaffinity.c", + "src/schedulersmp.c", + "src/schedulersmpstartidle.c", + "src/threadunpin.c", + ] + + ctx.cpu.smp( + source_smp, + alias="score_smp", + features="src_include", + includes=["%s/cpukit/score/include" % ctx.srcnode.abspath()] + ) + +# source_pthreads = [ +# "src/corerwlock.c", +# "src/corerwlockobtainread.c", +# "src/corerwlockobtainwrite.c", +# "src/corerwlockrelease.c", +# "src/corespinlock.c", +# "src/corespinlockrelease.c", +# "src/corespinlockwait.c" +# ] +# ctx.cpu.pthreads( +# source_pthreads, +# alias="score", +# features="src_include", +# includes=["%s/cpukit/score/include" % ctx.srcnode.abspath()] +# ) + + source += [ +# "src/schedulerprioritysmp.c", + "src/allocatormutex.c", + "src/apimutexisowner.c", + "src/apimutexlock.c", + "src/apimutexunlock.c", + "src/corebarrier.c", + "src/corebarrierrelease.c", + "src/corebarrierwait.c", + "src/coremsg.c", + "src/coremsgbroadcast.c", + "src/coremsgclose.c", + "src/coremsgflush.c", + "src/coremsgflushwait.c", + "src/coremsginsert.c", + "src/coremsgseize.c", + "src/coremsgsubmit.c", + "src/coremutexseize.c", + "src/percpu.c", + "src/percpuasm.c", + "src/corerwlock.c", + "src/corerwlockobtainread.c", + "src/corerwlockobtainwrite.c", + "src/corerwlockrelease.c", + "src/coresem.c", + "src/heap.c", + "src/heapallocate.c", + "src/heapextend.c", + "src/heapfree.c", + "src/heapsizeofuserarea.c", + "src/heapwalk.c", + "src/heapgetinfo.c", + "src/heapgetfreeinfo.c", + "src/heapresizeblock.c", + "src/heapiterate.c", + "src/heapgreedy.c", + "src/heapnoextend.c", + "src/objectallocate.c", + "src/objectclose.c", + "src/objectextendinformation.c", + "src/objectfree.c", + "src/objectgetnext.c", + "src/objectinitializeinformation.c", + "src/objectnametoid.c", + "src/objectnametoidstring.c", + "src/objectshrinkinformation.c", + "src/objectgetnoprotection.c", + "src/objectidtoname.c", + "src/objectgetnameasstring.c", + "src/objectsetname.c", + "src/objectgetinfo.c", + "src/objectgetinfoid.c", + "src/objectapimaximumclass.c", + "src/objectnamespaceremove.c", + "src/objectactivecount.c", + "src/objectgetlocal.c", + "src/log2table.c", + "src/scheduler.c", + "src/schedulergetaffinity.c", + "src/schedulersetaffinity.c", + "src/schedulerdefaultmappriority.c", + "src/schedulerdefaultnodedestroy.c", + "src/schedulerdefaultnodeinit.c", + "src/schedulerdefaultreleasejob.c", + "src/schedulerdefaultschedule.c", + "src/schedulerdefaultstartidle.c", + "src/schedulerdefaulttick.c", + "src/schedulerpriority.c", + "src/schedulerpriorityblock.c", + "src/schedulerprioritychangepriority.c", + "src/schedulerpriorityschedule.c", + "src/schedulerpriorityunblock.c", + "src/schedulerpriorityyield.c", + "src/schedulersimple.c", + "src/schedulersimpleblock.c", + "src/schedulersimplechangepriority.c", + "src/schedulersimpleschedule.c", + "src/schedulersimpleunblock.c", + "src/schedulersimpleyield.c", + "src/scheduleredf.c", + "src/scheduleredfnodeinit.c", + "src/scheduleredfblock.c", + "src/scheduleredfchangepriority.c", + "src/scheduleredfreleasejob.c", + "src/scheduleredfschedule.c", + "src/scheduleredfunblock.c", + "src/scheduleredfyield.c", + "src/schedulercbs.c", + "src/schedulercbsnodeinit.c", + "src/schedulercbsattachthread.c", + "src/schedulercbscleanup.c", + "src/schedulercbscreateserver.c", + "src/schedulercbsdestroyserver.c", + "src/schedulercbsdetachthread.c", + "src/schedulercbsgetapprovedbudget.c", + "src/schedulercbsgetexecutiontime.c", + "src/schedulercbsgetparameters.c", + "src/schedulercbsgetremainingbudget.c", + "src/schedulercbsgetserverid.c", + "src/schedulercbssetparameters.c", + "src/schedulercbsreleasejob.c", + "src/schedulercbsunblock.c", + "src/pheapallocate.c", + "src/pheapextend.c", + "src/pheapfree.c", + "src/pheapgetsize.c", + "src/pheapgetblocksize.c", + "src/pheapgetfreeinfo.c", + "src/pheapgetinfo.c", + "src/pheapinit.c", + "src/pheapresizeblock.c", + "src/pheapwalk.c", + "src/pheapiterate.c", + "src/freechain.c", + "src/rbtreeextract.c", + "src/rbtreeinsert.c", + "src/rbtreeiterate.c", + "src/rbtreenext.c", + "src/rbtreepostorder.c", + "src/rbtreereplace.c", + "src/thread.c", + "src/threadchangepriority.c", + "src/threadclearstate.c", + "src/threadcreateidle.c", + "src/threaddispatch.c", + "src/threadget.c", + "src/threadhandler.c", + "src/threadinitialize.c", + "src/threadloadenv.c", + "src/threadrestart.c", + "src/threadsetstate.c", + "src/threadstackallocate.c", + "src/threadstackfree.c", + "src/threadstart.c", + "src/threadstartmultitasking.c", + "src/iterateoverthreads.c", + "src/threadentryadaptoridle.c", + "src/threadentryadaptornumeric.c", + "src/threadentryadaptorpointer.c", + "src/threadgetcputimeused.c", + "src/threaditerate.c", + "src/threadname.c", + "src/threadscheduler.c", + "src/threadtimeout.c", + "src/threadwaitgetid.c", + "src/threadyield.c", + "src/threadq.c", + "src/threadqenqueue.c", + "src/threadqextractwithproxy.c", + "src/threadqfirst.c", + "src/threadqflush.c", + "src/threadqops.c", + "src/threadqtimeout.c", + "src/timespecaddto.c", + "src/timespecfromticks.c", + "src/timespecisvalid.c", + "src/timespeclessthan.c", + "src/timespecsubtract.c", + "src/timespectoticks.c", + "src/timespecdivide.c", + "src/timespecdividebyinteger.c", + "src/timespecgetasnanoseconds.c", + "src/coretod.c", + "src/coretodset.c", + "src/coretodtickspersec.c", + "src/coretodadjust.c", + "src/watchdoginsert.c", + "src/watchdogremove.c", + "src/watchdogtick.c", + "src/watchdogtickssinceboot.c", + "src/userextaddset.c", + "src/userext.c", + "src/userextremoveset.c", + "src/userextiterate.c", + "src/chain.c", + "src/chainnodecount.c", + "src/debugisthreaddispatchingallowed.c", + "src/interr.c", + "src/isr.c", + "src/wkspace.c", + "src/wkstringduplicate.c", + "src/ioprintf.c", + "src/iovprintf.c", + "src/isrisinprogress.c", + "src/condition.c", + "src/futex.c", + "src/profilingisrentryexit.c", + "src/mutex.c", + "src/once.c", + "src/sched.c", + "src/semaphore.c", + "src/smpbarrierwait.c", + "src/kern_tc.c", + "src/libatomic.c", + "src/processormaskcopy.c", + ] + + if ctx.env.RTEMS_ARCH == "arm": + source += [ + "cpu/arm/__aeabi_read_tp.c", + "cpu/arm/arm-context-validate.S", + "cpu/arm/arm-context-volatile-clobber.S", + "cpu/arm/arm_exc_abort.S", + "cpu/arm/arm-exception-default.c", + "cpu/arm/arm-exception-frame-print.c", + "cpu/arm/arm_exc_interrupt.S", + "cpu/arm/armv4-exception-default.S", + "cpu/arm/armv4-sync-synchronize.c", + "cpu/arm/armv7m-context-initialize.c", + "cpu/arm/armv7m-context-restore.c", + "cpu/arm/armv7m-context-switch.c", + "cpu/arm/armv7m-exception-default.c", + "cpu/arm/armv7m-exception-handler-get.c", + "cpu/arm/armv7m-exception-handler-set.c", + "cpu/arm/armv7m-exception-priority-get.c", + "cpu/arm/armv7m-exception-priority-handler.c", + "cpu/arm/armv7m-exception-priority-set.c", + "cpu/arm/armv7m-initialize.c", + "cpu/arm/armv7m-isr-dispatch.c", + "cpu/arm/armv7m-isr-enter-leave.c", + "cpu/arm/armv7m-isr-level-get.c", + "cpu/arm/armv7m-isr-level-set.c", + "cpu/arm/armv7m-isr-vector-install.c", + "cpu/arm/armv7m-multitasking-start-stop.c", + "cpu/arm/armv7-thread-idle.c", + "cpu/arm/cpu_asm.S", + "cpu/arm/cpu.c", + "cpu/arm/__tls_get_addr.c", + ] + + elif ctx.env.RTEMS_ARCH == "bfin": + source += [ + "cpu/bfin/bfin-exception-frame-print.c", + "cpu/bfin/cpu_asm.S", + "cpu/bfin/cpu.c", + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + ] + elif ctx.env.RTEMS_ARCH == "epiphany": + source += [ + "cpu/epiphany/cpu.c", + "cpu/epiphany/epiphany-context-initialize.c", + "cpu/epiphany/epiphany-context-switch.S", + "cpu/epiphany/epiphany-exception-handler.S", + "cpu/epiphany/setjmp.S", + "cpu/no_cpu/cpucounterfrequency.c", + ] + elif ctx.env.RTEMS_ARCH == "i386": + source += [ + "cpu/i386/cpu_asm.S", + "cpu/i386/cpu.c", + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + "cpu/no_cpu/cpuidle.c", + ] + elif ctx.env.RTEMS_ARCH == "lm32": + source += [ + "cpu/lm32/cpu_asm.S", + "cpu/lm32/cpu.c", + "cpu/lm32/irq.c", + "cpu/lm32/lm32-exception-frame-print.c", + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + ] + elif ctx.env.RTEMS_ARCH == "m32c": + source += [ + "cpu/m32c/context_init.c", + "cpu/m32c/context_switch.S", + "cpu/m32c/cpu_asm.c", + "cpu/m32c/cpu.c", + "cpu/m32c/m32c-exception-frame-print.c", + "cpu/m32c/varvects.S", + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + ] + elif ctx.env.RTEMS_ARCH == "m68k": + source += [ + "cpu/m68k/cpu_asm.S", + "cpu/m68k/cpu.c", + "cpu/m68k/m68k-exception-frame-print.c", + "cpu/m68k/__m68k_read_tp.c", + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + ] + elif ctx.env.RTEMS_ARCH == "mips": + source += [ + "cpu/mips/cpu.c", + "cpu/mips/cpu_asm.S", + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + ] + elif ctx.env.RTEMS_ARCH == "moxie": + source += [ + "cpu/moxie/cpu.c", + "cpu/moxie/moxie-exception-frame-print.c", + "cpu/moxie/cpu_asm.S", + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + "cpu/no_cpu/cpuidle.c", + ] + elif ctx.env.RTEMS_ARCH == "nios2": + source += [ + "cpu/nios2/nios2-context-initialize.c", + "cpu/nios2/nios2-context-switch.S", + "cpu/nios2/nios2-context-validate.S", + "cpu/nios2/nios2-context-volatile-clobber.S", + "cpu/nios2/nios2-eic-il-low-level.S", + "cpu/nios2/nios2-eic-rsie-low-level.S", + "cpu/nios2/nios2-exception-frame-print.c", + "cpu/nios2/nios2-fatal-halt.c", + "cpu/nios2/nios2-iic-low-level.S", + "cpu/nios2/nios2-iic-irq.c", + "cpu/nios2/nios2-initialize.c", + "cpu/nios2/nios2-isr-get-level.c", + "cpu/nios2/nios2-isr-install-raw-handler.c", + "cpu/nios2/nios2-isr-install-vector.c", + "cpu/nios2/nios2-isr-is-in-progress.c", + "cpu/nios2/nios2-isr-set-level.c", + "cpu/nios2/nios2-mpu-add-region.c", + "cpu/nios2/nios2-mpu-configuration.c", + "cpu/nios2/nios2-mpu-descriptor.c", + "cpu/nios2/nios2-mpu-disable-protected.c", + "cpu/nios2/nios2-mpu-reset.c", + "cpu/nios2/nios2-thread-dispatch-disabled.c", + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + "cpu/no_cpu/cpuidle.c", + ] + elif ctx.env.RTEMS_ARCH == "or1k": + source += [ + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/or1k/cpu.c", + "cpu/or1k/or1k-context-initialize.c", + "cpu/or1k/or1k-context-switch.S", + "cpu/or1k/or1k-context-validate.S", + "cpu/or1k/or1k-context-volatile-clobber.S", + "cpu/or1k/or1k-exception-default.c", + "cpu/or1k/or1k-exception-frame-print.c", + "cpu/or1k/or1k-exception-handler-low.S", + ] + elif ctx.env.RTEMS_ARCH == "powerpc": + source += [ + "cpu/no_cpu/cpuidle.c", + "cpu/powerpc/cpu.c", + "cpu/powerpc/ppc-context-volatile-clobber.S", + "cpu/powerpc/ppc-context-validate.S", + "cpu/powerpc/ppc-isr-disable-mask.S", + "cpu/powerpc/ppc-isr-vector-install.c", + ] + elif ctx.env.RTEMS_ARCH == "riscv": + source += [ + "cpu/riscv/cpu.c", + "cpu/riscv/riscv-exception-handler.S", + "cpu/riscv/riscv-exception-frame-print.c", + "cpu/riscv/riscv-context-switch.S", + "cpu/riscv/riscv-context-initialize.c", + "cpu/riscv/riscv-context-validate.S", + "cpu/riscv/riscv-context-volatile-clobber.S", + "cpu/riscv/riscv-counter.S", + ] + elif ctx.env.RTEMS_ARCH == "sh": + source += [ + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + "cpu/no_cpu/cpuidle.c", + "cpu/sh/cpu.c", + "cpu/sh/context.c", + "cpu/sh/sh-exception-frame-print.c", + ] + elif ctx.env.RTEMS_ARCH == "sparc": + source += [ + "cpu/no_cpu/cpuidle.c", + "cpu/sparc/access_le.c", + "cpu/sparc/cpu.c", + "cpu/sparc/cpu_asm.S", + "cpu/sparc/sparc-access.S", + "cpu/sparc/sparc-context-validate.S", + "cpu/sparc/sparc-context-volatile-clobber.S", + "cpu/sparc/sparc-counter-asm.S", + "cpu/sparc/syscall.S", + "cpu/sparc/window.S", + ] + elif ctx.env.RTEMS_ARCH == "sparc64": + source += [ + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + "cpu/no_cpu/cpuidle.c", + "cpu/sparc64/context.S", + "cpu/sparc64/cpu.c", + "cpu/sparc64/interrupt.S", + "cpu/sparc64/sparc64-exception-frame-print.c", + "cpu/sparc64/sparc64-syscall.S", + ] + elif ctx.env.RTEMS_ARCH == "v850": + source += [ + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + "cpu/no_cpu/cpuidle.c", + "cpu/v850/cpu.c", + "cpu/v850/cpu_asm.S", + "cpu/v850/v850-exception-frame-print.c", + ] + elif ctx.env.RTEMS_ARCH == "x86_64": + source += [ + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + "cpu/no_cpu/cpuidle.c", + "cpu/x86_64/cpu.c", + "cpu/x86_64/x86_64-context-initialize.c", + "cpu/x86_64/x86_64-context-switch.S", + ] + elif ctx.env.RTEMS_ARCH_NO_CPU: + source += [ + "cpu/no_cpu/cpu.c", + "cpu/no_cpu/cpu_asm.c", + "cpu/no_cpu/cpucounterfrequency.c", + "cpu/no_cpu/cpucounterread.c", + "cpu/no_cpu/cpuidle.c", + ] + elif ctx.cmd != "build" and ctx.cmd != "%s/%s" % (ctx.env.RTEMS_ARCH, ctx.env.RTEMS_BSP): + # Hack to let other commands such as 'waf list' work + pass + else: + ctx.fatal("cpukit/score/wscript: unknown arch: %s" % ctx.env.RTEMS_ARCH) + + + ctx.cpu.source( + source, + alias="score", + features="src_include src_include_rtems src_include_score", + includes=["%s/cpukit/score/include" % ctx.srcnode.abspath()] + ) |