]> git.proxmox.com Git - vncterm.git/blob - Makefile
buildsys: add DSC & sbuild convenience target
[vncterm.git] / Makefile
1 include /usr/share/dpkg/pkg-info.mk
2 include /usr/share/dpkg/architecture.mk
3
4 PACKAGE=vncterm
5 BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
6 GITVERSION:=$(shell cat .git/refs/heads/master)
7
8 VNCVER=0.9.14
9 VNCREL=LibVNCServer-$(VNCVER)
10 VNCDIR=libvncserver-$(VNCREL)
11 VNCSRC=$(VNCREL).tar.gz
12 VNCLIB=$(VNCDIR)/libvncserver.a
13
14 DSC = $(PACKAGE)_$(DEB_VERSION).dsc
15
16 DEB=$(PACKAGE)_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb
17 DBG_DEB=$(PACKAGE)-dbgysm_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb
18
19 CPPFLAGS += -O2 -g -Wall -Wno-deprecated-declarations -D_GNU_SOURCE -I $(VNCDIR)
20
21 VNC_LIBS := -lnsl -lpthread -lz -ljpeg -lutil -lgnutls -lpng
22
23 all: vncterm
24
25 font.data: genfont2
26 ./genfont2 -o font.data.tmp -i /usr/share/unifont/unifont.hex
27 mv font.data.tmp font.data
28
29 genfont2: genfont2.c
30 gcc -g -O2 -o $@ genfont2.c -Wall -Wextra -D_GNU_SOURCE -lz
31
32 .PHONY: vnc
33 vnc: $(VNCLIB)
34 $(VNCLIB): $(VNCSRC)
35 rm -rf $(VNCDIR)
36 tar xf $(VNCSRC)
37 ln -s ../vncpatches $(VNCDIR)/patches
38 cd $(VNCDIR); quilt push -a
39 cd $(VNCDIR); cmake -D WITH_GNUTLS=OFF -D WITH_OPENSSL=OFF -D WITH_WEBSOCKETS=OFF -D WITH_SYSTEMD=OFF -D WITH_TIGHTVNC_FILETRANSFER=OFF -D WITH_GCRYPT=OFF -D WITH_LZO=OFF -D BUILD_SHARED_LIBS=OFF .; cmake --build .
40
41 vncterm: vncterm.c wchardata.c $(VNCLIB)
42 $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(VNC_LIBS)
43
44 wchardata.c:
45 cp /usr/share/unifont/$@ $@
46
47 .PHONY: install
48 install: vncterm vncterm.1 font.data
49 mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)
50 install -m 0644 font.data $(DESTDIR)/usr/share/$(PACKAGE)
51 mkdir -p $(DESTDIR)/usr/share/man/man1
52 install -m 0644 vncterm.1 $(DESTDIR)/usr/share/man/man1
53 mkdir -p $(DESTDIR)/usr/bin
54 install -m 0755 vncterm $(DESTDIR)/usr/bin
55
56 .PHONY: dinstall
57 dinstall: $(DEB)
58 dpkg -i $(DEB)
59
60 vncterm.1: vncterm.pod
61 rm -f $@
62 pod2man -n $< -s 1 -r $(DEB_VERSION_UPSTREAM) <$< >$@
63
64 $(BUILDDIR):
65 rm -rf $@ $@.tmp
66 rsync -a . $@.tmp
67 echo "git clone git://git.proxmox.com/git/vncterm.git\\ngit checkout $(GIVERSION)" > $@.tmp/debian/SOURCE
68 mv $@.tmp $@
69
70 .PHONY: deb
71 deb: $(DEB)
72 $(DEB): $(BUILDDIR)
73 cd $(BUILDDIR); dpkg-buildpackage -rfakeroot -b -us -uc
74 lintian $(DEB)
75
76 .PHONY: dsc
77 dsc: $(DSC)
78 rm -rf $(BUILDDIR) $(DSC)
79 $(MAKE) $(DSC)
80 lintian $(DSC)
81
82 $(DSC): $(BUILDDIR)
83 cd $(BUILDDIR); dpkg-buildpackage -S -us -uc
84
85 sbuild: $(DSC)
86 sbuild $<
87
88 .PHONY: upload
89 upload: $(DEB)
90 tar cf - $(DEB) $(DBG_DEB) | ssh -X repoman@repo.proxmox.com -- upload --product pve --dist bullseye
91
92 .PHONY: clean
93 clean:
94 rm -f *.dsc *.deb $(PACKAGE)*.tar* *.changes *.build *.buildinfo
95 rm -f vncterm vncterm.1 genfont genfont2 *~ *.tmp wchardata.c font.data
96 rm -rf $(VNCDIR) $(PACKAGE)-[0-9]*/
97
98 .PHONY: distclean
99 distclean: clean