diff options
author | Scott Murray <scott.murray@konsulko.com> | 2020-06-02 11:12:35 -0400 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2020-06-02 11:13:33 -0400 |
commit | 2bf660fb4d98d01c805afdb59d55a052ff65f29e (patch) | |
tree | 96a1ea959957337c37a266c10fc0acbe89cf23d4 | |
parent | f6c32d5b95d02b1d6d77ae3dd0a83da8682fc78e (diff) |
Add autobuild scripts
Bug-AGL: SPEC-2049, SPEC-3397
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I53a11861be80629bcc9aad2c7dfd705916870bc2
-rwxr-xr-x | autobuild/agl/autobuild | 104 | ||||
-rwxr-xr-x | autobuild/linux/autobuild | 104 |
2 files changed, 208 insertions, 0 deletions
diff --git a/autobuild/agl/autobuild b/autobuild/agl/autobuild new file mode 100755 index 0000000..fa1d1c2 --- /dev/null +++ b/autobuild/agl/autobuild @@ -0,0 +1,104 @@ +#!/usr/bin/make -f +# Copyright (C) 2015 - 2018 "IoT.bzh" +# Copyright (C) 2020 Konsulko Group +# Author "Romain Forlot" <romain.forlot@iot.bzh> +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +THISFILE := $(lastword $(MAKEFILE_LIST)) +ROOT_DIR := $(abspath $(dir $(THISFILE))/../..) + +# Build directory +# Note that unlike the autobuild makefiles for other types of widget, +# for NPM based builds the BUILD_DIR is only used for copying the final +# widget to, as building outside of the source tree is non-trivial to +# make work with NPM. As such, the default location is the root of the +# source tree. +# +# Additionally, there is no real need for a debug build for these +# applications, so no separate directory is defined, and all the related +# debug targets are stubbed out. +BUILD_DIR = $(ROOT_DIR) + +# Output directory variable for use in pattern rules. +# This is intended for internal use only, hence the explicit override +# definition. +override OUTPUT_DIR = $(BUILD_DIR) + +# Final install directory for widgets +DEST = $(OUTPUT_DIR) + +.PHONY: all help update install distclean +.PHONY: clean clean-release clean-debug clean-all +.PHONY: configure configure-release configure-debug +.PHONY: build build-release build-debug build-all +.PHONY: package package-release package-debug package-all + +help: + @echo "List of targets available:" + @echo "" + @echo "- all" + @echo "- help" + @echo "- clean" + @echo "- distclean" + @echo "- configure" + @echo "- build: compilation, link and prepare files for package into a widget" + @echo "- package: output a widget file '*.wgt'" + @echo "- install: install in $(DEST) directory" + @echo "" + @echo "Usage: ./autobuild/agl/autobuild package DEST=${HOME}/opt" + @echo "Don't use your build dir as DEST as wgt file is generated at this location" + +all: package-all + +clean-release: + @rm -rf $(ROOT_DIR)/node_modules $(ROOT_DIR)/package $(ROOT_DIR)/package-lock.json + +clean: clean-release + +clean-debug: ; + +clean-all: clean-release + +distclean: clean-all + +configure-release: clean-release + @rm -rf node_modules + @npm install + +configure: configure-release + +configure-debug: ; + +build-release: build-%: configure-% + npm run build + +build: build-release + +build-debug: ; + +build-all: build-release + +package-release: package-%: build-% + @cp $(ROOT_DIR)/package/*.wgt $(OUTPUT_DIR)/ + @if [ "$(abspath $(DEST))" != "$(abspath $(OUTPUT_DIR))" ]; then \ + mkdir -p $(DEST) && cp $(OUTPUT_DIR)/*.wgt $(DEST); \ + fi + +package: package-release + +package-debug: ; + +package-all: package-release + +install: package diff --git a/autobuild/linux/autobuild b/autobuild/linux/autobuild new file mode 100755 index 0000000..fa1d1c2 --- /dev/null +++ b/autobuild/linux/autobuild @@ -0,0 +1,104 @@ +#!/usr/bin/make -f +# Copyright (C) 2015 - 2018 "IoT.bzh" +# Copyright (C) 2020 Konsulko Group +# Author "Romain Forlot" <romain.forlot@iot.bzh> +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +THISFILE := $(lastword $(MAKEFILE_LIST)) +ROOT_DIR := $(abspath $(dir $(THISFILE))/../..) + +# Build directory +# Note that unlike the autobuild makefiles for other types of widget, +# for NPM based builds the BUILD_DIR is only used for copying the final +# widget to, as building outside of the source tree is non-trivial to +# make work with NPM. As such, the default location is the root of the +# source tree. +# +# Additionally, there is no real need for a debug build for these +# applications, so no separate directory is defined, and all the related +# debug targets are stubbed out. +BUILD_DIR = $(ROOT_DIR) + +# Output directory variable for use in pattern rules. +# This is intended for internal use only, hence the explicit override +# definition. +override OUTPUT_DIR = $(BUILD_DIR) + +# Final install directory for widgets +DEST = $(OUTPUT_DIR) + +.PHONY: all help update install distclean +.PHONY: clean clean-release clean-debug clean-all +.PHONY: configure configure-release configure-debug +.PHONY: build build-release build-debug build-all +.PHONY: package package-release package-debug package-all + +help: + @echo "List of targets available:" + @echo "" + @echo "- all" + @echo "- help" + @echo "- clean" + @echo "- distclean" + @echo "- configure" + @echo "- build: compilation, link and prepare files for package into a widget" + @echo "- package: output a widget file '*.wgt'" + @echo "- install: install in $(DEST) directory" + @echo "" + @echo "Usage: ./autobuild/agl/autobuild package DEST=${HOME}/opt" + @echo "Don't use your build dir as DEST as wgt file is generated at this location" + +all: package-all + +clean-release: + @rm -rf $(ROOT_DIR)/node_modules $(ROOT_DIR)/package $(ROOT_DIR)/package-lock.json + +clean: clean-release + +clean-debug: ; + +clean-all: clean-release + +distclean: clean-all + +configure-release: clean-release + @rm -rf node_modules + @npm install + +configure: configure-release + +configure-debug: ; + +build-release: build-%: configure-% + npm run build + +build: build-release + +build-debug: ; + +build-all: build-release + +package-release: package-%: build-% + @cp $(ROOT_DIR)/package/*.wgt $(OUTPUT_DIR)/ + @if [ "$(abspath $(DEST))" != "$(abspath $(OUTPUT_DIR))" ]; then \ + mkdir -p $(DEST) && cp $(OUTPUT_DIR)/*.wgt $(DEST); \ + fi + +package: package-release + +package-debug: ; + +package-all: package-release + +install: package |