21909: Add a basic build system to R SDK
[arvados.git] / sdk / R / Makefile
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: Apache-2.0
4
5 # NOTE: `R CMD check` (and by extension, the Arvados test suite)
6 # will carp at you if you use GNU extensions.
7 # <https://cran.r-project.org/doc/manuals/R-exts.html#Writing-portable-packages>
8
9 ALL=R/Arvados.R man
10 SDK_VERSION!=awk '($$1 == "Version:"){v=$$2} END {print v}' DESCRIPTION
11
12 all: $(ALL)
13
14 .PHONY: api
15 api: R/Arvados.R
16 R/Arvados.R: arvados-v1-discovery.json generateApi.R
17         Rscript --vanilla generateApi.R
18
19 # Used by arvados/doc/Rakefile.
20 # Check whether we can load libraries necessary to build the package.
21 .PHONY: can_run
22 can_run:
23         Rscript --vanilla -e "library(jsonlite); library(roxygen2);"
24
25 .PHONY: clean
26 clean:
27         rm -rf $(ALL) "ArvadosR_$(SDK_VERSION).tar.gz"
28
29 .PHONY: install
30 install:
31         R CMD INSTALL .
32
33 man: R/Arvados.R R/*.R
34         Rscript --vanilla -e "library(roxygen2); roxygen2::roxygenize(clean=TRUE)"
35
36 .PHONY: package
37 package: "ArvadosR_$(SDK_VERSION).tar.gz"
38 "ArvadosR_$(SDK_VERSION).tar.gz": $(ALL) [A-Z]* *.R tests/*.R tests/testthat/*.R tests/testthat/fakes/*.R
39         R CMD build .
40
41 .PHONY: test
42 test: $(ALL)
43         Rscript --vanilla run_test.R