Move kernel sources to platform specific subdirs
diff --git a/share/jmk/jmk.tcl b/share/jmk/jmk.tcl
index b3b860c..64b9afd 100644
--- a/share/jmk/jmk.tcl
+++ b/share/jmk/jmk.tcl
@@ -7,6 +7,8 @@
variable jmk_lib_paths
variable jmk_lib_targets
+variable jmk_sourced
+
variable cflags {}
variable asmflags {}
variable ldflags {}
@@ -98,6 +100,15 @@
puts "\t@printf ' \\e\[1;34m%8s\\e\[m %s\\n' '$category' '$message' > /dev/stderr"
}
+proc jmk_log {message} {
+ puts stderr $message
+}
+
+proc jmk_error {message} {
+ puts stderr "\e[31mError\e[0m $message"
+ exit 1
+}
+
proc cc {command} {
puts "\t@$::cc $command $::cflags"
}
@@ -132,9 +143,9 @@
proc srcs {args} {
puts ""
- variable objs ""
foreach src $args {
+ set src [file join [pwd] $src]
variable obj [regsub -- {(.+)\.\w+} $src {\1.o}]
set ::objs "$::objs $obj"
}
@@ -233,3 +244,21 @@
set asm nasm
}
}
+
+proc jmk_source {path} {
+ variable dir [pwd]
+
+ if {![file exists $path]} {
+ jmk_error "jmk_source: $dir/$path doesn't exist"
+ }
+
+ lappend ::jmk_sourced "$dir/$path"
+
+ cd [file dirname $path]
+ uplevel 1 source [file tail $path]
+ cd $dir
+}
+
+proc jmk_finalize {} {
+ puts "Jmk2: $::jmk_sourced"
+}