]> git.proxmox.com Git - vncterm.git/blobdiff - Makefile
buildsys: make build-dir generation atomic
[vncterm.git] / Makefile
index 81b11d87eceb1e3c4a223e90cc01108325c16428..1740b81dc4fbbeae6a9f9ec0abfc7a0ece0db4dd 100644 (file)
--- a/Makefile
+++ b/Makefile
-RELEASE=3.1
+include /usr/share/dpkg/pkg-info.mk
+include /usr/share/dpkg/architecture.mk
 
 PACKAGE=vncterm
-# Note: also change version in debian/control and debian/changelog
-VERSION=1.1
-PACKAGERELEASE=6
-ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
-CDATE:=$(shell date +%F)
+BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
+GITVERSION:=$(shell cat .git/refs/heads/master)
 
-VNCVER=0.9.7
-VNCDIR=LibVNCServer-${VNCVER}
-VNCSRC=${VNCDIR}.tar.gz
-VNCLIB=${VNCDIR}/libvncserver/.libs/libvncserver.a
+VNCVER=0.9.14
+VNCREL=LibVNCServer-$(VNCVER)
+VNCDIR=libvncserver-$(VNCREL)
+VNCSRC=$(VNCREL).tar.gz
+VNCLIB=$(VNCDIR)/libvncserver.a
 
-TIGERVNCSRC=tigervnc-1.1.0.tgz
-#TIGERVNCSRC=tigervnc-1.2.0.tgz
+DEB=$(PACKAGE)_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb
+DBG_DEB=$(PACKAGE)-dbgysm_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb
 
-DEB=${PACKAGE}_${VERSION}-${PACKAGERELEASE}_${ARCH}.deb
-SNAP=${PACKAGE}-${VERSION}-${CDATE}.tar.gz
+CPPFLAGS += -O2 -g -Wall -Wno-deprecated-declarations -D_GNU_SOURCE -I $(VNCDIR)
 
-KEYSTORE=/home/dietmar/pve2-proxdev/proxmox-dev/comodo-for-java.keystore
+VNC_LIBS := -lnsl -lpthread -lz -ljpeg -lutil -lgnutls -lpng
 
 all: vncterm
 
-glyphs.h: genfont
-       ./genfont > glyphs.h
+font.data: genfont2
+       ./genfont2 -o font.data.tmp -i /usr/share/unifont/unifont.hex
+       mv font.data.tmp font.data
 
-genfont: genfont.c
-       gcc -g -O2 -o $@ genfont.c -Wall -D_GNU_SOURCE -lz
+genfont2: genfont2.c
+       gcc -g -O2 -o $@ genfont2.c -Wall -Wextra -D_GNU_SOURCE -lz
 
 .PHONY: vnc
-${VNCLIB} vnc: ${VNCSRC}
-       rm -rf ${VNCDIR}
-       tar xf ${VNCSRC}
-       ln -s ../vncpatches ${VNCDIR}/patches
-       cd ${VNCDIR}; quilt push -a
-       cd ${VNCDIR}; ./configure; 
-       cd ${VNCDIR}; make
-
-vncterm: vncterm.c glyphs.h ${VNCLIB}
-       gcc -O2 -g -o $@ vncterm.c -Wall -D_GNU_SOURCE -I ${VNCDIR} ${VNCLIB} -lnsl -lpthread -lz -ljpeg -lutil -lgnutls
-
-jar: tigervnc.org
-       if test ! -f /usr/share/icedtea-web/plugin.jar; then echo "please install package icedtea-netx-common"; exit 1; fi
-       rm -rf tigervnc VncViewer.jar
-       rsync -av --exclude .svn --exclude .svnignore  tigervnc.org/ tigervnc
-       ln -s ../tigerpatches tigervnc/patches
-       cd tigervnc; quilt push -a
-       cd tigervnc/java/src/com/tigervnc/vncviewer; make clean; make
-       jarsigner -keystore ${KEYSTORE} -signedjar VncViewer.jar  tigervnc/java/src/com/tigervnc/vncviewer/VncViewer.jar "proxmox server solutions gmbh's comodo ca limited id"
-
-# this is for version 1.2
-#      ln -s ../newtigerpatches tigervnc/patches
-#      cd tigervnc/java;cmake -G "Unix Makefiles"; make
-#      jarsigner -keystore ${KEYSTORE} -signedjar VncViewer.jar  tigervnc/java/VncViewer.jar proxmox
-
-tigervnc.org: ${TIGERVNCSRC}
-       rm -rf tigervnc.org
-       tar xf ${TIGERVNCSRC}
-
-download:
-       rm -rf tigervnc.org
-       svn co https://tigervnc.svn.sourceforge.net/svnroot/tigervnc/tags/1_1_0 tigervnc.org 
-       tar cf ${TIGERVNCSRC} tigervnc.org
+vnc: $(VNCLIB)
+$(VNCLIB): $(VNCSRC)
+       rm -rf $(VNCDIR)
+       tar xf $(VNCSRC)
+       ln -s ../vncpatches $(VNCDIR)/patches
+       cd $(VNCDIR); quilt push -a
+       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 .
+
+vncterm: vncterm.c wchardata.c $(VNCLIB)
+       $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(VNC_LIBS)
+
+wchardata.c:
+       cp /usr/share/unifont/$@ $@
 
 .PHONY: install
