[Crosstoolchain-logs] [crosstoolchain] 02/04: Use generic rules. Set HOST_lIST and TARGET_LIST, avoiding getting HOST=TARGET built. Explain this in README.source
Wookey
wookey at moszumanska.debian.org
Wed Feb 5 19:54:44 UTC 2014
This is an automated email from the git hooks/post-receive script.
wookey pushed a commit to branch master
in repository crosstoolchain.
commit 2ee251a0ce4e8b7be1e85c435cd9b509d1ad1324
Author: Wookey <wookey at wookware.org>
Date: Wed Feb 5 19:50:58 2014 +0000
Use generic rules. Set HOST_lIST and TARGET_LIST, avoiding getting
HOST=TARGET built. Explain this in README.source
---
cross-binutils-0.1/debian/README.source | 13 +++--
cross-binutils-0.1/debian/control | 84 +++++++++++++++++++++++++++--
cross-binutils-0.1/debian/control.binary.in | 12 +++++
cross-binutils-0.1/debian/rules | 30 +++++++----
4 files changed, 120 insertions(+), 19 deletions(-)
diff --git a/cross-binutils-0.1/debian/README.source b/cross-binutils-0.1/debian/README.source
index 69d455d..ff096bd 100644
--- a/cross-binutils-0.1/debian/README.source
+++ b/cross-binutils-0.1/debian/README.source
@@ -4,6 +4,13 @@ binutils-source package)
All the supported binutils cross-targets are built by this package.
-To change the set of target archtectures built edit TARGET_LIST in the
-rules file and regenerate the control file with
-debian/rules control
\ No newline at end of file
+Changing the set of TARGET archtectures built, or the set of HOST
+architectures they are built for, set the TARGET_LIST and HOST_LIST
+variables respectively, then run:
+debian/rules control
+
+You can either set them on the command line, or change them in the
+rules file.
+
+e.g (if just overriding on the command line):
+TARGET_LIST="armel armhf" HOST_LIST="amd64" debian/rules control
diff --git a/cross-binutils-0.1/debian/control b/cross-binutils-0.1/debian/control
index 5fc8d51..b7d3e8d 100644
--- a/cross-binutils-0.1/debian/control
+++ b/cross-binutils-0.1/debian/control
@@ -4,12 +4,14 @@ Priority: extra
Maintainer: Wookey <wookey at wookware.org>
Standards-Version: 3.9.5
Build-Depends: dpkg-dev, dpkg,
- binutils-source, autoconf (>=2.64),
+ binutils-source, autoconf (>=2.64), dejagnu
bison, flex, gettext, texinfo, quilt, lsb-release,
sed, tar, xz-utils, python3:any, zlib1g-dev
+Vcs-Browser: https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=crosstoolchain/crosstoolchain.git;a=tree
+Vcs-Git: https://alioth.debian.org/anonscm/git/crosstoolchain/crosstoolchain.git
Package: binutils-arm-linux-gnueabihf
-Architecture: amd64
+Architecture: amd64 i386
Section: devel
Depends: ${misc:Depends}
Built-Using: binutils-BINUTILS.VER
@@ -18,10 +20,10 @@ Description: Cross-binutils (assembler, linker etc) targetting armhf
for cross-building armhf binaries/packages
.
It is built by the cross-binutils package from the normal binutils
- sources.
+ sources.
Package: binutils-arm-linux-gnueabi
-Architecture: amd64
+Architecture: amd64 i386
Section: devel
Depends: ${misc:Depends}
Built-Using: binutils-BINUTILS.VER
@@ -30,5 +32,77 @@ Description: Cross-binutils (assembler, linker etc) targetting armel
for cross-building armel binaries/packages
.
It is built by the cross-binutils package from the normal binutils
- sources.
+ sources.
+
+Package: binutils-aarch64-linux-gnu
+Architecture: amd64 i386
+Section: devel
+Depends: ${misc:Depends}
+Built-Using: binutils-BINUTILS.VER
+Description: Cross-binutils (assembler, linker etc) targetting arm64
+ This package is the GNU binutils (assembler, linker, strip etc) built
+ for cross-building arm64 binaries/packages
+ .
+ It is built by the cross-binutils package from the normal binutils
+ sources.
+
+Package: binutils-mips-linux-gnu
+Architecture: amd64 i386
+Section: devel
+Depends: ${misc:Depends}
+Built-Using: binutils-BINUTILS.VER
+Description: Cross-binutils (assembler, linker etc) targetting mips
+ This package is the GNU binutils (assembler, linker, strip etc) built
+ for cross-building mips binaries/packages
+ .
+ It is built by the cross-binutils package from the normal binutils
+ sources.
+
+Package: binutils-mipsel-linux-gnu
+Architecture: amd64 i386
+Section: devel
+Depends: ${misc:Depends}
+Built-Using: binutils-BINUTILS.VER
+Description: Cross-binutils (assembler, linker etc) targetting mipsel
+ This package is the GNU binutils (assembler, linker, strip etc) built
+ for cross-building mipsel binaries/packages
+ .
+ It is built by the cross-binutils package from the normal binutils
+ sources.
+
+Package: binutils-powerpc-linux-gnu
+Architecture: amd64 i386
+Section: devel
+Depends: ${misc:Depends}
+Built-Using: binutils-BINUTILS.VER
+Description: Cross-binutils (assembler, linker etc) targetting powerpc
+ This package is the GNU binutils (assembler, linker, strip etc) built
+ for cross-building powerpc binaries/packages
+ .
+ It is built by the cross-binutils package from the normal binutils
+ sources.
+
+Package: binutils-i486-linux-gnu
+Architecture: amd64
+Section: devel
+Depends: ${misc:Depends}
+Built-Using: binutils-BINUTILS.VER
+Description: Cross-binutils (assembler, linker etc) targetting i386
+ This package is the GNU binutils (assembler, linker, strip etc) built
+ for cross-building i386 binaries/packages
+ .
+ It is built by the cross-binutils package from the normal binutils
+ sources.
+
+Package: binutils-x86_64-linux-gnu
+Architecture: i386
+Section: devel
+Depends: ${misc:Depends}
+Built-Using: binutils-BINUTILS.VER
+Description: Cross-binutils (assembler, linker etc) targetting amd64
+ This package is the GNU binutils (assembler, linker, strip etc) built
+ for cross-building amd64 binaries/packages
+ .
+ It is built by the cross-binutils package from the normal binutils
+ sources.
diff --git a/cross-binutils-0.1/debian/control.binary.in b/cross-binutils-0.1/debian/control.binary.in
new file mode 100644
index 0000000..d8d74c6
--- /dev/null
+++ b/cross-binutils-0.1/debian/control.binary.in
@@ -0,0 +1,12 @@
+Package: binutils-DEB_TARGET_GNU_TYPE
+Architecture: ARCH_LIST_FOR_BINARY
+Section: devel
+Depends: ${misc:Depends}
+Built-Using: binutils-BINUTILS.VER
+Description: Cross-binutils (assembler, linker etc) targetting DEB_TARGET_ARCH
+ This package is the GNU binutils (assembler, linker, strip etc) built
+ for cross-building DEB_TARGET_ARCH binaries/packages
+ .
+ It is built by the cross-binutils package from the normal binutils
+ sources.
+
diff --git a/cross-binutils-0.1/debian/rules b/cross-binutils-0.1/debian/rules
index a886260..558af5f 100755
--- a/cross-binutils-0.1/debian/rules
+++ b/cross-binutils-0.1/debian/rules
@@ -19,13 +19,15 @@ DEB_VER_BINUTILS := $(shell dpkg-parsechangelog -l/usr/src/binutils/debian/chang
BINUTILS_DIR := /usr/src/binutils
ifeq ($(DISTRO),Debian)
-ALL_TARGETS := armhf armel arm64 mips mipsel powerpc i386 amd64
+TARGET_LIST ?= armhf armel arm64 mips mipsel powerpc i386 amd64
+HOST_LIST ?= amd64 i386
else # Ubuntu
-ALL_TARGETS := armhf armel arm64
+TARGET_LIST ?= armhf armel arm64
+HOST_LIST ?= amd64 i386
endif
# Don't try to build the HOST=TARGET (ie. non-cross) combination for this arch
-TARGET_LIST := $(filter-out ${DEB_HOST_ARCH}, ${ALL_TARGETS})
+TARGETS := $(filter-out ${DEB_HOST_ARCH}, ${TARGET_LIST})
# taken from gcc packaging
@@ -36,7 +38,7 @@ endef
info:
@echo "Binutils version: ${VER_BINUTILS} ${DEB_VER_BINUTILS} ${PKG_VER_BINUTILS}"
@echo
- @echo "Target architecture list: ${DEB_TARGET_LIST}"
+ @echo "Target architecture list: ${TARGETS}"
@echo "Host architecture: ${DEB_HOST_ARCH}"
$(stamp)init-dirs:
@@ -54,16 +56,15 @@ $(stamp)init:
if [ -n "$$(grep -v '^\#' ${CURDIR}/debian/patches/binutils/series)" ]; then \
QUILT_PATCHES=${CURDIR}/debian/patches/binutils quilt push -a; \
fi; \
- echo ${DEB_TARGET_ARCH} > debian/target;
touch $@
-$(stamp)armel $(stamp)armhf: $(stamp)init
+$(stamp)build-%: $(stamp)init
@echo START $@
set -e; \
cd binutils-${PKG_VER_BINUTILS}; \
- DEB_TARGET_ARCH=$(@F) TARGET=$(@F) dpkg-buildpackage -T control-stamp; \
- WITH_SYSROOT=/ DEB_TARGET_ARCH=$(@F) TARGET=$(@F) dpkg-buildpackage -B -uc -us; \
+ DEB_TARGET_ARCH=$* TARGET=$* dpkg-buildpackage -T control-stamp; \
+ WITH_SYSROOT=/ DEB_TARGET_ARCH=$* TARGET=$* dpkg-buildpackage -B -uc -us; \
cd ..; \
touch $@
@@ -108,9 +109,11 @@ repack-debs:
$(call repack_deb, $${deb}) \
done; \
+BUILD_TARGETS := $(patsubst %,$(stamp)build-%,${TARGETS})
+
build-arch: build
build-indep:
-build: $(stamp)armhf $(stamp)armel
+build: $(BUILD_TARGETS)
rm -f *.changes
binary: binary-arch binary-indep
@@ -139,10 +142,15 @@ mangle-debian-files: $(stamp)debian-files-base repack-debs
$(call generate_debian_files, $(wildcard *.deb))
+# Generate the control file from head plus stanza for each binary
+# Don't build binaries when HOST=TARGET
+
control:
- cat debian/control.head.in > debian/control; \
+ cat debian/control.head.in > debian/control;
for DEB_TARGET_ARCH in $(TARGET_LIST); do \
DEB_TARGET_GNU_TYPE=`dpkg-architecture -a$${DEB_TARGET_ARCH} -qDEB_HOST_GNU_TYPE -f 2>/dev/null`; \
- sed -e "s/DEB_TARGET_ARCH/$${DEB_TARGET_ARCH}/g" debian/control.body.in | \
+ ARCH_LIST_FOR_BINARY=`echo ${HOST_LIST} | sed "s/ *$${DEB_TARGET_ARCH} *//"`; \
+ sed -e "s/DEB_TARGET_ARCH/$${DEB_TARGET_ARCH}/g" debian/control.binary.in | \
+ sed -e "s/ARCH_LIST_FOR_BINARY/$${ARCH_LIST_FOR_BINARY}/g" | \
sed -e "s/DEB_TARGET_GNU_TYPE/$${DEB_TARGET_GNU_TYPE}/g" >> debian/control; \
done
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/crosstoolchain/crosstoolchain.git
More information about the Crosstoolchain-logs
mailing list