build: Add target list.
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 19 Jul 2017 17:53:21 +0000 (19:53 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 26 Jul 2017 09:36:07 +0000 (11:36 +0200)
* GNUmakefile (%): Handle all targets.
* make.scm (main): Show and implement target list.

GNUmakefile
make.scm

index 2a8601c9459ccee9618538d72afa5ab3798a9832..db67ec0c5878bea9b84e3db11d679b6926a83844 100644 (file)
@@ -3,10 +3,13 @@ GUILE_FLAGS:=--no-auto-compile -L . -L guile -C . -C guile
 
 include .config.make
 
-PHONY_TARGETS:= all all-go check clean clean-go default help
+PHONY_TARGETS:= all all-go check clean clean-go default help list
 .PHONY: $(PHONY_TARGETS)
 
 $(PHONY_TARGETS):
        $(GUILE) $(GUILE_FLAGS) -s make.scm $@
 
+%:
+       $(GUILE) $(GUILE_FLAGS) -s make.scm $@
+
 .config.make: ./configure
index 6f17abe440e12e87c7dda6421e604a054d082c17..2e546feb9353ebe2cf3135df8b25bc461a38b07b 100755 (executable)
--- a/make.scm
+++ b/make.scm
@@ -349,6 +349,7 @@ exec ${GUILE-guile} --no-auto-compile -L . -L guile -C . -C guile -s "$0" ${1+"$
   (cond ((member "all-go" args) #t)
         ((member "clean-go" args) (map delete-file (filter file-exists? %go-files)))
         ((member "clean" args) (clean))
+        ((member "list" args) (display (string-join (map target-file-name %targets) "\n" 'suffix)))
         ((member "help" args) (format #t "Usage: ./make.scm [TARGET]...
 
 Targets:
@@ -358,6 +359,7 @@ Targets:
     clean
     clean-go
     help~a
+    list
 "
                                       ;;(string-join (map target-file-name %targets) "\n    " 'prefix)
                                       (string-join (filter (negate (cut string-index <> #\/)) (map target-file-name %targets)) "\n    " 'prefix)))