78 lines
3.4 KiB
Plaintext
78 lines
3.4 KiB
Plaintext
|
# vim:ft=automake
|
||
|
|
||
|
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
||
|
|
||
|
deb:
|
||
|
# Setup meta folders
|
||
|
mkdir -p debian/libwolfssl/DEBIAN debian/libwolfssl-dev/DEBIAN
|
||
|
# "Install" wolfSSL
|
||
|
make install exec_prefix=$(CURDIR)/debian/libwolfssl/usr \
|
||
|
prefix=$(CURDIR)/debian/libwolfssl-dev/usr
|
||
|
# deb shared lib stuff
|
||
|
fakeroot dh_makeshlibs
|
||
|
dh_shlibdeps
|
||
|
dh_installdeb
|
||
|
# Generate the lib and src descriptions
|
||
|
fakeroot dh_gencontrol
|
||
|
# Make adjustments to the package structure and to satisfy lintian checks
|
||
|
# Correct doc dir name
|
||
|
@rm -rf debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev
|
||
|
@mv debian/libwolfssl-dev/usr/share/doc/wolfssl \
|
||
|
debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev
|
||
|
# Clear lib folder
|
||
|
@rm -rf debian/libwolfssl-dev/usr/lib
|
||
|
@mkdir -p debian/libwolfssl-dev/usr/lib
|
||
|
# Move the top level .so into the dev pkg
|
||
|
@mv debian/libwolfssl/usr/lib/libwolfssl.so debian/libwolfssl-dev/usr/lib
|
||
|
# Create correct pkg doc dir
|
||
|
@rm -rf debian/libwolfssl/usr/share/doc/libwolfssl
|
||
|
@mkdir -p debian/libwolfssl/usr/share/doc/libwolfssl
|
||
|
# Place changelog
|
||
|
@gzip -n -9 -c debian/changelog | \
|
||
|
tee debian/libwolfssl/usr/share/doc/libwolfssl/changelog.gz > \
|
||
|
debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev/changelog.gz
|
||
|
# Place copyright
|
||
|
@cp debian/copyright debian/libwolfssl/usr/share/doc/libwolfssl
|
||
|
@cp debian/copyright debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev
|
||
|
# Remove .la file https://wiki.debian.org/ReleaseGoals/LAFileRemoval
|
||
|
@rm debian/libwolfssl/usr/lib/libwolfssl.la
|
||
|
# Strip unwanted symbols
|
||
|
# https://www.debian.org/doc/debian-policy/ch-files.html#binaries
|
||
|
@strip --strip-unneeded debian/libwolfssl/usr/lib/libwolfssl.so.*.*.*
|
||
|
# Place pkgconfig so that it is available for cross-compilation
|
||
|
# https://lintian.debian.org/tags/pkg-config-unavailable-for-cross-compilation
|
||
|
@rm -rf debian/libwolfssl/usr/lib/$(DEB_HOST_MULTIARCH)
|
||
|
@mkdir -p debian/libwolfssl/usr/lib/$(DEB_HOST_MULTIARCH)
|
||
|
@mv debian/libwolfssl/usr/lib/pkgconfig \
|
||
|
debian/libwolfssl/usr/lib/$(DEB_HOST_MULTIARCH)
|
||
|
# Set the expected access rules
|
||
|
@chmod 644 debian/libwolfssl/usr/lib/libwolfssl.so.*.*.*
|
||
|
@chmod 644 debian/libwolfssl/usr/share/doc/libwolfssl/changelog.gz \
|
||
|
debian/libwolfssl/usr/share/doc/libwolfssl/copyright \
|
||
|
debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev/changelog.gz \
|
||
|
debian/libwolfssl-dev/usr/share/doc/libwolfssl-dev/copyright
|
||
|
# Do this as the last step to mark all directories with the correct access bits
|
||
|
@find debian/libwolfssl*/usr -type d | xargs chmod 755
|
||
|
# Generate debs
|
||
|
dpkg-deb --root-owner-group -b debian/libwolfssl .
|
||
|
dpkg-deb --root-owner-group -b debian/libwolfssl-dev .
|
||
|
# Check that everything is correct with lintian
|
||
|
# - we don't provide a manual page for wolfssl-config
|
||
|
# - we don't care about matching the soname for our debs
|
||
|
lintian *.deb --fail-on error,warning --tag-display-limit 0 \
|
||
|
--suppress-tags no-manual-page,package-name-doesnt-match-sonames
|
||
|
# Clean up the working dirs
|
||
|
make deb-clean
|
||
|
|
||
|
deb-docker:
|
||
|
docker build -t "debian-builder:Dockerfile" Docker/packaging/debian
|
||
|
docker run --rm -v $(CURDIR):/opt/wolfssl debian-builder:Dockerfile \
|
||
|
bash -c 'cd /opt/wolfssl && ./config.status --recheck && make deb && \
|
||
|
make clean deb-clean &> /dev/null'
|
||
|
# To allow the user to keep using the configuration on the host
|
||
|
@./config.status --recheck &> /dev/null
|
||
|
|
||
|
deb-clean:
|
||
|
rm -rf debian/libwolfssl debian/libwolfssl-dev debian/files \
|
||
|
debian/*.substvars debian/.debhelper
|