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 157 158 159 160 161 162 163 164
|
#!/usr/bin/make -f
DFLAGS =-Wall -g -O2
DFLAGSSO =-Wall -g -O2 -fPIC
DFLAGSDIET =-Wall
TARGZ =matrixssl-1-7-3-open.tar.gz
SOVER =1.7
SOREV =1.7.3
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
DFLAGS += -g -DDEBUG
endif
STRIP =strip
ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
STRIP =: nostrip
endif
build =build-gnu-stamp
install =install-gnu
DIET_ARCHS =alpha amd64 arm hppa i386 ia64 mips mipsel powerpc ppc64 s390 sparc
ARCH ?=$(shell dpkg-architecture -qDEB_HOST_ARCH)
ifneq (,$(findstring $(ARCH),$(DIET_ARCHS)))
build =build-gnu-stamp build-diet-stamp
install =install-gnu install-diet
endif
DIR =$(shell pwd)/debian/libmatrixssl$(SOVER)
unpack: deb-checkdir unpack-gnu-stamp unpack-diet-stamp
unpack-gnu-stamp:
mkdir -p gnu/static gnu/shared
(cd gnu/static && tar xzf -) <'$(TARGZ)'
(cd gnu/shared && tar xzf -) <'$(TARGZ)'
(cd gnu/static/matrixssl && patch -p0) <debian/diff/include-asm.diff
(cd gnu/shared/matrixssl && patch -p0) <debian/diff/include-asm.diff
touch unpack-gnu-stamp
unpack-diet-stamp:
mkdir -p diet
(cd diet && tar xzf -) <'$(TARGZ)'
(cd diet/matrixssl && patch -p0) <debian/diff/diet-nopthread.diff
(cd diet/matrixssl && patch -p0) <debian/diff/include-asm.diff
touch unpack-diet-stamp
build: deb-checkdir $(build)
build-gnu-stamp: unpack-gnu-stamp
-gcc -v
$(MAKE) -Cgnu/static/matrixssl/src libmatrixssl.a \
STATIC=libmatrixssl.a DFLAGS='$(DFLAGS)'
$(MAKE) -Cgnu/static/matrixssl/examples LDFLAGS='-lpthread' SO=.a \
DFLAGS='$(DFLAGS)'
$(MAKE) -Cgnu/shared/matrixssl/src libmatrixssl.so \
DFLAGS='$(DFLAGSSO)' STRIP=': nostrip' \
LDFLAGS='-Wl,-soname,libmatrixssl.so."$(SOVER)" -lc -lgcc -lpthread'
$(MAKE) -Cgnu/shared/matrixssl/examples \
LDFLAGS='-L../src -lmatrixssl' LIBRARIES='' DFLAGS='$(DFLAGSSO)'
touch build-gnu-stamp
build-diet-stamp: unpack-diet-stamp
-gcc -v
$(MAKE) -Cdiet/matrixssl/src libmatrixssl.a STATIC=libmatrixssl.a \
CC='diet -v -Os gcc' DFLAGS='$(DFLAGSDIET) -nostdinc'
$(MAKE) -Cdiet/matrixssl/examples LDFLAGS='' SO=.a \
CC='diet -v -Os gcc' DFLAGS='$(DFLAGSDIET) -nostdinc'
touch build-diet-stamp
clean: deb-checkdir deb-checkuid
rm -rf gnu diet examples
rm -f unpack-gnu-stamp unpack-diet-stamp build-gnu-stamp \
build-diet-stamp
rm -rf '$(DIR)' '$(DIR)'-dev '$(DIR)'-doc
rm -f debian/files debian/substvars changelog
install: install-indep install-arch
install-indep: deb-checkdir deb-checkuid unpack-gnu-stamp
rm -rf '$(DIR)'-doc
install -d -m0755 '$(DIR)'-doc
rm -rf examples
cp -pr gnu/static/matrixssl/examples .
$(MAKE) -Cexamples clean
# no upstream changelog
rm -f changelog && cp /dev/null changelog
install-arch: deb-checkdir deb-checkuid $(install)
install-gnu: build-gnu-stamp
rm -rf '$(DIR)' '$(DIR)'-dev
# libmatrixssl1
install -d -m0755 '$(DIR)'/usr/lib
install -m0644 gnu/shared/matrixssl/src/libmatrixssl.so \
'$(DIR)'/usr/lib/libmatrixssl.so.'$(SOREV)'
$(STRIP) -R .note -R .comment --strip-unneeded \
'$(DIR)'/usr/lib/libmatrixssl.so.'$(SOREV)'
ln -s libmatrixssl.so.'$(SOREV)' \
'$(DIR)'/usr/lib/libmatrixssl.so.'$(SOVER)'
echo 'libmatrixssl $(SOVER) libmatrixssl$(SOVER)' \
>debian/libmatrixssl'$(SOVER)'.shlibs
# libmatrixssl1-dev
install -d -m0755 '$(DIR)'-dev/usr/lib/matrixssl
ln -s libmatrixssl.so.'$(SOVER)' '$(DIR)'-dev/usr/lib/libmatrixssl.so
install -m0755 gnu/shared/matrixssl/examples/httpsReflector \
'$(DIR)'-dev/usr/lib/matrixssl/httpsReflector.shared
install -m0755 gnu/shared/matrixssl/examples/httpsClient \
'$(DIR)'-dev/usr/lib/matrixssl/httpsClient.shared
install -m0644 gnu/static/matrixssl/src/libmatrixssl.a \
'$(DIR)'-dev/usr/lib/
$(STRIP) --strip-debug '$(DIR)'-dev/usr/lib/libmatrixssl.a
install -m0755 gnu/static/matrixssl/examples/httpsReflector \
'$(DIR)'-dev/usr/lib/matrixssl/httpsReflector
install -m0755 gnu/static/matrixssl/examples/httpsClient \
'$(DIR)'-dev/usr/lib/matrixssl/httpsClient
$(STRIP) -R .comment -R .note '$(DIR)'-dev/usr/lib/matrixssl/*
install -d -m0755 '$(DIR)'-dev/usr/include
sed -e 's}#include "matrixCommon.h"}#include <matrixCommon.h>}' \
<gnu/shared/matrixssl/matrixSsl.h \
>'$(DIR)'-dev/usr/include/matrixSsl.h
chmod 644 '$(DIR)'-dev/usr/include/matrixSsl.h
sed -e 's}#include "src/matrixConfig.h"}#include <matrixConfig.h>}' \
<gnu/shared/matrixssl/matrixCommon.h \
>'$(DIR)'-dev/usr/include/matrixCommon.h
chmod 644 '$(DIR)'-dev/usr/include/matrixCommon.h
install -m0644 gnu/shared/matrixssl/src/matrixConfig.h \
'$(DIR)'-dev/usr/include/
# no upstream changelog
rm -f changelog && cp /dev/null changelog
install-diet: build-diet-stamp install-gnu
# libmatrixssl1-dev
install -d -m0755 '$(DIR)'-dev/usr/lib/diet/lib
install -m0644 diet/matrixssl/src/libmatrixssl.a \
'$(DIR)'-dev/usr/lib/diet/lib/
$(STRIP) --strip-debug '$(DIR)'-dev/usr/lib/diet/lib/*.a
install -m0755 diet/matrixssl/examples/httpsReflector \
'$(DIR)'-dev/usr/lib/matrixssl/httpsReflector.diet
install -m0755 diet/matrixssl/examples/httpsClient \
'$(DIR)'-dev/usr/lib/matrixssl/httpsClient.diet
$(STRIP) -R .comment -R .note '$(DIR)'-dev/usr/lib/matrixssl/*.diet
install -d -m0755 '$(DIR)'-dev/usr/include/diet
ln -s ../matrixSsl.h '$(DIR)'-dev/usr/include/diet/
ln -s ../matrixCommon.h '$(DIR)'-dev/usr/include/diet/
sed -e 's}#include "src/matrixConfig.h"}#include <matrixConfig.h>}' \
<diet/matrixssl/matrixCommon.h \
>'$(DIR)'-dev/usr/include/diet/matrixCommon.h
chmod 644 '$(DIR)'-dev/usr/include/diet/matrixCommon.h
install -m0644 gnu/shared/matrixssl/src/matrixConfig.h \
'$(DIR)'-dev/usr/include/diet/
# no upstream changelog
rm -f changelog && cp /dev/null changelog
binary-indep: install-indep libmatrixssl'$(SOVER)'-doc.deb
dpkg-gencontrol -isp -plibmatrixssl'$(SOVER)'-doc -P'$(DIR)'-doc
dpkg -b '$(DIR)'-doc ..
binary-arch: install-arch libmatrixssl'$(SOVER)'.deb \
libmatrixssl'$(SOVER)'-dev.deb
dpkg-shlibdeps '$(DIR)'/usr/lib/libmatrixssl.so.*
dpkg-gencontrol -isp -plibmatrixssl'$(SOVER)' -P'$(DIR)'
dpkg -b '$(DIR)' ..
dpkg-gencontrol -isp -plibmatrixssl'$(SOVER)'-dev -P'$(DIR)'-dev
dpkg -b '$(DIR)'-dev ..
binary: binary-indep binary-arch
.PHONY: unpack build clean binary-indep binary-arch binary install-indep \
install-arch install-gnu install-diet install
include debian/implicit
|