| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 | 
SOURCES = sourcesCONFIG_SUB_REV = 3d5db9ebe860BINUTILS_VER = 2.33.1GCC_VER = 9.2.0MUSL_VER = 1.1.24GMP_VER = 6.1.2MPC_VER = 1.1.0MPFR_VER = 4.0.2LINUX_VER = headers-4.19.88GNU_SITE = https://ftp.gnu.org/pub/gnuGCC_SITE = $(GNU_SITE)/gccBINUTILS_SITE = $(GNU_SITE)/binutilsGMP_SITE = $(GNU_SITE)/gmpMPC_SITE = $(GNU_SITE)/mpcMPFR_SITE = $(GNU_SITE)/mpfrISL_SITE = http://isl.gforge.inria.fr/MUSL_SITE = https://www.musl-libc.org/releasesMUSL_REPO = git://git.musl-libc.org/muslLINUX_SITE = https://cdn.kernel.org/pub/linux/kernelLINUX_HEADERS_SITE = http://ftp.barfooze.de/pub/sabotage/tarballs/DL_CMD = wget -c -OCOWPATCH = $(PWD)/cowpatch.shHOST = $(if $(NATIVE),$(TARGET))BUILD_DIR = build/$(if $(HOST),$(HOST),local)/$(TARGET)OUTPUT = $(CURDIR)/output$(if $(HOST),-$(HOST))REL_TOP = ../../..-include config.makSRC_DIRS = gcc-$(GCC_VER) binutils-$(BINUTILS_VER) musl-$(MUSL_VER) \	$(if $(GMP_VER),gmp-$(GMP_VER)) \	$(if $(MPC_VER),mpc-$(MPC_VER)) \	$(if $(MPFR_VER),mpfr-$(MPFR_VER)) \	$(if $(ISL_VER),isl-$(ISL_VER)) \	$(if $(LINUX_VER),linux-$(LINUX_VER))all:clean:	rm -rf gcc-* binutils-* musl-* gmp-* mpc-* mpfr-* isl-* build build-* linux-*distclean: clean	rm -rf sources# Rules for downloading and verifying sources. Treat an external SOURCES path as# immutable and do not try to download anything into it.ifeq ($(SOURCES),sources)$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/gmp*)): SITE = $(GMP_SITE)$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/mpc*)): SITE = $(MPC_SITE)$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/mpfr*)): SITE = $(MPFR_SITE)$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/isl*)): SITE = $(ISL_SITE)$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/binutils*)): SITE = $(BINUTILS_SITE)$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/gcc*)): SITE = $(GCC_SITE)/$(basename $(basename $(notdir $@)))$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/musl*)): SITE = $(MUSL_SITE)$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/linux-4*)): SITE = $(LINUX_SITE)/v4.x$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/linux-3*)): SITE = $(LINUX_SITE)/v3.x$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/linux-2.6*)): SITE = $(LINUX_SITE)/v2.6$(patsubst hashes/%.sha1,$(SOURCES)/%,$(wildcard hashes/linux-headers-*)): SITE = $(LINUX_HEADERS_SITE)$(SOURCES):	mkdir -p $@$(SOURCES)/config.sub: | $(SOURCES)	mkdir -p $@.tmp	cd $@.tmp && $(DL_CMD) $(notdir $@) "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=$(CONFIG_SUB_REV)"	cd $@.tmp && touch $(notdir $@)	cd $@.tmp && sha1sum -c $(CURDIR)/hashes/$(notdir $@).$(CONFIG_SUB_REV).sha1	mv $@.tmp/$(notdir $@) $@	rm -rf $@.tmp$(SOURCES)/%: hashes/%.sha1 | $(SOURCES)	mkdir -p $@.tmp	cd $@.tmp && $(DL_CMD) $(notdir $@) $(SITE)/$(notdir $@)	cd $@.tmp && touch $(notdir $@)	cd $@.tmp && sha1sum -c $(CURDIR)/hashes/$(notdir $@).sha1	mv $@.tmp/$(notdir $@) $@	rm -rf $@.tmpendif# Rules for extracting and patching sources, or checking them out from git.musl-git-%:	rm -rf $@.tmp	git clone -b $(patsubst musl-git-%,%,$@) $(MUSL_REPO) $@.tmp	cd $@.tmp && git fsck	mv $@.tmp $@%.orig: $(SOURCES)/%.tar.gz	case "$@" in */*) exit 1 ;; esac	rm -rf $@.tmp	mkdir $@.tmp	( cd $@.tmp && tar zxvf - ) < $<	rm -rf $@	touch $@.tmp/$(patsubst %.orig,%,$@)	mv $@.tmp/$(patsubst %.orig,%,$@) $@	rm -rf $@.tmp%.orig: $(SOURCES)/%.tar.bz2	case "$@" in */*) exit 1 ;; esac	rm -rf $@.tmp	mkdir $@.tmp	( cd $@.tmp && tar jxvf - ) < $<	rm -rf $@	touch $@.tmp/$(patsubst %.orig,%,$@)	mv $@.tmp/$(patsubst %.orig,%,$@) $@	rm -rf $@.tmp%.orig: $(SOURCES)/%.tar.xz	case "$@" in */*) exit 1 ;; esac	rm -rf $@.tmp	mkdir $@.tmp	( cd $@.tmp && tar Jxvf - ) < $<	rm -rf $@	touch $@.tmp/$(patsubst %.orig,%,$@)	mv $@.tmp/$(patsubst %.orig,%,$@) $@	rm -rf $@.tmp%: %.orig | $(SOURCES)/config.sub	case "$@" in */*) exit 1 ;; esac	rm -rf $@.tmp	mkdir $@.tmp	( cd $@.tmp && find ../$< -path '*/*/*' -prune -exec sh -c 'ln -s "$$@" .' ':' {} + )	test ! -d patches/$@ || cat patches/$@/* | ( cd $@.tmp && $(COWPATCH) -p1 )	test ! -f $</config.sub || ( rm -f $@.tmp/config.sub && cp -f $(SOURCES)/config.sub $@.tmp/ )	rm -rf $@	mv $@.tmp $@# Add deps for all patched source dirs on their patchsets$(foreach dir,$(notdir $(basename $(basename $(basename $(wildcard hashes/*))))),$(eval $(dir): $$(wildcard patches/$(dir) patches/$(dir)/*)))extract_all: | $(SRC_DIRS)# Rules for building.ifeq ($(TARGET),)all:	@echo TARGET must be set via config.mak or command line.	@exit 1else$(BUILD_DIR):	mkdir -p $@$(BUILD_DIR)/Makefile: | $(BUILD_DIR)	ln -sf $(REL_TOP)/litecross/Makefile $@$(BUILD_DIR)/config.mak: | $(BUILD_DIR)	printf >$@ '%s\n' \	"TARGET = $(TARGET)" \	"HOST = $(HOST)" \	"MUSL_SRCDIR = $(REL_TOP)/musl-$(MUSL_VER)" \	"GCC_SRCDIR = $(REL_TOP)/gcc-$(GCC_VER)" \	"BINUTILS_SRCDIR = $(REL_TOP)/binutils-$(BINUTILS_VER)" \	$(if $(GMP_VER),"GMP_SRCDIR = $(REL_TOP)/gmp-$(GMP_VER)") \	$(if $(MPC_VER),"MPC_SRCDIR = $(REL_TOP)/mpc-$(MPC_VER)") \	$(if $(MPFR_VER),"MPFR_SRCDIR = $(REL_TOP)/mpfr-$(MPFR_VER)") \	$(if $(ISL_VER),"ISL_SRCDIR = $(REL_TOP)/isl-$(ISL_VER)") \	$(if $(LINUX_VER),"LINUX_SRCDIR = $(REL_TOP)/linux-$(LINUX_VER)") \	"-include $(REL_TOP)/config.mak"all: | $(SRC_DIRS) $(BUILD_DIR) $(BUILD_DIR)/Makefile $(BUILD_DIR)/config.mak	cd $(BUILD_DIR) && $(MAKE) $@install: | $(SRC_DIRS) $(BUILD_DIR) $(BUILD_DIR)/Makefile $(BUILD_DIR)/config.mak	cd $(BUILD_DIR) && $(MAKE) OUTPUT=$(OUTPUT) $@endif.SECONDARY:
 |