aboutsummaryrefslogtreecommitdiff
path: root/debian/rules
blob: a4f9257ff4d7dc6c413871b7b69004560b835561 (plain)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/usr/bin/make -f

NULL =

export CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
export CFLAGS:=$(shell dpkg-buildflags --get CFLAGS)
export CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS)
export LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS)

export LIBDIR = "/usr/lib/$(shell dpkg-architecture -qDEB_BUILD_MULTIARCH)"
export INCLUDEDIR = "/usr/include/$(shell dpkg-architecture -qDEB_BUILD_MULTIARCH)"

%:
	CONFIGURE="./configure --with-symbols --prefix=/usr --libdir=$(LIBDIR) --includedir=$(INCLUDEDIR)" dh $@ --with quilt

# before build, we will remove unused code / bundled libraries (keep this in sync with roll-tarball.sh)
UNUSED_FOLDERS           = "debian/CODE-REDUCTION_CLEANUP-UNUSED"
CLEANUP_FOLDERS          = "debian/CODE-REDUCTION_CLEANUP-BRUTAL"
UNNEEDED_BACKUPS         = "debian/CODE-REDUCTION_CLEANUP-BACKUPFILES"
PRESERVE_SYMLINKED_FILES = "debian/CODE-REDUCTION_PRESERVE-SYMLINKED"
PRESERVE_NEEDED_FILES    = "debian/CODE-REDUCTION_PRESERVE-NEEDED"
PRESERVE_INCLUDED_FILES  = "debian/CODE-REDUCTION_PRESERVE-INCLUDED"

override_dh_auto_clean:
	rm -Rf nx-X11/.build-exports
	dh_auto_clean

