summaryrefslogtreecommitdiff
path: root/cpukit/score/wscript
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/wscript')
-rw-r--r--cpukit/score/wscript490
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()]
+ )