summaryrefslogtreecommitdiff
path: root/ninja.rc
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2016-04-17 23:18:37 -0700
committerMichael Forney <mforney@mforney.org>2016-04-17 23:18:37 -0700
commit761e1c1507d3acc1dd6d3690aac52190bd43a0fa (patch)
tree3368f787e8aaa0563fbd98620cce47edf669b6b1 /ninja.rc
parent9b82f86a8de20d685f7f9d31c6e4d93162a4e40b (diff)
Combine static_lib and exe
Diffstat (limited to 'ninja.rc')
-rw-r--r--ninja.rc27
1 files changed, 10 insertions, 17 deletions
diff --git a/ninja.rc b/ninja.rc
index 48ac6860..976601d2 100644
--- a/ninja.rc
+++ b/ninja.rc
@@ -91,34 +91,27 @@ fn ar {
}
}
-fn static_lib {
- out=$1 objs=() {
- shift
+fn objects {
+ rule=$1 out=$2 deps=() objs=() {
+ shift 2
for(src) {
if(~ $src *.c) {
- cc $src
+ cc $src $deps
obj=$src.o
}
if not obj=$src
objs=($objs $obj)
}
- ar $out $objs
+ $rule $out $objs
}
}
+fn static_lib {
+ objects ar $*
+}
+
fn exe {
- out=$1 objs=() {
- shift
- for(src) {
- if(~ $src *.c) {
- cc $src
- obj=$src.o
- }
- if not obj=$src
- objs=($objs $obj)
- }
- link $out $objs
- }
+ objects link $*
}
fn yacc {