summaryrefslogtreecommitdiff
path: root/.makefile
diff options
context:
space:
mode:
authorIngy döt Net <ingy@ingy.net>2017-01-01 16:49:18 -0800
committerIngy döt Net <ingy@ingy.net>2017-01-02 10:29:32 -0800
commitde19e70b6d53f7df967b74f6946765e3981a1dfc (patch)
treede7cdb6549780be0edbae792b875e5fe8fd52897 /.makefile
parent2fc6dc0885abf9ce0dd7856a4fa1791caaac5920 (diff)
downloadlibyaml-git-de19e70b6d53f7df967b74f6946765e3981a1dfc.tar.gz
Add a `.makefile` for immediate make targets
We can add various development activities to this alternate Makefile. If you do this first: ``` ln {.,GNU}makefile ``` then you can use the new targets and the old ones without specifying the `.makefile` in make commands and without worrying about bootstrap. ie Before this, to use Makefile targets, you needed to run `./bootstrap` and `./configure` first. This file will proxy all common Makefile targets, first making sure that the Makefile exists.
Diffstat (limited to '.makefile')
-rw-r--r--.makefile57
1 files changed, 57 insertions, 0 deletions
diff --git a/.makefile b/.makefile
new file mode 100644
index 0000000..af4625b
--- /dev/null
+++ b/.makefile
@@ -0,0 +1,57 @@
+# This file is used for common development targets that can be done with
+# needing the cumbersome bootstrapping process.
+#
+# You can use it like this:
+#
+# make -f .makefile indent
+#
+# If you copy or link this file to `GNUmakefile` then you can just do:
+#
+# make indent
+#
+# When copied to `GNUmakefile`, this file is can also be used for bootstrapping
+# Makefile targets. Since GNUmakefile is loaded before Makefile, we do the
+# bootstrapping tasks need to get a Makefile first, then we use the Makefile to
+# make our target.
+
+MAKE_TARGETS := \
+ all \
+ all-am \
+ all-recursive \
+ install \
+ test \
+ test-all \
+ test-suite \
+
+# SOURCE_FILES := $(shell find . | grep '\.c$$')
+SOURCE_FILES := $(shell find tests/run-test-suite | grep '\.c$$')
+ifneq ($(shell which gindent),)
+INDENT := gindent
+else
+INDENT := indent
+endif
+
+#
+# Proxy make targets:
+#
+default: all
+
+# Proxy these targets to the real Makefile, after bootstrapping is necessary.
+$(MAKE_TARGETS): Makefile
+ @make -f $< $@
+
+Makefile: Makefile.in
+ ./configure
+
+Makefile.in:
+ ./bootstrap
+
+#
+# Development make targets:
+#
+indent:
+ $(INDENT) $(SOURCE_FILES)
+
+distclean purge:
+ rm -fr tests/run-test-suite/data
+ git clean -dxf -e GNUmakefile