aboutsummaryrefslogtreecommitdiff
path: root/GNUmakefile
diff options
context:
space:
mode:
Diffstat (limited to 'GNUmakefile')
-rw-r--r--GNUmakefile46
1 files changed, 46 insertions, 0 deletions
diff --git a/GNUmakefile b/GNUmakefile
new file mode 100644
index 0000000..dfc1b7b
--- /dev/null
+++ b/GNUmakefile
@@ -0,0 +1,46 @@
+PKGNAME := $(shell sed -n "s/Package: *\([^ ]*\)/\1/p" DESCRIPTION)
+PKGVERS := $(shell sed -n "s/Version: *\([^ ]*\)/\1/p" DESCRIPTION)
+PKGSRC := $(shell basename $(PWD))
+
+# Specify the directory holding R binaries. To use an alternate R build (say a
+# pre-prelease version) use `make RBIN=/path/to/other/R/` or `export RBIN=...`
+# If no alternate bin folder is specified, the default is to use the folder
+# containing the first instance of R on the PATH.
+RBIN ?= $(shell dirname "`which R`")
+
+.PHONY: help
+
+help:
+ @echo "\nExecute development tasks for $(PKGNAME)\n"
+ @echo "Usage: \`make <task>\` where <task> is one of:"
+ @echo ""
+ @echo "Development Tasks"
+ @echo "-----------------"
+ @echo " build Create the package"
+ @echo " check Invoke build and then check the package"
+ @echo " install Invoke build and then install the result"
+ @echo ""
+ @echo "Packaging Tasks"
+ @echo "---------------"
+ @echo " release Give some reminders"
+ @echo ""
+ @echo "Using R in: $(RBIN)"
+ @echo "Set the RBIN environment variable to change this."
+ @echo ""
+
+
+#------------------------------------------------------------------------------
+# Development Tasks
+#------------------------------------------------------------------------------
+
+build:
+ cd ..;\
+ "$(RBIN)/R" CMD build $(PKGSRC)
+
+install: build
+ cd ..;\
+ "$(RBIN)/R" CMD INSTALL $(PKGNAME)_$(PKGVERS).tar.gz
+
+check: build
+ cd ..;\
+ "$(RBIN)/R" CMD check --as-cran $(PKGNAME)_$(PKGVERS).tar.gz

Contact - Imprint