File: rules

package info (click to toggle)
cvm 0.97-0.1
  • links: PTS
  • area: main
  • in suites: buster
  • size: 1,036 kB
  • sloc: ansic: 4,065; sh: 2,758; makefile: 235; sql: 15
file content (142 lines) | stat: -rwxr-xr-x 4,814 bytes parent folder | download
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
#!/usr/bin/make -f

CC =gcc
CFLAGS =-O2 -Wall
STRIP =strip
SO =$(shell IFS=:; read v r a <LIBVERSION && echo $$(($$v-$$a)))
PGINCL =$(shell pg_config --includedir)

ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
  CFLAGS +=-g
endif
ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
  STRIP =: nostrip
endif

DIR =$(shell pwd)/debian/cvm
LDIR =$(shell pwd)/debian/libcvm$(SO)

patch: deb-checkdir patch-stamp
patch-stamp:
	for i in `ls -1 debian/diff/*.diff || :`; do \
	  patch -p1 <$$i || exit 1; \
	done
	touch patch-stamp

build: deb-checkdir build-stamp
build-stamp: patch-stamp
	-'$(CC)' -v
	test -e conf-cc'{orig}' || cp conf-cc conf-cc'{orig}'
	echo '$(CC) $(CFLAGS)' >conf-cc
	test -e conf-bin'{orig}' || cp conf-bin conf-bin'{orig}'
	echo /usr/bin >conf-bin
	test -e conf-include'{orig}' || cp conf-include conf-include'{orig}'
	echo /usr/include >conf-include
	test -e conf-lib'{orig}' || cp conf-lib conf-lib'{orig}'
	echo /usr/lib >conf-lib
	$(MAKE)
	$(MAKE) sqlite
	sh ./tests.sh
	$(MAKE) mysql
	@test -n "$(PGINCL)" || sh -cx '! : postgresql include path unknown.'
	echo '$(CC) $(CFLAGS) -I$(PGINCL)' >conf-cc
	$(MAKE) pgsql
	touch build-stamp

clean: deb-checkdir deb-checkuid
	$(MAKE) clean
	rm -rf .libs
	for i in conf-cc conf-bin conf-include conf-lib; do \
	  test ! -r $$i'{orig}' || mv -f $$i'{orig}' $$i || exit 1; \
	done
	test ! -e patch-stamp || \
	  for i in `ls -1r debian/diff/*.diff || :`; do patch -p1 -R <$$i; done
	rm -f patch-stamp build-stamp
	rm -rf '$(LDIR)' '$(LDIR)'-dev '$(DIR)' '$(DIR)'-mysql '$(DIR)'-pgsql
	rm -f debian/libcvm'$(SO)'.shlibs debian/shlibs.local debian/files \
	  debian/substvars changelog