-install: vncterm vncterm.1 VncViewer.jar
-       mkdir -p ${DESTDIR}/usr/share/doc/${PACKAGE}
-       mkdir -p ${DESTDIR}/usr/share/man/man1
-       mkdir -p ${DESTDIR}/usr/bin
-       install -s -m 0755 vncterm ${DESTDIR}/usr/bin
-       mkdir -p ${DESTDIR}/usr/share/vncterm/
-       install -m 0644 VncViewer.jar ${DESTDIR}/usr/share/vncterm/
+install: vncterm vncterm.1 font.data
+       mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)
+       install -m 0644 font.data $(DESTDIR)/usr/share/$(PACKAGE)
+       mkdir -p $(DESTDIR)/usr/share/man/man1
+       install -m 0644 vncterm.1 $(DESTDIR)/usr/share/man/man1
+       mkdir -p $(DESTDIR)/usr/bin
+       install -m 0755 vncterm $(DESTDIR)/usr/bin
 
 .PHONY: dinstall
-dinstall: ${DEB}
-       dpkg -i ${DEB}
+dinstall: $(DEB)
+       dpkg -i $(DEB)
 
 vncterm.1: vncterm.pod
        rm -f $@
-       pod2man -n $< -s 1 -r ${VERSION} <$< >$@
+       pod2man -n $< -s 1 -r $(DEB_VERSION_UPSTREAM) <$< >$@
+
+$(BUILDDIR):
+       rm -rf $@ $@.tmp
+       rsync -a . $@.tmp
+       echo "git clone git://git.proxmox.com/git/vncterm.git\\ngit checkout $(GIVERSION)" > $@.tmp/debian/SOURCE
+       mv $@.tmp $@
 
 .PHONY: deb
-${DEB} deb:
-       make clean
-       rm -rf dest
-       mkdir dest
-       make DESTDIR=`pwd`/dest install
-       install -d -m 0755 dest/DEBIAN
-       install -m 0644 debian/control dest/DEBIAN
-       echo "Architecture: ${ARCH}" >>dest/DEBIAN/control
-       install -m 0644 debian/conffiles dest/DEBIAN
-       install -m 0644 copyright dest/usr/share/doc/${PACKAGE}
-       install -m 0644 vncterm.1 dest/usr/share/man/man1
-       install -m 0644 debian/changelog.Debian dest/usr/share/doc/${PACKAGE}
-       gzip --best dest/usr/share/man/*/*
-       gzip --best dest/usr/share/doc/${PACKAGE}/changelog.Debian
-       dpkg-deb --build dest
-       mv dest.deb ${DEB}
-       rm -rf dest
-       lintian ${DEB}  
+deb: $(DEB)
+$(DEB): $(BUILDDIR)
+       cd $(BUILDDIR); dpkg-buildpackage -rfakeroot -b -us -uc
+       lintian $(DEB)
 
 .PHONY: upload
-upload: ${DEB}
-       umount /pve/${RELEASE}; mount /pve/${RELEASE} -o rw 
-       mkdir -p /pve/${RELEASE}/extra
-       rm -f /pve/${RELEASE}/extra/${PACKAGE}_*.deb
-       rm -f /pve/${RELEASE}/extra/Packages*
-       cp ${DEB} /pve/${RELEASE}/extra
-       cd /pve/${RELEASE}/extra; dpkg-scanpackages . /dev/null > Packages; gzip -9c Packages > Packages.gz
-       umount /pve/${RELEASE}; mount /pve/${RELEASE} -o ro
+upload: $(DEB)
+       tar cf - $(DEB) $(DBG_DEB) | ssh -X repoman@repo.proxmox.com -- upload --product pve --dist bullseye
 
 .PHONY: clean
 clean:
-       rm -rf vncterm vncterm.1 vncterm_*.deb tigervnc *~ ${VNCDIR} vncterm-*.tar.gz
+       rm -rf vncterm vncterm.1 vncterm_*.deb genfont genfont2 *~ $(VNCDIR) vncterm-*.tar.gz glyph.h.tmp build *.changes wchardata.c font.data.tmp font.data *.buildinfo
 
 .PHONY: distclean
 distclean: clean
-       rm -rf tigervnc.org
-
-.PHONY: dist
-${SNAP} dist: distclean
-       rm -rf ../${SNAP}
-       cd ..; tar cvzf ${SNAP} --exclude .svn ${PACKAGE}
-       mv ../${SNAP} ${SNAP}
-
-.PHONY: uploaddist
-uploaddist: ${SNAP}
-       scp ${SNAP} pve.proxmox.com:/home/ftp/sources/
\ No newline at end of file