From 93c7157c20735ee7885ed8edf1078320a1482077 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Fri, 1 Mar 2019 19:17:57 +0545 Subject: [PATCH 1/6] Provide common make files --- build/rules/check-composer.mk | 11 +++++ build/rules/check-npm.mk | 11 +++++ build/rules/clean.mk | 16 +++++++ build/rules/dist.mk | 77 ++++++++++++++++++++++++++++++++++ build/rules/help.mk | 8 ++++ build/rules/test-acceptance.mk | 38 +++++++++++++++++ build/rules/test-all.mk | 6 +++ build/rules/test-js.mk | 34 +++++++++++++++ build/rules/test-php.mk | 75 +++++++++++++++++++++++++++++++++ build/rules/vendor-bin.mk | 25 +++++++++++ 10 files changed, 301 insertions(+) create mode 100644 build/rules/check-composer.mk create mode 100644 build/rules/check-npm.mk create mode 100644 build/rules/clean.mk create mode 100644 build/rules/dist.mk create mode 100644 build/rules/help.mk create mode 100644 build/rules/test-acceptance.mk create mode 100644 build/rules/test-all.mk create mode 100644 build/rules/test-js.mk create mode 100644 build/rules/test-php.mk create mode 100644 build/rules/vendor-bin.mk diff --git a/build/rules/check-composer.mk b/build/rules/check-composer.mk new file mode 100644 index 000000000000..decbed9b8cc7 --- /dev/null +++ b/build/rules/check-composer.mk @@ -0,0 +1,11 @@ +# Check that composer exists + +ifndef COMPOSER_CHECK_HAS_BEEN_DONE + COMPOSER_CHECK_HAS_BEEN_DONE=true + +COMPOSER_BIN := $(shell command -v composer 2> /dev/null) +ifndef COMPOSER_BIN + $(error composer is not available on your system, please install composer) +endif + +endif diff --git a/build/rules/check-npm.mk b/build/rules/check-npm.mk new file mode 100644 index 000000000000..f94bc615c13f --- /dev/null +++ b/build/rules/check-npm.mk @@ -0,0 +1,11 @@ +# Check that npm exists + +ifndef NPM_CHECK_HAS_BEEN_DONE + NPM_CHECK_HAS_BEEN_DONE=true + +NPM := $(shell command -v npm 2> /dev/null) +ifndef NPM + $(error npm is not available on your system, please install npm) +endif + +endif diff --git a/build/rules/clean.mk b/build/rules/clean.mk new file mode 100644 index 000000000000..26408abd31b5 --- /dev/null +++ b/build/rules/clean.mk @@ -0,0 +1,16 @@ +## +## Common clean rules +##-------------------------------------- + +ifndef CLEAN_HAS_BEEN_INCLUDED + CLEAN_HAS_BEEN_INCLUDED=true + +.PHONY: clean-deps +clean-deps: ## Clean all dependencies +clean-deps: $(clean_deps_rules) + +.PHONY: clean +clean: ## Clean all dependencies, build and dist +clean: clean-deps $(clean_dist_rules) $(clean_build_rules) + +endif diff --git a/build/rules/dist.mk b/build/rules/dist.mk new file mode 100644 index 000000000000..98f2929c3b61 --- /dev/null +++ b/build/rules/dist.mk @@ -0,0 +1,77 @@ +## +## Distribution tarball +##-------------------------------------- + +# signing +occ=$(CURDIR)/../../occ +private_key=$(HOME)/.owncloud/certificates/$(app_name).key +certificate=$(HOME)/.owncloud/certificates/$(app_name).crt +sign=$(occ) integrity:sign-app --privateKey="$(private_key)" --certificate="$(certificate)" +sign_skip_msg="Skipping signing, either no key and certificate found in $(private_key) and $(certificate) or occ can not be found at $(occ)" +ifneq (,$(wildcard $(private_key))) +ifneq (,$(wildcard $(certificate))) +ifneq (,$(wildcard $(occ))) + CAN_SIGN=true +endif +endif +endif + +# If the app_name has not been specified by the caller, +# then use the name of the directory that the main "make" is being run from. +ifndef app_name + app_name=$(notdir $(CURDIR)) +endif + +# If not specified by the caller, then select some common doc files to put in the tarball. +ifndef doc_files + doc_files=README.md CHANGELOG.md +endif + +# If not specified by the caller, then select a "standard" set of dirs to put in the tarball. +ifndef src_dirs + src_dirs=appinfo css img js l10n lib templates +endif + +all_src=$(src_dirs) $(extra_dirs) $(doc_files) $(extra_files) + +# Put the tarball and any other artifacts in a build dir by default +ifndef build_dir + build_dir=$(CURDIR)/build +endif + +# Put the tarball in a dist sub-dir of build_dir by default +ifndef dist_dir + dist_dir=$(build_dir)/dist +endif + +# +# dist +# +$(dist_dir)/$(app_name): $(composer_deps) $(bower_deps) $(nodejs_deps) + rm -Rf $@; mkdir -p $@ + cp -R $(all_src) $@ + +ifdef CAN_SIGN + $(sign) --path="$(dist_dir)/$(app_name)" +else + @echo $(sign_skip_msg) +endif + tar -czf $(dist_dir)/$(app_name).tar.gz -C $(dist_dir) $(app_name) + +.PHONY: dist +dist: ## Make the tarball for release distribution +dist: $(dist_dir)/$(app_name) + +clean_dist_rules+=clean-dist +clean_build_rules+=clean-build + +.PHONY: clean-dist +clean-dist: ## Clean the dist directory +clean-dist: + rm -Rf $(dist_dir) + +.PHONY: clean-build +clean-build: ## Clean the build directory +clean-build: + rm -Rf $(build_dir) + diff --git a/build/rules/help.mk b/build/rules/help.mk new file mode 100644 index 000000000000..378e302102ed --- /dev/null +++ b/build/rules/help.mk @@ -0,0 +1,8 @@ +# Define the help target and make it the default + +.DEFAULT_GOAL := help + +# start with displaying help +help: + @fgrep -h "##" $(MAKEFILE_LIST) | fgrep -v fgrep | sed -e 's/\\$$//' | sed -e 's/##//' | sed -e 's/ */ /' | column -t -s : + diff --git a/build/rules/test-acceptance.mk b/build/rules/test-acceptance.mk new file mode 100644 index 000000000000..69a475282bec --- /dev/null +++ b/build/rules/test-acceptance.mk @@ -0,0 +1,38 @@ +## +## Acceptance Tests +##-------------------------------------- + +RELATIVE_PATH := $(dir $(lastword $(MAKEFILE_LIST))) +include $(RELATIVE_PATH)check-composer.mk + +acceptance_test_deps=vendor-bin/behat/vendor + +# bin file definitions +BEHAT_BIN=vendor-bin/behat/vendor/bin/behat + +.PHONY: test-acceptance-api +test-acceptance-api: ## Run API acceptance tests +test-acceptance-api: $(acceptance_test_deps) + BEHAT_BIN=$(BEHAT_BIN) ../../tests/acceptance/run.sh --remote --type api + +.PHONY: test-acceptance-cli +test-acceptance-cli: ## Run CLI acceptance tests +test-acceptance-cli: $(acceptance_test_deps) + BEHAT_BIN=$(BEHAT_BIN) ../../tests/acceptance/run.sh --remote --type cli + +.PHONY: test-acceptance-webui +test-acceptance-webui: ## Run webUI acceptance tests +test-acceptance-webui: $(acceptance_test_deps) + BEHAT_BIN=$(BEHAT_BIN) ../../tests/acceptance/run.sh --remote --type webui + +# +# Dependency management +#-------------------------------------- + +include $(RELATIVE_PATH)vendor-bin.mk + +vendor-bin/behat/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/behat/composer.lock + composer bin behat install --no-progress + +vendor-bin/behat/composer.lock: vendor-bin/behat/composer.json + @echo behat composer.lock is not up to date. diff --git a/build/rules/test-all.mk b/build/rules/test-all.mk new file mode 100644 index 000000000000..0a562bce69b8 --- /dev/null +++ b/build/rules/test-all.mk @@ -0,0 +1,6 @@ +# All tests +# A convenience for repos that want to have all common test targets available +RELATIVE_PATH := $(dir $(lastword $(MAKEFILE_LIST))) +include $(RELATIVE_PATH)test-js.mk +include $(RELATIVE_PATH)test-php.mk +include $(RELATIVE_PATH)test-acceptance.mk diff --git a/build/rules/test-js.mk b/build/rules/test-js.mk new file mode 100644 index 000000000000..0e029ac615fb --- /dev/null +++ b/build/rules/test-js.mk @@ -0,0 +1,34 @@ +## +## JavaScript Tests +##-------------------------------------- + +# bin file definitions +NODE_PREFIX=$(shell pwd) +KARMA=$(NODE_PREFIX)/node_modules/.bin/karma + +nodejs_deps=node_modules + +.PHONY: test-js +test-js: ## Run JS test suites (single run) +test-js: $(KARMA) + $(KARMA) start tests/js/karma.config.js --single-run + +test-js-debug: ## Run JS test suites and watch for changes +test-js-debug: $(KARMA) + $(KARMA) start tests/js/karma.config.js + +$(KARMA): $(nodejs_deps) + +# +# Dependency management +#-------------------------------------- + +$(nodejs_deps): package.json yarn.lock + yarn install + touch $@ + +clean_deps_rules+=clean-js-deps + +.PHONY: clean-js-deps +clean-js-deps: + rm -Rf $(nodejs_deps) diff --git a/build/rules/test-php.mk b/build/rules/test-php.mk new file mode 100644 index 000000000000..b905d4078eea --- /dev/null +++ b/build/rules/test-php.mk @@ -0,0 +1,75 @@ +## +## PHP Tests +##-------------------------------------- + +RELATIVE_PATH := $(dir $(lastword $(MAKEFILE_LIST))) +include $(RELATIVE_PATH)check-composer.mk + +# bin file definitions +PHPUNIT=php -d zend.enable_gc=0 "$(PWD)/../../lib/composer/bin/phpunit" +PHPUNITDBG=phpdbg -qrr -d memory_limit=4096M -d zend.enable_gc=0 "$(PWD)/../../lib/composer/bin/phpunit" +PHP_CS_FIXER=php -d zend.enable_gc=0 vendor-bin/owncloud-codestyle/vendor/bin/php-cs-fixer +PHP_CODESNIFFER=vendor-bin/php_codesniffer/vendor/bin/phpcs +PHAN=php -d zend.enable_gc=0 vendor-bin/phan/vendor/bin/phan +PHPSTAN=php -d zend.enable_gc=0 vendor-bin/phpstan/vendor/bin/phpstan + +.PHONY: test-php-unit +test-php-unit: ## Run php unit tests +test-php-unit: + $(PHPUNIT) --configuration ./phpunit.xml --testsuite unit + +.PHONY: test-php-unit-dbg +test-php-unit-dbg: ## Run php unit tests using phpdbg +test-php-unit-dbg: + $(PHPUNITDBG) --configuration ./phpunit.xml --testsuite unit + +.PHONY: test-php-style +test-php-style: ## Run php-cs-fixer and check owncloud code-style +test-php-style: vendor-bin/owncloud-codestyle/vendor vendor-bin/php_codesniffer/vendor + $(PHP_CS_FIXER) fix -v --diff --diff-format udiff --allow-risky yes --dry-run + $(PHP_CODESNIFFER) --runtime-set ignore_warnings_on_exit --standard=phpcs.xml tests/acceptance + +.PHONY: test-php-style-fix +test-php-style-fix: ## Run php-cs-fixer and fix code style issues +test-php-style-fix: vendor-bin/owncloud-codestyle/vendor + $(PHP_CS_FIXER) fix -v --diff --diff-format udiff --allow-risky yes + +.PHONY: test-php-phan +test-php-phan: ## Run phan +test-php-phan: vendor-bin/phan/vendor + $(PHAN) --config-file .phan/config.php --require-config-exists + +.PHONY: test-php-phpstan +test-php-phpstan: ## Run phpstan +test-php-phpstan: vendor-bin/phpstan/vendor + $(PHPSTAN) analyse --memory-limit=4G --configuration=./phpstan.neon --no-progress --level=5 appinfo lib + +# +# Dependency management +#-------------------------------------- + +include $(RELATIVE_PATH)vendor-bin.mk + +vendor-bin/owncloud-codestyle/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/owncloud-codestyle/composer.lock + composer bin owncloud-codestyle install --no-progress + +vendor-bin/owncloud-codestyle/composer.lock: vendor-bin/owncloud-codestyle/composer.json + @echo owncloud-codestyle composer.lock is not up to date. + +vendor-bin/php_codesniffer/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/php_codesniffer/composer.lock + composer bin php_codesniffer install --no-progress + +vendor-bin/php_codesniffer/composer.lock: vendor-bin/php_codesniffer/composer.json + @echo php_codesniffer composer.lock is not up to date. + +vendor-bin/phan/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/phan/composer.lock + composer bin phan install --no-progress + +vendor-bin/phan/composer.lock: vendor-bin/phan/composer.json + @echo phan composer.lock is not up to date. + +vendor-bin/phpstan/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/phpstan/composer.lock + composer bin phpstan install --no-progress + +vendor-bin/phpstan/composer.lock: vendor-bin/phpstan/composer.json + @echo phpstan composer.lock is not up to date. diff --git a/build/rules/vendor-bin.mk b/build/rules/vendor-bin.mk new file mode 100644 index 000000000000..df2dcb8e7f7a --- /dev/null +++ b/build/rules/vendor-bin.mk @@ -0,0 +1,25 @@ +# Dependencies for getting the vendor and vendor-bin directory happening + +ifndef VENDOR_BIN_HAS_BEEN_INCLUDED + VENDOR_BIN_HAS_BEEN_INCLUDED=true + +composer.lock: composer.json + @echo composer.lock is not up to date. + +vendor: composer.lock + composer install --no-dev + +vendor/bamarni/composer-bin-plugin: composer.lock + composer install + +clean_deps_rules+=clean-vendor clean-vendor-bin + +.PHONY: clean-vendor +clean-vendor: + rm -Rf vendor + +.PHONY: clean-vendor-bin +clean-vendor-bin: + rm -Rf vendor-bin/**/vendor vendor-bin/**/composer.lock + +endif From 9a2aa940226d15cc2f0ec17d1a55c5c3cb8c0c37 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Mon, 4 Mar 2019 17:24:27 +0545 Subject: [PATCH 2/6] Move php_codesnifffer into its own test-accceptance-style makefile target --- build/rules/test-acceptance.mk | 12 ++++++++++++ build/rules/test-php.mk | 10 +--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/build/rules/test-acceptance.mk b/build/rules/test-acceptance.mk index 69a475282bec..a8ecca203f2a 100644 --- a/build/rules/test-acceptance.mk +++ b/build/rules/test-acceptance.mk @@ -9,6 +9,7 @@ acceptance_test_deps=vendor-bin/behat/vendor # bin file definitions BEHAT_BIN=vendor-bin/behat/vendor/bin/behat +PHP_CODESNIFFER=vendor-bin/php_codesniffer/vendor/bin/phpcs .PHONY: test-acceptance-api test-acceptance-api: ## Run API acceptance tests @@ -25,6 +26,11 @@ test-acceptance-webui: ## Run webUI acceptance tests test-acceptance-webui: $(acceptance_test_deps) BEHAT_BIN=$(BEHAT_BIN) ../../tests/acceptance/run.sh --remote --type webui +.PHONY: test-acceptance-style +test-acceptance-style: ## Run php_codesniffer and check acceptance test code-style +test-acceptance-style: vendor-bin/php_codesniffer/vendor + $(PHP_CODESNIFFER) --runtime-set ignore_warnings_on_exit --standard=phpcs.xml tests/acceptance + # # Dependency management #-------------------------------------- @@ -36,3 +42,9 @@ vendor-bin/behat/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/behat/com vendor-bin/behat/composer.lock: vendor-bin/behat/composer.json @echo behat composer.lock is not up to date. + +vendor-bin/php_codesniffer/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/php_codesniffer/composer.lock + composer bin php_codesniffer install --no-progress + +vendor-bin/php_codesniffer/composer.lock: vendor-bin/php_codesniffer/composer.json + @echo php_codesniffer composer.lock is not up to date. diff --git a/build/rules/test-php.mk b/build/rules/test-php.mk index b905d4078eea..e0aaf6f4fb2c 100644 --- a/build/rules/test-php.mk +++ b/build/rules/test-php.mk @@ -9,7 +9,6 @@ include $(RELATIVE_PATH)check-composer.mk PHPUNIT=php -d zend.enable_gc=0 "$(PWD)/../../lib/composer/bin/phpunit" PHPUNITDBG=phpdbg -qrr -d memory_limit=4096M -d zend.enable_gc=0 "$(PWD)/../../lib/composer/bin/phpunit" PHP_CS_FIXER=php -d zend.enable_gc=0 vendor-bin/owncloud-codestyle/vendor/bin/php-cs-fixer -PHP_CODESNIFFER=vendor-bin/php_codesniffer/vendor/bin/phpcs PHAN=php -d zend.enable_gc=0 vendor-bin/phan/vendor/bin/phan PHPSTAN=php -d zend.enable_gc=0 vendor-bin/phpstan/vendor/bin/phpstan @@ -25,9 +24,8 @@ test-php-unit-dbg: .PHONY: test-php-style test-php-style: ## Run php-cs-fixer and check owncloud code-style -test-php-style: vendor-bin/owncloud-codestyle/vendor vendor-bin/php_codesniffer/vendor +test-php-style: vendor-bin/owncloud-codestyle/vendor $(PHP_CS_FIXER) fix -v --diff --diff-format udiff --allow-risky yes --dry-run - $(PHP_CODESNIFFER) --runtime-set ignore_warnings_on_exit --standard=phpcs.xml tests/acceptance .PHONY: test-php-style-fix test-php-style-fix: ## Run php-cs-fixer and fix code style issues @@ -56,12 +54,6 @@ vendor-bin/owncloud-codestyle/vendor: vendor/bamarni/composer-bin-plugin vendor- vendor-bin/owncloud-codestyle/composer.lock: vendor-bin/owncloud-codestyle/composer.json @echo owncloud-codestyle composer.lock is not up to date. -vendor-bin/php_codesniffer/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/php_codesniffer/composer.lock - composer bin php_codesniffer install --no-progress - -vendor-bin/php_codesniffer/composer.lock: vendor-bin/php_codesniffer/composer.json - @echo php_codesniffer composer.lock is not up to date. - vendor-bin/phan/vendor: vendor/bamarni/composer-bin-plugin vendor-bin/phan/composer.lock composer bin phan install --no-progress From 80ffb1bac6273e56458597c9f7a1cfee4b3a0494 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 5 Mar 2019 15:43:55 +0545 Subject: [PATCH 3/6] Find occ and phpunit locally or up 2 levels --- build/rules/dist.mk | 6 +++++- build/rules/test-php.mk | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/build/rules/dist.mk b/build/rules/dist.mk index 98f2929c3b61..42205ff93654 100644 --- a/build/rules/dist.mk +++ b/build/rules/dist.mk @@ -3,7 +3,11 @@ ##-------------------------------------- # signing -occ=$(CURDIR)/../../occ +PATH_TO_OCC=$(CURDIR)/occ +ifeq ("$(wildcard $(PATH_TO_OCC))","") + PATH_TO_OCC=$(CURDIR)/../../occ +endif +occ=$(PATH_TO_OCC) private_key=$(HOME)/.owncloud/certificates/$(app_name).key certificate=$(HOME)/.owncloud/certificates/$(app_name).crt sign=$(occ) integrity:sign-app --privateKey="$(private_key)" --certificate="$(certificate)" diff --git a/build/rules/test-php.mk b/build/rules/test-php.mk index e0aaf6f4fb2c..018bcae0fcf0 100644 --- a/build/rules/test-php.mk +++ b/build/rules/test-php.mk @@ -6,8 +6,12 @@ RELATIVE_PATH := $(dir $(lastword $(MAKEFILE_LIST))) include $(RELATIVE_PATH)check-composer.mk # bin file definitions -PHPUNIT=php -d zend.enable_gc=0 "$(PWD)/../../lib/composer/bin/phpunit" -PHPUNITDBG=phpdbg -qrr -d memory_limit=4096M -d zend.enable_gc=0 "$(PWD)/../../lib/composer/bin/phpunit" +PATH_TO_PHPUNIT=$(CURDIR)/lib/composer/bin/phpunit +ifeq ("$(wildcard $(PATH_TO_PHPUNIT))","") + PATH_TO_PHPUNIT=$(CURDIR)/../../lib/composer/bin/phpunit +endif +PHPUNIT=php -d zend.enable_gc=0 "$(PATH_TO_PHPUNIT)" +PHPUNITDBG=phpdbg -qrr -d memory_limit=4096M -d zend.enable_gc=0 "$(PATH_TO_PHPUNIT)" PHP_CS_FIXER=php -d zend.enable_gc=0 vendor-bin/owncloud-codestyle/vendor/bin/php-cs-fixer PHAN=php -d zend.enable_gc=0 vendor-bin/phan/vendor/bin/phan PHPSTAN=php -d zend.enable_gc=0 vendor-bin/phpstan/vendor/bin/phpstan From 8e1c0376e52b5ca5d9cf078d9519f74077afe022 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 5 Mar 2019 15:44:32 +0545 Subject: [PATCH 4/6] Remove test-all.mk as it is not much useful --- build/rules/test-all.mk | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 build/rules/test-all.mk diff --git a/build/rules/test-all.mk b/build/rules/test-all.mk deleted file mode 100644 index 0a562bce69b8..000000000000 --- a/build/rules/test-all.mk +++ /dev/null @@ -1,6 +0,0 @@ -# All tests -# A convenience for repos that want to have all common test targets available -RELATIVE_PATH := $(dir $(lastword $(MAKEFILE_LIST))) -include $(RELATIVE_PATH)test-js.mk -include $(RELATIVE_PATH)test-php.mk -include $(RELATIVE_PATH)test-acceptance.mk From 6ecb29eb5f9494765e589974a0893389dbc384f6 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 5 Mar 2019 15:46:51 +0545 Subject: [PATCH 5/6] Add more files to default doc_files --- build/rules/dist.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/rules/dist.mk b/build/rules/dist.mk index 42205ff93654..3149f624b3f5 100644 --- a/build/rules/dist.mk +++ b/build/rules/dist.mk @@ -28,7 +28,7 @@ endif # If not specified by the caller, then select some common doc files to put in the tarball. ifndef doc_files - doc_files=README.md CHANGELOG.md + doc_files=CHANGELOG.md CONTRIBUTING.md LICENSE README.md endif # If not specified by the caller, then select a "standard" set of dirs to put in the tarball. From 41347fccb64973aa2e0ac78e668415236954cfdb Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 5 Mar 2019 18:34:32 +0545 Subject: [PATCH 6/6] Add LICENSE LICENSE.md CONTRIBUTING.md only if they exist --- build/rules/dist.mk | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/build/rules/dist.mk b/build/rules/dist.mk index 3149f624b3f5..1f1c8ece5894 100644 --- a/build/rules/dist.mk +++ b/build/rules/dist.mk @@ -28,7 +28,16 @@ endif # If not specified by the caller, then select some common doc files to put in the tarball. ifndef doc_files - doc_files=CHANGELOG.md CONTRIBUTING.md LICENSE README.md + doc_files=CHANGELOG.md README.md +ifneq ("$(wildcard LICENSE)","") + doc_files+=LICENSE +endif +ifneq ("$(wildcard LICENSE.md)","") + doc_files+=LICENSE.md +endif +ifneq ("$(wildcard CONTRIBUTING.md)","") + doc_files+=CONTRIBUTING.md +endif endif # If not specified by the caller, then select a "standard" set of dirs to put in the tarball.