~ubuntu-branches/ubuntu/utopic/armel-cross-toolchain-base/utopic

« back to all changes in this revision

Viewing changes to debian/rules

  • Committer: Package Import Robot
  • Author(s): Marcin Juszkiewicz
  • Date: 2012-11-19 12:06:57 UTC
  • Revision ID: package-import@ubuntu.com-20121119120657-nq9dpqq8ouk0575h
Tags: 1.91
* Make use of all toolchain improvements in raring.
* Use only gcc-4.7 for bootstrap.
* Bumped linux-source to 3.7
  * added hacks to get linux-libc-dev_armel.deb built
* Bumped eglibc to 2.16
  * Disabled SELinux support in eglibc - it is there for nscd which we do
    not use.
  * Added debconf(-2.0) to list of ignored deps for dpkg-cross.
* Bumped gcc-4.7 to 4.7.2-5
  * install libgcc* packages after build-gcc2
  * added workaround for LP: 1078736
  * removed svn-doc-updates.diff from debian/rules.patch - it is broken
* Forced --disable-werror for cross binutils - aarch64 needs that - LP: 1079676

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
ifeq ($(DISTRO),Debian)
17
17
  MIN_VER_EGLIBC := 2.13-5~
18
18
  MIN_VER_LINUX  := 3.2
19
 
  MIN_VER_GCC46  := 4.6.2-16
20
 
  MIN_VER_GCC47  := 4.7.0-3
 
19
  MIN_VER_GCC    := 4.7.2-5
21
20
  VER_LINUX      := $(shell apt-cache policy linux-source|grep '\*\*\*'|sed -e 's/ ... \([0-9\.]*\)+.*/\1/g')
22
21
  DEB_VER_LINUX  := $(shell apt-cache policy linux-source-3.2|grep '\*\*\*'|sed -e 's/ ... \([0-9\.\-]*\).*/\1/g')
23
22
# default version of gcc which will be used
24
23
  VER_GCC_BASE   := 4.7
25
24
else
26
 
  MIN_VER_EGLIBC := 2.13-20~
27
 
  MIN_VER_LINUX  := 3.5.0-0~
28
 
  MIN_VER_GCC46  := 4.6.2-16
29
 
  MIN_VER_GCC47  := 4.7.2-5
30
 
  VER_LINUX      := 3.5.0
 
25
  MIN_VER_EGLIBC := 2.16-0~
 
26
  MIN_VER_LINUX  := 3.7.0-0~
 
27
  MIN_VER_GCC    := 4.7.2-5
 
28
  VER_LINUX      := 3.7.0
31
29
# default version of gcc which will be used
32
30
  VER_GCC_BASE := 4.7
33
31
endif
34
32
 
35
 
EXTRA_DEPS := gcc-4.6-source (>= $(MIN_VER_GCC46)),
 
33
EXTRA_DEPS := 
36
34
 
37
35
ifeq ($(PPA),false)
38
36
 
39
 
  VER_GCC46        := $(shell dpkg-parsechangelog -l/usr/src/gcc-4.6/debian/changelog | egrep '^Version:' | cut -f 2 -d ' '|cut -f 1 -d '-')
40
 
  VER_GCC47        := $(shell dpkg-parsechangelog -l/usr/src/gcc-${VER_GCC_BASE}/debian/changelog | egrep '^Version:' | cut -f 2 -d ' '|cut -f 1 -d '-')
