]> git.proxmox.com Git - pve-xtermjs.git/blob - Makefile
buildsys: fix source tarball generation and add sbuild target
[pve-xtermjs.git] / Makefile
1 include /usr/share/dpkg/pkg-info.mk
2 include /usr/share/dpkg/architecture.mk
3
4 PACKAGE=pve-xtermjs
5 CRATENAME=termproxy
6
7 BUILDDIR ?= $(DEB_SOURCE)-$(DEB_VERSION_UPSTREAM)
8 ORIG_SRC_TAR=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz
9
10 export VERSION=$(DEB_VERSION_UPSTREAM_REVISION)
11
12 XTERMJSVER=4.16.0
13 XTERMJSTGZ=xterm-$(XTERMJSVER).tgz
14
15 FITADDONVER=0.5.0
16 FITADDONTGZ=xterm-addon-fit-$(FITADDONVER).tgz
17
18 DEB=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_HOST_ARCH).deb
19 DBG_DEB=$(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_HOST_ARCH).deb
20 DSC=rust-$(CRATENAME)_$(DEB_VERSION_UPSTREAM_REVISION).dsc
21
22 CARGO ?= cargo
23 ifeq ($(BUILD_MODE), release)
24 CARGO_BUILD_ARGS += --release
25 COMPILEDIR := target/release
26 else
27 COMPILEDIR := target/debug
28 endif
29
30 PREFIX = /usr
31 BINDIR = $(PREFIX)/bin
32 TERMPROXY_BIN := $(addprefix $(COMPILEDIR)/,termproxy)
33
34 all:
35
36 install: $(TERMPROXY_BIN)
37 install -dm755 $(DESTDIR)$(BINDIR)
38 install -m755 $(TERMPROXY_BIN) $(DESTDIR)$(BINDIR)/
39
40 $(TERMPROXY_BIN): .do-cargo-build
41 .do-cargo-build:
42 $(CARGO) build $(CARGO_BUILD_ARGS)
43 touch .do-cargo-build
44
45
46 .PHONY: cargo-build
47 cargo-build: .do-cargo-build
48
49 update-dcontrol:
50 rm -rf $(BUILDDIR)
51 $(MAKE) $(BUILDDIR)
52 cd $(BUILDDIR); debcargo package \
53 --config debian/debcargo.toml \
54 --changelog-ready \
55 --no-overlay-write-back \
56 --directory build \
57 $(CRATENAME) \
58 $(DEB_VERSION_UPSTREAM)
59 cd $(BUILDDIR)/build; wrap-and-sort -tkn
60 cp --remove-destination $(BUILDDIR)/build/debian/control debian/control
61
62 $(BUILDDIR):
63 rm -rf $@ $@.tmp
64 mkdir $@.tmp
65 cp -a debian/ src/ Makefile Cargo.toml $@.tmp
66 echo "git clone git://git.proxmox.com/git/pve-xtermjs.git\\ngit checkout $$(git rev-parse HEAD)" \
67 > $@.tmp/debian/SOURCE
68 mv $@.tmp $@
69
70
71 $(ORIG_SRC_TAR): $(BUILDDIR)
72 tar czf $(ORIG_SRC_TAR) --exclude="$(BUILDDIR)/debian" $(BUILDDIR)
73
74 .PHONY: deb
75 deb: $(DEB)
76 $(DBG_DEB): $(DEB)
77 $(DEB): $(BUILDDIR)
78 cd $(BUILDDIR); dpkg-buildpackage -b -uc -us
79 lintian $(DEB)
80 @echo $(DEB)
81
82 .PHONY: dsc
83 dsc:
84 rm -rf $(DSC) $(BUILDDIR)
85 $(MAKE) $(DSC)
86 lintian $(DSC)
87
88 $(DSC): $(BUILDDIR) $(ORIG_SRC_TAR)
89 cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
90
91 sbuild: $(DSC)
92 sbuild $(DSC)
93
94 EXCLUDED_ADDONS=attach fullscreen search terminado webLinks zmodem
95 X_EXCLUSIONS=$(foreach ADDON,$(EXCLUDED_ADDONS),--exclude=addons/$(ADDON))
96
97 .PHONY: download
98 download:
99 wget https://registry.npmjs.org/xterm/-/$(XTERMJSTGZ) -O $(XTERMJSTGZ).tmp
100 wget https://registry.npmjs.org/xterm-addon-fit/-/$(FITADDONTGZ) -O $(FITADDONTGZ).tmp
101 mv $(XTERMJSTGZ).tmp $(XTERMJSTGZ)
102 mv $(FITADDONTGZ).tmp $(FITADDONTGZ)
103 tar -C src/www -xf $(XTERMJSTGZ) package/lib package/css --strip-components=2 $(X_EXCLUSIONS)
104 tar -C src/www -xf $(FITADDONTGZ) package/lib --strip-components=2 $(X_EXCLUSIONS)
105 rm $(XTERMJSTGZ) $(FITADDONTGZ)
106
107 .PHONY: upload
108 upload: $(DEB) $(DBG_DEB)
109 tar cf - $(DEB) $(DBG_DEB) |ssh -X repoman@repo.proxmox.com -- upload --product pmg,pve,pbs --dist bullseye
110
111 .PHONY: distclean
112 distclean: clean
113
114 .PHONY: clean
115 clean:
116 $(CARGO) clean
117 rm -rf $(DEB_SOURCE)-[0-9]*/ build/ *.deb *.changes *.dsc *.tar.* *.buildinfo *.build .do-cargo-build
118
119 .PHONY: dinstall
120 dinstall: deb
121 dpkg -i $(DEB)