install: deb-checkdir deb-checkuid build-stamp
	# libcvm-dev
	rm -rf '$(LDIR)' '$(LDIR)'-dev '$(DIR)' '$(DIR)'-mysql '$(DIR)'-pgsql
	$(MAKE) install install_prefix='$(LDIR)'-dev/
	rm -f '$(LDIR)'-dev/usr/lib/*.la
	$(STRIP) --strip-debug '$(LDIR)'-dev/usr/lib/*.a
	# libcvm
	install -d -m0755 '$(LDIR)'/usr/lib
	for i in '$(LDIR)'-dev/usr/lib/*.so.*; do \
	  mv $$i '$(LDIR)'/usr/lib/ || exit 1; \
	done
	chmod 0644 '$(LDIR)'/usr/lib/*
	$(STRIP) -R .note -R .comment --strip-unneeded \
	  '$(LDIR)'/usr/lib/*.so.?.?.?
	rm -f debian/libcvm'$(SO)'.shlibs debian/shlibs.local
	for i in `cd '$(LDIR)'/usr/lib && ls -1 *.so.?`; do \
	  echo "$${i%%.so.?} 1 libcvm$(SO)" >>debian/libcvm'$(SO)'.shlibs; \
	done
	ln -s libcvm'$(SO)'.shlibs debian/shlibs.local
	# cvm
	install -d -m0755 '$(DIR)'/usr
	mv '$(LDIR)'-dev/usr/bin '$(DIR)'/usr/
	# don't install cvm-sqlite for now
	rm -f '$(DIR)'/usr/bin/cvm-sqlite
	$(STRIP) -R .comment -R .note '$(DIR)'/usr/bin/*
	install -d -m0755 '$(DIR)'/usr/share/man/man8
	for i in cvm-benchclient.8 cvm-checkpassword.8 cvm-pwfile.8 \
	 cvm-qmail.8 cvm-testclient.8 cvm-unix.8 cvm-vmailmgr.8; do \
	  install -m0644 debian/$$i '$(DIR)'/usr/share/man/man8/ || exit 1; \
	done
	gzip -9n '$(DIR)'/usr/share/man/man8/*.8
	install -d -m0755 '$(DIR)'/usr/share/man/man7
	install -m0644 debian/cvm-sql.7 '$(DIR)'/usr/share/man/man7/
	gzip -9n '$(DIR)'/usr/share/man/man7/*.7
	# cvm-mysql
	install -d -m0755 '$(DIR)'-mysql/usr/bin
	mv '$(DIR)'/usr/bin/cvm-mysql* '$(DIR)'-mysql/usr/bin/
	install -d -m0755 '$(DIR)'-mysql/usr/share/man/man8
	install -m0644 debian/cvm-mysql.8 '$(DIR)'-mysql/usr/share/man/man8/
	gzip -9n '$(DIR)'-mysql/usr/share/man/man8/*.8
	# cvm-pgsql
	install -d -m0755 '$(DIR)'-pgsql/usr/bin
	mv '$(DIR)'/usr/bin/cvm-pgsql* '$(DIR)'-pgsql/usr/bin/
	install -d -m0755 '$(DIR)'-pgsql/usr/share/man/man8
	install -m0644 debian/cvm-pgsql.8 '$(DIR)'-pgsql/usr/share/man/man8/
	gzip -9n '$(DIR)'-pgsql/usr/share/man/man8/*.8
	# changelog
	rm -f changelog && ln -s ChangeLog changelog
	# fix directory permissions
	find '$(DIR)' '$(LDIR)'-dev -type d -print0 | xargs -0r chmod 0755

binary: binary-indep binary-arch
binary-indep:
binary-arch: deb-checkdir deb-checkuid install cvm.deb cvm-mysql.deb \
	  cvm-pgsql.deb libcvm'$(SO)'.deb libcvm'$(SO)'-dev.deb
	# cvm
	rm -f debian/substvars
	dpkg-shlibdeps '$(DIR)'/usr/bin/*
	dpkg-gencontrol -isp -pcvm -P'$(DIR)'
	dpkg -b '$(DIR)' ..
	# cvm-mysql
	rm -f debian/substvars
	dpkg-shlibdeps '$(DIR)'-mysql/usr/bin/*
	dpkg-gencontrol -isp -pcvm-mysql -P'$(DIR)'-mysql
	dpkg -b '$(DIR)'-mysql ..
	# cvm-pgsql
	rm -f debian/substvars
	dpkg-shlibdeps '$(DIR)'-pgsql/usr/bin/*
	dpkg-gencontrol -isp -pcvm-pgsql -P'$(DIR)'-pgsql
	dpkg -b '$(DIR)'-pgsql ..
	# libcvm-dev
	rm -f debian/substvars
	dpkg-gencontrol -isp -plibcvm'$(SO)'-dev -P'$(LDIR)'-dev
	dpkg -b '$(LDIR)'-dev ..
	# libcvm
	rm -f debian/substvars
	dpkg-shlibdeps '$(LDIR)'/usr/lib/*.so.?.?.?
	dpkg-gencontrol -isp -plibcvm'$(SO)' -P'$(LDIR)'
	echo 'activate-noawait ldconfig' > debian/libcvm1/DEBIAN/triggers
	dpkg -b '$(LDIR)' ..

.PHONY: patch build clean binary-indep binary-arch binary install

include debian/implicit