41
 
  DEB_VER_GCC46    := $(shell dpkg-parsechangelog -l/usr/src/gcc-4.6/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
42
 
  DEB_VER_GCC47    := $(shell dpkg-parsechangelog -l/usr/src/gcc-${VER_GCC_BASE}/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
 
37
  VER_GCC          := $(shell dpkg-parsechangelog -l/usr/src/gcc-${VER_GCC_BASE}/debian/changelog | egrep '^Version:' | cut -f 2 -d ' '|cut -f 1 -d '-')
 
38
  DEB_VER_GCC      := $(shell dpkg-parsechangelog -l/usr/src/gcc-${VER_GCC_BASE}/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
43
39
  VER_BINUTILS     := $(shell dpkg-parsechangelog -l/usr/src/binutils/debian/changelog | egrep '^Version:' | cut -f 2 -d ' '|cut -f 1 -d '-'|cut -d '.' -f1-3)
44
40
  PKG_VER_BINUTILS := $(shell dpkg-parsechangelog -l/usr/src/binutils/debian/changelog | egrep '^Version:' | cut -f 2 -d ' '|cut -f 1 -d '-')
45
41
  DEB_VER_BINUTILS := $(shell dpkg-parsechangelog -l/usr/src/binutils/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
48
44
 
49
45
  BINUTILS_DIR  := /usr/src/binutils
50
46
  EGLIBC_DIR    := /usr/src/glibc
51
 
  GCC_DIR46     := /usr/src/gcc-4.6
52
 
  GCC_DIR47     := /usr/src/gcc-${VER_GCC_BASE}
 
47
  GCC_DIR       := /usr/src/gcc-${VER_GCC_BASE}
53
48
 
54
49
  ifeq ($(DISTRO),Debian)
55
50
 
67
62
 
68
63
else # Linaro toolchain backport PPA
69
64
 
70
 
  VER_GCC46        := 4.6.3
71
 
  VER_GCC47        := 4.7.1
72
 
  VER_EGLIBC       := 2.15
 
65
  VER_GCC          := 4.7.2
 
66
  VER_EGLIBC       := 2.16
73
67
  VER_BINUTILS     := 2.22.52
74
 
  EXTRA_DEPS       := gcc-4.6-${VER_GCC46}-source,
 
68
  EXTRA_DEPS       := 
75
69
 
76
70
  DEB_VER_LINUX    := $(shell dpkg-parsechangelog -l/usr/src/linux-source-$(VER_LINUX)/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
77
 
  DEB_VER_GCC46    := $(shell dpkg-parsechangelog -l/usr/src/gcc-4.6-${VER_GCC46}/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
78
 
  DEB_VER_GCC47    := $(shell dpkg-parsechangelog -l/usr/src/gcc-${VER_GCC_BASE}-${VER_GCC47}/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
 
71
  DEB_VER_GCC      := $(shell dpkg-parsechangelog -l/usr/src/gcc-${VER_GCC_BASE}-${VER_GCC}/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
79
72
  DEB_VER_EGLIBC   := $(shell dpkg-parsechangelog -l/usr/src/glibc-${VER_EGLIBC}/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
80
73
  PKG_VER_BINUTILS := $(shell dpkg-parsechangelog -l/usr/src/binutils-${VER_BINUTILS}/debian/changelog | egrep '^Version:' | cut -f 2 -d ' '|cut -f 1 -d '-')
81
74
  DEB_VER_BINUTILS := $(shell dpkg-parsechangelog -l/usr/src/binutils-${VER_BINUTILS}/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
82
75
 
83
76
  BINUTILS_DIR  := /usr/src/binutils-${VER_BINUTILS}
84
77
  EGLIBC_DIR    := /usr/src/glibc-${VER_EGLIBC}
85
 
  GCC_DIR46     := /usr/src/gcc-4.6-${VER_GCC46}
86
 
  GCC_DIR47     := /usr/src/gcc-${VER_GCC_BASE}-${VER_GCC47}
 
78
  GCC_DIR       := /usr/src/gcc-${VER_GCC_BASE}-${VER_GCC}
87
79
 
88
80
  EGLIBC_PATCHES := $(CURDIR)/debian/patches/eglibc/ubuntu
89
81
  LINUX_SERIES   := $(CURDIR)/debian/patches/linux/series-ubuntu
106
98
 
107
99
info:
108
100
        @echo "Binutils version:         ${VER_BINUTILS}        ${DEB_VER_BINUTILS}     ${PKG_VER_BINUTILS}"
109
 
        @echo "GCC 4.6 version:          ${VER_GCC46}           ${DEB_VER_GCC46}"
110
 
        @echo "GCC 4.7 version:          ${VER_GCC47}           ${DEB_VER_GCC47}          ${VER_GCC_BASE}"
 
101
        @echo "GCC 4.7 version:          ${VER_GCC}             ${DEB_VER_GCC}            ${VER_GCC_BASE}"
111
102
        @echo "Eglibc version:           ${VER_EGLIBC}          ${DEB_VER_EGLIBC}"
112
103
        @echo "Linux version:            ${VER_LINUX}           ${DEB_VER_LINUX}"
113
104
        @echo
120
111
        mkdir debian/tmp -p
121
112
        touch $@
122
113
 
123
 
init: $(stamp)init-binutils $(stamp)init-gcc47 $(stamp)init-gcc $(stamp)init-eglibc
 
114
init: $(stamp)init-binutils $(stamp)init-gcc $(stamp)init-eglibc
124
115
 
125
116
$(stamp)init-linux:
126
117
ifeq ($(DISTRO),Debian)
130
121
        $(call unpack_tarball, /usr/src/linux-source-${VER_LINUX}/linux-source-${VER_LINUX}.tar.bz2)
131
122
        cp -a /usr/src/linux-source-${VER_LINUX}/debian linux-source-${VER_LINUX}/debian
132
123
        cp -a /usr/src/linux-source-${VER_LINUX}/debian.master linux-source-${VER_LINUX}/debian.master
133
 
        mkdir linux-source-${VER_LINUX}/debian/stamps/
 
124
        mkdir -p linux-source-${VER_LINUX}/debian/stamps/
 
125
  ifeq (${CROSS_ARCH},armel)
 
126
        # armel is no longer supported in raring but we need to get linux-libc-dev_armel.deb for cross compiler
 
127
        cd linux-source-${VER_LINUX}/debian.master ;\
 
128
        sed -i -e 's/armhf/armhf armel/g' control.stub control control.stub.in etc/kernelconfig ;\
 
129
        cd rules.d && ln -s armhf.mk armel.mk
 
130
  endif
134
131
endif
135
132
        touch $@
136
133
 
202
199
$(stamp)init-gcc:
203
200
        mkdir gcc -p ; \
204
201
        cd gcc ; \
205
 
        ln -sf ${GCC_DIR46}/gcc-${VER_GCC46}.tar.xz gcc-${VER_GCC46}.tar.xz ;\
206
 
        cp -a  ${GCC_DIR46}/debian/ . ; \
207
 
        QUILT_PATCHES=${CURDIR}/debian/patches/gcc-4.6 quilt push -a ; \
 
202
        ln -sf ${GCC_DIR}/gcc-${VER_GCC}.tar.xz gcc-${VER_GCC}.tar.xz ;\
 
203
        cp -a  ${GCC_DIR}/debian/ . ; \
 
204
        QUILT_PATCHES=${CURDIR}/debian/patches/gcc-${VER_GCC_BASE} quilt push -a ; \
208
205
        echo ${CROSS_ARCH} >debian/target
209
206
        touch $@
210
207
 
216
213
 
217
214
$(stamp)install-gcc1: $(stamp)build-gcc1
218
215
        $(call install_gcc)
 
216
        cp -r gcc/build/gcc/include debian/tmp/$(PF)/lib/gcc/${CROSS_GNU_TYPE}/${VER_GCC_BASE}/
 
217
        cp -r gcc/build/gcc/include-fixed debian/tmp/$(PF)/lib/gcc/${CROSS_GNU_TYPE}/${VER_GCC_BASE}/
219
218
        touch $@
220
219
 
221
220
define install_gcc
222
 
        dpkg-deb -x gcc-4.6-${CROSS_GNU_TYPE}_${DEB_VER_GCC46}_${HOST_ARCH}.deb debian/tmp
223
 
        dpkg-deb -x cpp-4.6-${CROSS_GNU_TYPE}_${DEB_VER_GCC46}_${HOST_ARCH}.deb debian/tmp
 
221
        dpkg-deb -x gcc-${VER_GCC_BASE}-${CROSS_GNU_TYPE}_${DEB_VER_GCC}_${HOST_ARCH}.deb debian/tmp
 
222
        dpkg-deb -x cpp-${VER_GCC_BASE}-${CROSS_GNU_TYPE}_${DEB_VER_GCC}_${HOST_ARCH}.deb debian/tmp
224
223
        cd debian/tmp/$(PF)/bin/ && \
225
 
        ln -sf ${CROSS_GNU_TYPE}-gcc-4.6 ${CROSS_GNU_TYPE}-gcc && \
226
 
        ln -sf ${CROSS_GNU_TYPE}-cpp-4.6 ${CROSS_GNU_TYPE}-cpp && \
227
 
        ln -sf ${CROSS_GNU_TYPE}-gcov-4.6 ${CROSS_GNU_TYPE}-gcov
 
224
        ln -sf ${CROSS_GNU_TYPE}-gcc-${VER_GCC} ${CROSS_GNU_TYPE}-gcc && \
 
225
        ln -sf ${CROSS_GNU_TYPE}-cpp-${VER_GCC} ${CROSS_GNU_TYPE}-cpp && \
 
226
        ln -sf ${CROSS_GNU_TYPE}-gcov-${VER_GCC} ${CROSS_GNU_TYPE}-gcov
228
227
endef
229
228
 
230
229
$(stamp)build-gcc2: $(stamp)init-gcc $(stamp)install-eglibc1
231
 
        export PATH=${CURDIR}/debian/tmp/$(PF)/bin/:${PATH} ;\
 
230
        export PATH=${CURDIR}/debian/tmp/$(PF)/bin:${PATH} ;\
232
231
        export LD_LIBRARY_PATH=${CURDIR}/debian/tmp/$(PF)/$(HOST_GNU_TYPE)/${CROSS_GNU_TYPE}/lib/:${CURDIR}/debian/tmp/usr/lib:${CURDIR}/debian/tmp/lib ;\
233
232
        cd gcc && DEB_CROSS_NO_BIARCH=yes WITH_BUILD_SYSROOT=${CURDIR}/debian/tmp DEB_STAGE=stage2 PKG_IGNORE_CURRENTLY_BUILDING=1 BACKPORT=false dpkg-buildpackage -b -uc -us -d
234
233
        touch $@
235
234
 
236
235
$(stamp)install-gcc2: $(stamp)build-gcc2
237
236
        $(call install_gcc)
238
 
        dpkg-deb -x libgcc1-${CROSS_ARCH}-cross_${DEB_VER_GCC46}_all.deb debian/tmp
239
 
        touch $@
240
 
 
241
 
$(stamp)init-gcc47:
242
 
        mkdir gcc47 -p ; \
243
 
        cd gcc47 ; \
244
 
        ln -sf ${GCC_DIR47}/gcc-${VER_GCC47}.tar.xz gcc-${VER_GCC47}.tar.xz ;\
245
 
        cp -a  ${GCC_DIR47}/debian/ . ; \
246
 
        QUILT_PATCHES=${CURDIR}/debian/patches/gcc-4.7 quilt push -a ; \
247
 
        echo ${CROSS_ARCH} >debian/target
248
 
        touch $@
249
 
 
250
 
$(stamp)build-gcc3: $(stamp)init-gcc47 $(stamp)install-eglibc2
 
237
        dpkg-deb -x libgcc1-${CROSS_ARCH}-cross_${DEB_VER_GCC}_all.deb debian/tmp
 
238
        dpkg-deb -x libgcc-${VER_GCC_BASE}-dev-${CROSS_ARCH}-cross_${DEB_VER_GCC}_all.deb debian/tmp
 
239
        touch $@
 
240
 
 
241
$(stamp)build-gcc3: $(stamp)init-gcc $(stamp)install-eglibc2
251
242
        export PATH=${CURDIR}/debian/tmp/$(PF)/bin/:${PATH} ;\
252
243
        export LD_LIBRARY_PATH=${CURDIR}/debian/tmp/$(PF)/$(HOST_GNU_TYPE)/${CROSS_GNU_TYPE}/lib/:${CURDIR}/debian/tmp/usr/lib:${CURDIR}/debian/tmp/lib ;\
253
 
        cd gcc47 && DEB_CROSS_NO_BIARCH=yes WITH_BUILD_SYSROOT=${CURDIR}/debian/tmp DEB_STAGE=stage2 PKG_IGNORE_CURRENTLY_BUILDING=1 BACKPORT=false dpkg-buildpackage -b -uc -us -d
 
244
        cd gcc && DEB_CROSS_NO_BIARCH=yes WITH_BUILD_SYSROOT=${CURDIR}/debian/tmp DEB_STAGE=stage2 PKG_IGNORE_CURRENTLY_BUILDING=1 BACKPORT=false dpkg-buildpackage -b -uc -us -d
254
245
        touch $@
255
246
 
256
247
$(stamp)init-eglibc:
275
266
 
276
267
$(stamp)install-eglibc1: $(stamp)build-eglibc1
277
268
        dpkg-deb -x libc6-dev_${DEB_VER_EGLIBC}_${CROSS_ARCH}.deb debian/tmp
 
269
        cd debian/tmp/usr/lib ;\
 
270
        for crt in ${CROSS_GNU_TYPE}/crt*; \
 
271
        do \
 
272
                ln -sf $$crt `basename $$crt`; \
 
273
        done
278
274
        touch $@
279
275
 
280
276
$(stamp)build-eglibc2: $(stamp)init-eglibc $(stamp)install-gcc2
310
306
           libc6-dbg-${CROSS_ARCH}-cross_${VER_EGLIBC}-*_all.deb  \
311
307
           libc6-dev-${CROSS_ARCH}-cross_${VER_EGLIBC}-*_all.deb  \
312
308
           linux-libc-dev-${CROSS_ARCH}-cross_${DEB_VER_LINUX}*_all.deb  \
313
 
           libgcc1-${CROSS_ARCH}-cross_${DEB_VER_GCC47}_all.deb  \
314
 
           libgcc1-dbg-${CROSS_ARCH}-cross_${DEB_VER_GCC47}_all.deb  \
 
309
           libgcc1-${CROSS_ARCH}-cross_${DEB_VER_GCC}_all.deb  \
 
310
           libgcc1-dbg-${CROSS_ARCH}-cross_${DEB_VER_GCC}_all.deb  \
315
311
 
316
312
#
317
313
# Repack resulting packages to make some changes;
333
329
            sed -i -e "s/${DEB_VER_LINUX}/${DEB_VER_LINUX}cross${DEB_VER_ACT}/g" tmp/DEBIAN/control ; \
334
330
            sed -i -e "s/Version: ${VER_LINUX}-\(.*\)$$/Version: ${VER_LINUX}-\1cross${DEB_VER_ACT}/g" tmp/DEBIAN/control ; \
335
331
            sed -i -e "s/${DEB_VER_EGLIBC}/${DEB_VER_EGLIBC}cross${DEB_VER_ACT}/g" tmp/DEBIAN/control ; \
336
 
            sed -i -e "s/${DEB_VER_GCC47}/${DEB_VER_GCC47}cross${DEB_VER_ACT}/g" tmp/DEBIAN/control ; \
 
332
            sed -i -e "s/${DEB_VER_GCC}/${DEB_VER_GCC}cross${DEB_VER_ACT}/g" tmp/DEBIAN/control ; \
337
333
            sed -i -e "s/cross${DEB_VER_ACT}cross${DEB_VER_ACT}/cross${DEB_VER_ACT}/g" tmp/DEBIAN/control ; \
338
334
            if [ -e debian/overrides/$$pkgname ]; then \
339
335
                  mkdir -p tmp/usr/share/lintian/overrides; \
340
336
                  cp debian/overrides/$$pkgname tmp/usr/share/lintian/overrides/; \
341
337
            fi; \
342
338
            if [ 'libgcc1-dbg-${CROSS_ARCH}-cross' = $$pkgname ]; then \
343
 
              sed -i -e 's/^Depends.*/Depends: libgcc1-${CROSS_ARCH}-cross (= 1:${DEB_VER_GCC47}cross${DEB_VER_ACT})/g' tmp/DEBIAN/control; \
 
339
              sed -i -e 's/^Depends.*/Depends: libgcc1-${CROSS_ARCH}-cross (= 1:${DEB_VER_GCC}cross${DEB_VER_ACT})/g' tmp/DEBIAN/control; \
344
340
              ln -sf libgcc1-${CROSS_ARCH}-cross tmp/usr/share/doc/libgcc1-dbg-${CROSS_ARCH}-cross; \
345
341
            fi; \
346
342
            if [ 'libgcc1-${CROSS_ARCH}-cross' = $$pkgname ]; then \
450
446
dpkg-cross: build
451
447
        for deb in libc6_*_${CROSS_ARCH}.deb libc6-d*_${CROSS_ARCH}.deb linux-libc-dev_*_${CROSS_ARCH}.deb; \
452
448
        do \
453
 
            PKG_IGNORE_CURRENTLY_BUILDING=1 dpkg-cross -M -a ${CROSS_ARCH} -X dpkg -X findutils -X tzdata -X libc-bin -X libc-dev-bin -b $$deb; \
 
449
            PKG_IGNORE_CURRENTLY_BUILDING=1 dpkg-cross -M -a ${CROSS_ARCH} \
 
450
                -X dpkg -X findutils -X tzdata -X libc-bin -X libc-dev-bin \
 
451
                -X debconf -X debconf-2.0 \
 
452
                -b $$deb; \
454
453
        done
455
454
 
456
455
control:
459
458
            -e "s/MIN_VER_EGLIBC/${MIN_VER_EGLIBC}/g" \
460
459
            -e "s/MIN_VER_LINUX/${MIN_VER_LINUX}/g" \
461
460
            -e "s/VER_LINUX/${VER_LINUX}/g" \
462
 
            -e "s/MIN_VER_GCC/${MIN_VER_GCC47}/g" \
 
461
            -e "s/MIN_VER_GCC/${MIN_VER_GCC}/g" \
463
462
            -e "s/VER_GCC_BASE/${VER_GCC_BASE}/g" \
464
463
            -e "s/EXTRA_DEPS/${EXTRA_DEPS}/g" \
465
464
            $(CURDIR)/debian/control.in >$(CURDIR)/debian/control
469
468
            -e "s/eglibc-source/eglibc-${VER_EGLIBC}-source/g" \
470
469
            -e "s/linux-source/linux-source-${VER_LINUX}/g" \
471
470
            -e "s/1.16.0~ubuntu6/1.15.5/g" \
472
 
            -e "s/gcc-${VER_GCC_BASE}-source/gcc-${VER_GCC_BASE}-${VER_GCC47}-source/g" \
 
471
            -e "s/gcc-${VER_GCC_BASE}-source/gcc-${VER_GCC_BASE}-${VER_GCC}-source/g" \
473
472
            -i $(CURDIR)/debian/control
474
473
endif