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
|
#!/usr/bin/make -f
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
# Lowest version with fully ABI compatible libraries
SHLIB_VERSION = $(shell dpkg-parsechangelog | sed -n 's/Version: \(.*\)/\1/p')
ROOT=/
ROOTL=
SUFFIX=32
SUFFIXL=32
build:
# ./fetch-and-build
clean:
dh_testdir
dh_testroot
dh_clean
install-prefix:
dh_testdir
dh_testroot
dh_prep
dh_installdirs
######################################################################
# common variables
######################################################################
MAKE := $(MAKE) -f debian/rules
DEBS_ia32-libs-core := $(shell cd pkgs; ls *.deb | cut -d"_" -f1)
EXTRACT_ia32-libs-core := $(addprefix extract-,$(DEBS_ia32-libs-core))
######################################################################
# common helper
######################################################################
# All helpers expect DEST to be set to debian/<pkg>
.PRECIOUS: %/DEBIAN/Manifest
%/DEBIAN/Manifest:
mkdir -p $(DEST)/DEBIAN/
echo "# packages used in the creation of $(notdir $(DEST))" \
> $(DEST)/DEBIAN/Manifest
echo >> $(DEST)/DEBIAN/Manifest
extract-%: $(DEST)/DEBIAN/Manifest
cd pkgs && echo $*_*.deb >> ../$(DEST)/DEBIAN/Manifest
dpkg-deb -x pkgs/$*_*.deb $(DEST)
# change shlibs information
# libX Y * ---> libX Y <DEST> (>= SHLIB_VERSION)
mkdir -p $(DEST)/t/DEBIAN
dpkg-deb -e pkgs/$*_*.deb $(DEST)/t/DEBIAN
if [ -f $(DEST)/t/DEBIAN/shlibs ]; then \
grep -v "^udeb:" < $(DEST)/t/DEBIAN/shlibs \
| sed "s/^\(\S*\s*\S*\).*/\1 $(notdir $(DEST)) (>= $(SHLIB_VERSION))/" >>$(DEST)/DEBIAN/shlibs; \
fi
rm -r $(DEST)/t/DEBIAN
move-libs:
# Move libraries to new places
[ ! -d $(DEST)/t/lib ] \
|| ( mkdir -p $(DEST)$(ROOT) \
&& mv $(DEST)/t/lib $(DEST)$(ROOT)lib$(SUFFIX) )
[ ! -d $(DEST)/t/usr/lib ] \
|| ( mkdir -p $(DEST)$(ROOT)usr \
&& mv $(DEST)/t/usr/lib $(DEST)$(ROOT)usr/lib$(SUFFIX) )
move-docs: PKG=$(notdir $(DEST))
move-docs:
mkdir -p $(DEST)/DEBIAN/t
mv $(DEST)/usr/share/doc/* $(DEST)/DEBIAN/t/
mv $(DEST)/DEBIAN/t $(DEST)/usr/share/doc/$(PKG)
fix-links:
# change links in $(DEST)$(ROOT) to new names
for link in $$(find $(DEST)$(ROOT) -type l); do \
dest=$$(readlink $$link); \
case "$$dest" in \
/etc*) ;; \
/usr/lib/locale*) ;; \
/*) rm -f $$link; \
ln -s $$(echo $$dest | sed -e 's,^/,$(ROOT),' -e 's,/lib/,/lib$(SUFFIX)/,') $$link; \
;; \
esac; \
done
######################################################################
# ia32-libs-core
######################################################################
install-ia32-libs-core: DEST=debian/ia32-libs-core
install-ia32-libs-core: install-prefix
# Extract all debs
$(MAKE) DEST=$(DEST) $(EXTRACT_ia32-libs-core)
# Move and rename docs
$(MAKE) DEST=$(DEST) move-docs
# Add locale symlink
#ln -s /usr/lib/locale $(DEST)$(ROOT)usr/lib$(SUFFIX)/locale
# Remove unwanted directories and files
rm -rf $(DEST)/t
rm -rf $(DEST)/usr/share/lintian/overrides
rm -rf $(DEST)/usr/share/alsa
rm -rf $(DEST)/usr/lib
# Add lintian overrides and Manifest
mkdir -p $(DEST)/usr/share/lintian/overrides
cp debian/ia32-libs-core.overrides $(DEST)/usr/share/lintian/overrides/ia32-libs-core
mv $(DEST)/DEBIAN/Manifest $(DEST)/usr/share/doc/ia32-libs-core/Manifest.ia32-libs-core
# Fix symlinks.
$(MAKE) DEST=$(DEST) fix-links
# Fix duplicate shlibs entries
sort -u $(DEST)/DEBIAN/shlibs >$(DEST)/DEBIAN/shlibs.new
mv $(DEST)/DEBIAN/shlibs.new $(DEST)/DEBIAN/shlibs
install: install-ia32-libs-core
binary-indep:
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir -s
dh_testroot -s
dh_installdocs -s
dh_installexamples -s
dh_installchangelogs -s
dh_link
dh_lintian
dh_compress -s
dh_fixperms --exclude "*/ld-*" -s
dh_installdeb -s
dh_gencontrol -s
dh_md5sums -s
dh_builddeb -s
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
|