override_dh_clean:
	rm -f nx*/configure
	rm -f nx*/changelog
	rm -f nx-X11/programs/Xserver/hw/nxagent/changelog
	rm -f nx-X11/programs/nxauth/changelog
	if [ ! -f replace.sh ] && [ ! -h replace.sh ]; then ln -s debian/Makefile.replace.sh replace.sh; fi
	. ./replace.sh; set -x; ls debian/*.install.in | while read file; do rm -f $$(string_rep $$file .install.in .install); done
	rm -fR replace.sh Makefile bin etc/rgb VERSION.x2goagent etc/keystrokes.cfg etc/nxagent.keyboard etc/x2goagent.keyboard
	rm -f debian/libnx-xinerama1.postinst
	rm -fR .preserve/
	if [ -f nxcomp/.VERSION.NoMachine ]; then mv nxcomp/.VERSION.NoMachine nxcomp/VERSION; fi
	dh_clean

override_dh_install:

	# handle builds for Debian squeeze (non multi-arch)
	. ./replace.sh; set -x; if [ -z "$(DEB_BUILD_MULTIARCH)" ]; then \
	    find debian/*.install.in | while read file; do \
	        cat $$file | sed -e 's#/\*/#/#g' > $$(string_rep $$file .install.in .install); \
	    done; \
	else \
	    find debian/*.install.in | while read file; do \
	        cat $$file > $$(string_rep $$file .install.in .install); \
	    done; \
	fi

	# remove static libs
	rm debian/tmp/usr/lib/$(DEB_BUILD_MULTIARCH)/libXcomp.a
	rm debian/tmp/usr/lib/$(DEB_BUILD_MULTIARCH)/libXcompshad.a

	# remove extras, GL, and other unneeded headers
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/GL/
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/bitmaps/
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/XInput.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/XK*.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/*Xv*.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xtrap*.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/Print*.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/XRes*.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/record*.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86vmode.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86vmstr.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86misc.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86dga1.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86dgastr.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86dga.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86dga1str.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86mscstr.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/dmxext.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/dmxproto.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/bigreqstr.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xcmiscstr.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/XIproto.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86bigfstr.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86bigfont.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/XI.h
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/fonts/
	rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/Xtrans/

	dh_install --fail-missing

override_dh_auto_install:
	PREFIX=/usr dh_auto_install -Smakefile

override_dh_auto_build:

	# create copies of upstream changelogs so that names apply to Debian policy...
	cp -a nx-X11/CHANGELOG nx-X11/changelog
	cp -a nxcomp/CHANGELOG nxcomp/changelog
	if [ -f nxcomp/VERSION ]; then cp nxcomp/VERSION nxcomp/.VERSION.NoMachine; fi
	cp -a nxcompext/CHANGELOG nxcompext/changelog
	cp -a nxcompshad/CHANGELOG nxcompshad/changelog
	cp -a nx-X11/programs/Xserver/hw/nxagent/CHANGELOG nx-X11/programs/Xserver/hw/nxagent/changelog
	cp -a nx-X11/programs/nxauth/CHANGELOG nx-X11/programs/nxauth/changelog
	cp -a nxproxy/CHANGELOG nxproxy/changelog
	ln -s debian/Makefile.nx-libs Makefile
	ln -s debian/Makefile.replace.sh replace.sh
	ln -s debian/wrappers bin
	mkdir -p etc/
	ln -s ../debian/keystrokes.cfg etc/keystrokes.cfg
	ln -s ../debian/rgb etc/rgb
	ln -s ../debian/nxagent.keyboard etc/nxagent.keyboard
	ln -s ../debian/x2goagent.keyboard etc/x2goagent.keyboard
	ln -sf debian/VERSION VERSION.x2goagent
	ln -sf ../debian/VERSION nxcomp/VERSION

	# let's prep the libnx-xinerama1.postinst script with the value of the build systems's DEB_BUILD_MULTIARCH variable
	sed debian/libnx-xinerama1.postinst.in -e 's/#DEB_BUILD_MULTIARCH#/$(DEB_BUILD_MULTIARCH)/' > debian/libnx-xinerama1.postinst

	# make a copy of code to be preserved for build
	mkdir -p .preserve
	for path in `cat $(PRESERVE_SYMLINKED_FILES)` `cat $(PRESERVE_NEEDED_FILES)` `cat $(PRESERVE_INCLUDED_FILES)`; do \
	    if echo $$path | grep -E "^#.*"; then continue; fi; \
	    test -d $$path && mkdir -p .preserve/$$path || mkdir -p .preserve/$$(dirname $$path); \
	    cp -av $$path .preserve/$$path; \
	done

	# remove unused code / bundled libraries (see at the top of the debian/rules file)
        # for the exact list of files and folders
	rm -Rf `cat $(UNUSED_FOLDERS)`
	rm -Rf `cat $(CLEANUP_FOLDERS)`
	rm -Rf `cat $(UNNEEDED_BACKUPS)`

	# copy to-be-preserved files back into code tree
	cp -av .preserve/* .
	rm -Rf .preserve/

	LOCAL_LDFLAGS=$(LDFLAGS) SHLIBGLOBALSFLAGS=$(LDFLAGS) SHLIBDIR=$(LIBDIR) PREFIX=/usr dh_auto_build --parallel

override_dh_strip:
	dh_strip -plibnx-x11-6 --dbg-package=libnx-x11-6-dbg
	dh_strip -plibnx-xau6 --dbg-package=libnx-xau6-dbg
	dh_strip -plibnx-xcomposite1 --dbg-package=libnx-xcomposite1-dbg
	dh_strip -plibnx-xdamage1 --dbg-package=libnx-xdamage1-dbg
	dh_strip -plibnx-xdmcp6 --dbg-package=libnx-xdmcp6-dbg
	dh_strip -plibnx-xext6 --dbg-package=libnx-xext6-dbg
	dh_strip -plibnx-xfixes3 --dbg-package=libnx-xfixes3-dbg
	dh_strip -plibnx-xinerama1 --dbg-package=libnx-xinerama1-dbg
	dh_strip -plibnx-xpm4 --dbg-package=libnx-xpm4-dbg
	dh_strip -plibnx-xrandr2 --dbg-package=libnx-xrandr2-dbg
	dh_strip -plibnx-xrender1 --dbg-package=libnx-xrender1-dbg
	dh_strip -plibnx-xtst6 --dbg-package=libnx-xtst6-dbg
	dh_strip -plibxcomp3 --dbg-package=libxcomp3-dbg
	dh_strip -plibxcompshad3 --dbg-package=libxcompshad3-dbg
	dh_strip -plibxcompext3 --dbg-package=libxcompext3-dbg
	dh_strip -pnxagent --dbg-package=nxagent-dbg
	dh_strip -pnxproxy --dbg-package=nxproxy-dbg
	dh_strip -pnxauth --dbg-package=nxauth-dbg