X-Git-Url: https://jxself.org/git/?p=carl9170fw.git;a=blobdiff_plain;f=toolchain%2FMakefile;h=751386c4b228db669a691f49347f15b363a4cbba;hp=81c5de4249135211948088dae2254287c24b5c53;hb=HEAD;hpb=af915846d44d23adc02c7ded807282d607b46faa diff --git a/toolchain/Makefile b/toolchain/Makefile index 81c5de4..d73844f 100644 --- a/toolchain/Makefile +++ b/toolchain/Makefile @@ -1,55 +1,104 @@ -BINUTILS_VER=2.21 -BINUTILS_URL=http://mirrors.kernel.org/gnu/binutils/binutils-$(BINUTILS_VER).tar.bz2 -BINUTILS_TAR=binutils-$(BINUTILS_VER).tar.bz2 +BINUTILS_VER=2.40 +BINUTILS_TAR=binutils-$(BINUTILS_VER).tar.xz +BINUTILS_URL="http://mirrors.kernel.org/gnu/binutils/$(BINUTILS_TAR)" -NEWLIB_VER=1.19.0 -NEWLIB_URL=ftp://sources.redhat.com/pub/newlib/newlib-$(NEWLIB_VER).tar.gz +NEWLIB_VER=4.3.0.20230120 NEWLIB_TAR=newlib-$(NEWLIB_VER).tar.gz +NEWLIB_URL="ftp://sourceware.org/pub/newlib/$(NEWLIB_TAR)" -GCC_VER=4.4.6 -GCC_URL=http://mirrors.kernel.org/gnu/gcc/gcc-$(GCC_VER)/gcc-core-$(GCC_VER).tar.bz2 -GCC_TAR=gcc-core-$(GCC_VER).tar.bz2 +GCC_VER=13.1.0 +GCC_TAR=gcc-$(GCC_VER).tar.xz +GCC_URL="http://mirrors.kernel.org/gnu/gcc/gcc-$(GCC_VER)/$(GCC_TAR)" + +MPFR_VER=4.2.0 +MPFR_TAR=mpfr-$(MPFR_VER).tar.xz +MPFR_URL="http://ftpmirror.gnu.org/gnu/mpfr/$(MPFR_TAR)" + +GMP_VER=6.2.1 +GMP_TAR=gmp-$(GMP_VER).tar.xz +GMP_URL="http://ftpmirror.gnu.org/gnu/gmp/$(GMP_TAR)" + +MPC_VER=1.3.1 +MPC_TAR=mpc-$(MPC_VER).tar.gz +MPC_URL="http://ftpmirror.gnu.org/gnu/mpc/$(MPC_TAR)" + +JOBS?=$(shell grep -c ^processor /proc/cpuinfo) BASEDIR=$(shell pwd) -all: gcc +define checksum +@if grep -q ' $(subst .,\.,$(1))$$' SHA256SUMS; then \ + grep ' $(subst .,\.,$(1))$$' SHA256SUMS | sha256sum -c || rm $(1); \ +else \ + echo "WARNING: no checksum defined for $(1)"; \ +fi +endef + +all: clean gcc + +src/$(MPFR_TAR): + wget -P "$(BASEDIR)/src" "$(MPFR_URL)" + $(call checksum,$@) + +src/$(GMP_TAR): + wget -P "$(BASEDIR)/src" "$(GMP_URL)" + $(call checksum,$@) + +src/$(MPC_TAR): + wget -P "$(BASEDIR)/src" "$(MPC_URL)" + $(call checksum,$@) src/$(BINUTILS_TAR): - wget -P src $(BINUTILS_URL) + wget -P "$(BASEDIR)/src" "$(BINUTILS_URL)" + $(call checksum,$@) src/$(NEWLIB_TAR): - wget -P src $(NEWLIB_URL) + wget -P "$(BASEDIR)/src" "$(NEWLIB_URL)" + $(call checksum,$@) src/$(GCC_TAR): - wget -P src $(GCC_URL) + wget -P "$(BASEDIR)/src" "$(GCC_URL)" + $(call checksum,$@) + +src/mpfr-$(MPFR_VER): src/$(MPFR_TAR) + tar -C "$(BASEDIR)/src" -xf "$<" + +src/gmp-$(GMP_VER): src/$(GMP_TAR) + tar -C "$(BASEDIR)/src" -xf "$<" + +src/mpc-$(MPC_VER): src/$(MPC_TAR) + tar -C "$(BASEDIR)/src" -xf "$<" src/binutils-$(BINUTILS_VER): src/$(BINUTILS_TAR) - tar -C src -xjf $< + tar -C "$(BASEDIR)/src" -xf "$<" src/newlib-$(NEWLIB_VER): src/$(NEWLIB_TAR) - tar -C src -xzf $< + tar -C "$(BASEDIR)/src" -xf "$<" -src/gcc-$(GCC_VER): src/$(GCC_TAR) src/newlib-$(NEWLIB_VER) - tar -C src -xjf $< - ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/newlib $@ - ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/libgloss $@ +src/gcc-$(GCC_VER): src/$(GCC_TAR) src/newlib-$(NEWLIB_VER) src/mpc-$(MPC_VER) src/gmp-$(GMP_VER) src/mpfr-$(MPFR_VER) + tar -C "$(BASEDIR)/src" -xf "$<" + ln -s "$(BASEDIR)/src/newlib-$(NEWLIB_VER)/newlib" "$@" + ln -s "$(BASEDIR)/src/newlib-$(NEWLIB_VER)/libgloss" "$@" + ln -s "$(BASEDIR)/src/gmp-$(GMP_VER)" "$@/gmp" + ln -s "$(BASEDIR)/src/mpfr-$(MPFR_VER)" "$@/mpfr" + ln -s "$(BASEDIR)/src/mpc-$(MPC_VER)" "$@/mpc" binutils: src/binutils-$(BINUTILS_VER) - mkdir -p build/binutils - cd build/binutils; \ - $(BASEDIR)/$