[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