]> git.llucax.com Git - software/dgc/dgcbench.git/commitdiff
micro/split.d: Take the file to split from the command line
authorLeandro Lucarella <llucax@gmail.com>
Sun, 23 Aug 2009 20:01:23 +0000 (17:01 -0300)
committerLeandro Lucarella <llucax@gmail.com>
Sun, 23 Aug 2009 20:01:23 +0000 (17:01 -0300)
The Makefile is adapted to make possible to pass arguments to an arbitrary
benchmark program.

micro/Makefile
micro/split.d

index ce310b081fc9ab63c64a680c02f2b2482db7a63c..e48a2e2fe810dd67cfa38a39ce2f85ee4a2354f9 100644 (file)
@@ -29,7 +29,7 @@ P_DC   = @echo '  DC  $@';
 P_LD   = @echo '  LD   $@';
 P_PLOT = @echo '  PLOT $@';
 P_MAKE = @echo '  MAKE $@';
 P_LD   = @echo '  LD   $@';
 P_PLOT = @echo '  PLOT $@';
 P_MAKE = @echo '  MAKE $@';
-P_RUN  = @echo '  RUN  $<';
+P_RUN  = @echo '  RUN  $< $(arg1) $(arg2) $(arg3)';
 P_AWK  = @echo '  AWK  $@';
 endif
 
 P_AWK  = @echo '  AWK  $@';
 endif
 
@@ -64,10 +64,12 @@ stat: $(stat)
 
 .PRECIOUS: $(STAT_DIR)/%.c.csv $(STAT_DIR)/%.a.csv
 $(STAT_DIR)/%.c.csv $(STAT_DIR)/%.a.csv: $(BIN_DIR)/%
 
 .PRECIOUS: $(STAT_DIR)/%.c.csv $(STAT_DIR)/%.a.csv
 $(STAT_DIR)/%.c.csv $(STAT_DIR)/%.a.csv: $(BIN_DIR)/%
-       $(P_RUN) ./$<
+       $(P_RUN) ./$< $(args)
        $P mv gc-collections.csv $(STAT_DIR)/$*.c.csv
        $P mv gc-mallocs.csv $(STAT_DIR)/$*.a.csv
 
        $P mv gc-collections.csv $(STAT_DIR)/$*.c.csv
        $P mv gc-mallocs.csv $(STAT_DIR)/$*.a.csv
 
+# special command line arguments for benchmarks
+$(STAT_DIR)/split.c.csv $(STAT_DIR)/split.a.csv: override args := bible.txt
 
 .PRECIOUS: $(STAT_DIR)/%.h.csv
 $(STAT_DIR)/%.h.csv: $(STAT_DIR)/%.a.csv
 
 .PRECIOUS: $(STAT_DIR)/%.h.csv
 $(STAT_DIR)/%.h.csv: $(STAT_DIR)/%.a.csv
index b0423230fe120de7a324e6b1efcb8061bcc744f2..319082baca43a27693ef67f4a07bbb43ee0fc3d9 100644 (file)
@@ -8,9 +8,12 @@ import tango.text.Util: delimit;
 import tango.util.Convert: to;
 
 int main(char[][] args) {
 import tango.util.Convert: to;
 
 int main(char[][] args) {
-       auto txt = cast(byte[]) File.get("bible.txt");
-       auto n = (args.length > 1) ? to!(uint)(args[1]) : 1;
-       if (n < 1) n = 1;
+       if (args.length < 2)
+               return 1;
+       auto txt = cast(byte[]) File.get(args[1]);
+       auto n = (args.length > 2) ? to!(uint)(args[2]) : 1;
+       if (n < 1)
+               n = 1;
        while (--n)
                txt ~= txt;
        auto words = delimit!(byte)(txt, cast(byte[]) " \t\n\r");
        while (--n)
                txt ~= txt;
        auto words = delimit!(byte)(txt, cast(byte[]) " \t\n\r");