diff options
| author | Michael Forney <mforney@mforney.org> | 2016-07-02 15:57:14 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2016-07-02 21:40:25 -0700 |
| commit | 07e26ae6c04733909fc8577c9d37fd70ce87e687 (patch) | |
| tree | d066976235be45f1cfb75c443f7a3f255eb0b09b | |
| parent | 81ecddb2551467519b2afe0869d4bdb872ab9ac2 (diff) | |
Add support for nasm sources
| -rw-r--r-- | ninja.rc | 23 | ||||
| -rw-r--r-- | rules.ninja | 3 |
2 files changed, 19 insertions, 7 deletions
@@ -55,17 +55,21 @@ fn cflags { set cflags '$cflags' $* } -fn cc { - src=$1 obj=$src.o { - shift +fn compile { + rule=$1 src=$2 obj=$src.o { + shift 2 if(! ~ $src '$'*) { src='$srcdir'/$src obj='$outdir'/$obj } - build $obj cc $src $* + build $obj $rule $src $* } } +fn cc { + compile cc $* +} + fn link { out='$outdir'/$1 objs=() { shift @@ -96,11 +100,16 @@ fn objects { shift 2 } for(src) { - if(~ $src *.[cS] *.cc *.cpp) { - cc $src $deps + switch($src) { + case *.[cS] *.cc *.cpp + compile cc $src $deps + obj=$src.o + case *.asm + compile nasm $src $deps obj=$src.o + case * + obj=$src } - if not obj=$src objs=($objs $obj) } $rule $out $objs diff --git a/rules.ninja b/rules.ninja index ebb8a983..b4c05116 100644 --- a/rules.ninja +++ b/rules.ninja @@ -17,6 +17,9 @@ rule link rule ar command = rm -f $out && $ar crs $out $in +rule nasm + command = nasm $nasmflags -o $out $in + # misc tools rule touch command = touch $out |
