Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
51 lines (41 loc) · 2.09 KB
/
Copy pathMakefile
File metadata and controls
51 lines (41 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# LeiOS System Base Files — build, package, install and test helpers.
# All destructive commands validate their target variables to prevent
# accidental damage if a variable is empty.
PACKAGE_NAME := leios.system.base-files
DEB_BUILD_OUTPUT_DIR := deb-build
.PHONY: all clean distclean package install update
all: package
# Guard macro: abort if a variable is empty.
require_var = $(if $(strip $1),,$(error Required variable is empty: $2))
# Safe cleanup used by debhelper: only removes generated files that are not
# the final build output directory. That directory is kept because this target
# is called by dh_auto_clean while the package is still being built.
clean:
@:$(call require_var,$(DEB_BUILD_OUTPUT_DIR),DEB_BUILD_OUTPUT_DIR)
dh_clean || true
find . -name '*.deb' -delete
find . -name '*.changes' -delete
find . -name '*.buildinfo' -delete
find . -name '*.dsc' -delete
find . -name '*.tar.xz' -delete
find . -name '*.tar.gz' -delete
# Full cleanup including build output and APT repo directory.
distclean: clean
@:$(call require_var,$(DEB_BUILD_OUTPUT_DIR),DEB_BUILD_OUTPUT_DIR)
rm -rf "$(DEB_BUILD_OUTPUT_DIR)"
package:
@:$(call require_var,$(PACKAGE_NAME),PACKAGE_NAME)
@:$(call require_var,$(DEB_BUILD_OUTPUT_DIR),DEB_BUILD_OUTPUT_DIR)
mkdir -p "$(DEB_BUILD_OUTPUT_DIR)"
dpkg-buildpackage -us -uc -b
mv ../$(PACKAGE_NAME)_*.deb ../$(PACKAGE_NAME)_*.changes ../$(PACKAGE_NAME)_*.buildinfo "$(DEB_BUILD_OUTPUT_DIR)/" 2>/dev/null || true
install: package
@:$(call require_var,$(PACKAGE_NAME),PACKAGE_NAME)
@:$(call require_var,$(DEB_BUILD_OUTPUT_DIR),DEB_BUILD_OUTPUT_DIR)
sudo apt-get install -y $(DEB_BUILD_OUTPUT_DIR)/$(PACKAGE_NAME)_*.deb || \
(sudo apt-get install -f -y && sudo apt-get install -y $(DEB_BUILD_OUTPUT_DIR)/$(PACKAGE_NAME)_*.deb)
update: package
@:$(call require_var,$(PACKAGE_NAME),PACKAGE_NAME)
@:$(call require_var,$(DEB_BUILD_OUTPUT_DIR),DEB_BUILD_OUTPUT_DIR)
sudo apt-get install --only-upgrade -y $(DEB_BUILD_OUTPUT_DIR)/$(PACKAGE_NAME)_*.deb || \
(sudo apt-get install -f -y && sudo apt-get install --only-upgrade -y $(DEB_BUILD_OUTPUT_DIR)/$(PACKAGE_NAME)_*.deb)