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
|
#!/usr/bin/make -f
# Build rules for GNU binutils (2.8.1)
# Based heavily on Ian Jackson's sample rules file for GNU hello
# Copyright 1994,1995 by Ian Jackson.
# I hereby give you perpetual unlimited permission to copy,
# modify and relicense this file, provided that you do not remove
# my name from the file itself. (I assert my moral right of
# paternity under the Copyright, Designs and Patents Act 1988.)
package=binutils-m68k-linux
#VER = $(shell sed -e 's/[^0-9]*\([0-9.]*\).*/\1/' bfd/VERSION)
VER=2.9.1.0.12
CFLAGS = -O2 -g
LDFLAGS = -s
ARCH = $(shell dpkg --print-gnu-build-architecture)
build:
$(checkdir)
sed -e 's/=SONAME/$(VER)/g' < debian/shlibs.in > debian/shlibs
cp debian/shlibs debian/shlibs.local
./configure --enable-shared --target=m68k-linux --prefix=/usr $(ARCH)-linux
# Patch the generated libtool to avoid passing -rpath when linking,
# and to explicitly link libraries against the libraries they
# depend on.
for i in bfd binutils gas ld opcodes; do \
(cd $$i && \
sed < libtool > libtool-2 \
-e 's/^hardcode_libdir_flag_spec.*$$/hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/' \
-e '/^archive_cmds="/s/"$$/ \\$$deplibs"/' && \
mv libtool-2 libtool && \
chmod 755 libtool) ; \
done
$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
touch build
clean:
$(checkdir)
sed -e 's/=SONAME/$(VER)/g' < debian/shlibs.in > debian/shlibs
cp debian/shlibs debian/shlibs.local
-rm -f build
# The Makefile.in trick dosen't work anymore, since the makefile structure
# has gone recursive. If Makefile dosen't exist, it's probably clean anyway.
-$(MAKE) -i distclean
-rm -rf bfd/libm68k-linux-bfd.so.$(VER) opcodes/libm68k-linux-opcodes.so.$(VER) mh-frag mt-frag gas/config/m68k-parse.c
-rm -rf *~ debian/tmp debian/*~ debian/files* debian/substvars* debian/shlibs debian/shlibs.local
binary-indep: checkroot build
$(checkdir)
# There are no architecture-independent files to be uploaded
# generated by this package. If there were any they would be
# made here.
binary-arch: checkroot build
$(checkdir)
-rm -rf debian/tmp
install -d debian/tmp/binutils/DEBIAN
install -d debian/tmp/binutils/usr/doc/$(package)
cp debian/postinst debian/tmp/binutils/DEBIAN/.
chmod +x debian/tmp/binutils/DEBIAN/postinst
cp debian/shlibs debian/tmp/binutils/DEBIAN/.
chmod +x install-sh
$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
prefix=`pwd`/debian/tmp/binutils/usr install
# Fix links in usr/m68k-linux/bin
rm -rf debian/tmp/binutils/usr/m68k-linux/bin/ar
ln -s ../../bin/m68k-linux-ar debian/tmp/binutils/usr/m68k-linux/bin/ar
rm -rf debian/tmp/binutils/usr/m68k-linux/bin/as
ln -s ../../bin/m68k-linux-as debian/tmp/binutils/usr/m68k-linux/bin/as
rm -rf debian/tmp/binutils/usr/m68k-linux/bin/ld
ln -s ../../bin/m68k-linux-ld debian/tmp/binutils/usr/m68k-linux/bin/ld
rm -rf debian/tmp/binutils/usr/m68k-linux/bin/nm
ln -s ../../bin/m68k-linux-nm debian/tmp/binutils/usr/m68k-linux/bin/nm
rm -rf debian/tmp/binutils/usr/m68k-linux/bin/ranlib
ln -s ../../bin/m68k-linux-ranlib debian/tmp/binutils/usr/m68k-linux/bin/ranlib
rm -rf debian/tmp/binutils/usr/m68k-linux/bin/strip
ln -s ../../bin/m68k-linux-strip debian/tmp/binutils/usr/m68k-linux/bin/strip
# We don't need to distribute everything
rm -rf debian/tmp/binutils/usr/lib/libiberty.a
rm -rf debian/tmp/binutils/usr/lib/libbfd.a
rm -rf debian/tmp/binutils/usr/lib/libopcodes.a
rm -rf debian/tmp/binutils/usr/lib/libbfd.la
rm -rf debian/tmp/binutils/usr/lib/libopcodes.la
rm -rf debian/tmp/binutils/usr/lib/libbfd.so
rm -rf debian/tmp/binutils/usr/lib/libopcodes.so
rm -rf debian/tmp/binutils/usr/include/ansidecl.h
rm -rf debian/tmp/binutils/usr/include/bfd.h
rm -rf debian/tmp/binutils/usr/include/bfdlink.h
rmdir debian/tmp/binutils/usr/include
# Manpages shouldn't be executable
chmod -x debian/tmp/binutils/usr/man/man1/*
# Remove manpages
#rm -rf debian/tmp/binutils/usr/man
rm -f debian/tmp/binutils/usr/man/man1/*
for i in debian/tmp/binutils/usr/bin/*; do \
( cd debian/tmp/binutils/usr/man/man1 && \
ln -s $$(basename $$(echo $$i | sed -e 's/m68k-linux-//' -))".1.gz" $$(basename $$i)".1.gz") ; \
done
# We can strip shared libraries
strip --strip-unneeded debian/tmp/binutils/usr/lib/libbfd-$(VER).so.0
strip --strip-unneeded debian/tmp/binutils/usr/lib/libopcodes-$(VER).so.0
# Shared libs mode 0644
chmod 0644 debian/tmp/binutils/usr/lib/libbfd-$(VER).so.0
chmod 0644 debian/tmp/binutils/usr/lib/libopcodes-$(VER).so.0
# Standard boilerplate
cp debian/copyright debian/tmp/binutils/usr/doc/$(package)/.
cp debian/changelog debian/tmp/binutils/usr/doc/$(package)/changelog.Debian
cp binutils/ChangeLog debian/tmp/binutils/usr/doc/$(package)/changelog.binutils
cp gas/ChangeLog debian/tmp/binutils/usr/doc/$(package)/changelog.gas
cp gprof/ChangeLog debian/tmp/binutils/usr/doc/$(package)/changelog.gprof
cp ld/ChangeLog debian/tmp/binutils/usr/doc/$(package)/changelog.ld
gzip -9v debian/tmp/binutils/usr/doc/$(package)/changelog.*
( cd debian/tmp/binutils/usr/doc/$(package) && ln -s changelog.binutils.gz changelog.gz )
LD_LIBRARY_PATH=`pwd`/debian/tmp/binutils/usr/lib dpkg-shlibdeps debian/tmp/binutils/usr/bin/*
# Hack binutils-m68k-linux out of depends
sed -e 's/binutils-m68k-linux, //' debian/substvars > debian/substvars.tmp
mv debian/substvars.tmp debian/substvars
dpkg-gencontrol -Pdebian/tmp/binutils -pbinutils-m68k-linux
chown -R root.root debian/tmp
chmod -R g-ws debian/tmp
dpkg --build debian/tmp/binutils ..
define checkdir
test -f binutils/ar.c -a -f debian/rules
endef
# Below here is fairly generic really
binary: binary-indep binary-arch
source diff:
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
checkroot:
$(checkdir)
test root = "`whoami`"
.PHONY: binary binary-arch binary-indep clean checkroot
|