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
|