Mercurial > gub
view root.make @ 5458:29c354d0e78b
GUB: /root: first full binary x86_64 root build success.
author | Jan Nieuwenhuizen <janneke@gnu.org> |
---|---|
date | Mon, 17 Aug 2009 14:21:44 +0200 |
parents | |
children |
line wrap: on
line source
## booting binary [fake]root setup ROOT = GUB FAKEROOT_CACHE = $(ROOT)/fakeroot.save #FAKEROOT = $(ROOT)/usr/bin/fakeroot -i $(FAKEROOT_CACHE) -s $(FAKEROOT_CACHE) #FAKECHROOT = $(ROOT)/usr/bin/fakechroot chroot $(ROOT) ID=$(shell id -u) ifneq ($(ID),00) FAKEROOT = $(ROOT)/$(BUILD_ARCHITECTURE)/usr/bin/fakeroot-ng -p $(FAKEROOT_CACHE) endif FAKECHROOT = $(ROOT)/$(BUILD_ARCHITECTURE)/usr/bin/chroot $(ROOT) BUILD_ARCHITECTURE = $(shell $(PYTHON) bin/build-architecture) UNTAR = cd $(ROOT)/$(BUILD_ARCHITECTURE) && set -x && for i in $$(find packages -name "*.gup" | grep core; find packages -name "*.gup" | grep -v core); do tar xzf $$i; done boot_packs =\ gub-utils\ librestrict\ dash\ gawk\ grep\ patch\ coreutils\ texinfo\ cross/binutils\ cross/gcc-core\ linux-headers\ glibc-core\ cross/gcc\ glibc\ bash\ tar\ make\ sed\ ncurses\ findutils\ libtool\ util-linux\ fakeroot-ng\ expat\ zlib\ gzip\ bzip2\ db\ gdbm\ python\ perl\ m4\ autoconf\ automake\ makedev\ # # Hmm. Some of these are not needed in the final root per se # but are needed to rebuild the root to get context-free checksums # Such as: bzip2, gzip, m4, autoconf, patch? root_packs =\ autoconf\ automake\ bash\ bzip2\ coreutils\ cross/binutils\ cross/gcc-core\ dash\ db\ expat\ gdbm\ gub-utils\ fakeroot-ng\ glibc-core\ gzip\ make\ makedev\ patch\ perl\ python\ tar\ util-linux\ zlib\ # # build GUB packages to populate root [eventually for distribution] boot: mkdir -p $(ROOT) #sudo ln -sf $(PWD)/GUB / set -x; $(foreach i,$(boot_packs),BOOTSTRAP=TRUE bin/gub -x --keep --lax-checksums $(i) &&) : mkdir -p BOOTSTRAP/$(BUILD_ARCHITECTURE)/packages rsync -az $(ROOT)/$(BUILD_ARCHITECTURE)/packages/ BOOTSTRAP/$(BUILD_ARCHITECTURE)/packages rm -f $$(find BOOTSTRAP/$(BUILD_ARCHITECTURE)/packages -name 'glibc' -o -name 'gcc' -o -name 'librestrict' -o -name 'linux-headers' -o -name 'sed' -o -name 'libtool' -o -name 'findutils' | grep -v core) mv --backup=t $(ROOT) BOOT || mkdir $(ROOT) root: $(MAKE) setup-root BOOTSTRAP=TRUE $(FAKEROOT) $(FAKECHROOT) $(ROOT)/$(BUILD_ARCHITECTURE)/usr/bin/bash -l -c 'python gbin/gub --keep cross/gcc' # BOOTSTRAP=TRUE $(FAKEROOT) $(FAKECHROOT) python gbin/gub --keep cross/gcc rsync -az $(ROOT)/$(BUILD_ARCHITECTURE)/packages/ BOOTSTRAP/$(BUILD_ARCHITECTURE)/packages BOOTSTRAP=TRUE $(FAKEROOT) $(FAKECHROOT) $(ROOT)/$(BUILD_ARCHITECTURE)/usr/bin/bash -l -c 'python gbin/gub --keep glibc' # BOOTSTRAP=TRUE $(FAKECHROOT) python gbin/gub --keep glibc rsync -az $(ROOT)/$(BUILD_ARCHITECTURE)/packages/ BOOTSTRAP/$(BUILD_ARCHITECTURE)/packages BOOTSTRAP=TRUE $(FAKEROOT) $(FAKECHROOT) $(ROOT)/$(BUILD_ARCHITECTURE)/usr/bin/bash -l -c 'python gbin/gub --keep fakeroot-ng' # BOOTSTRAP=TRUE $(FAKECHROOT) python gbin/gub --keep fakeroot-ng rsync -az $(ROOT)/$(BUILD_ARCHITECTURE)/packages/ BOOTSTRAP/$(BUILD_ARCHITECTURE)/packages setup-root: mkdir -p $(ROOT) # Symlink setup BOOTSTRAP=$(ROOT) bin/gub > /dev/null || : rsync -az ./BOOTSTRAP/ $(ROOT) mkdir -p $(ROOT)/downloads/cross/gcc-core rsync -az downloads/cross/gcc-core/ $(ROOT)/downloads/cross/gcc-core # let's not clutter /bin rsync -az bin/ $(ROOT)/gbin rsync -az gub librestrict nsis patches sourcefiles $(ROOT) $(UNTAR) cp -pv sourcefiles/inspect.py $(ROOT)/$(BUILD_ARCHITECTURE)/usr/lib/python2.4/inspect.py rm -f $(FAKEROOT_CACHE) touch $(FAKEROOT_CACHE) $(FAKEROOT) $(FAKECHROOT) /$(ROOT)/$(BUILD_ARCHITECTURE)/usr/bin/bash -l -c 'cd /dev && ./MAKEDEV standard' # $(FAKEROOT) $(FAKECHROOT) /bin/bash -l -c '($UNTAR)' # mv $(ROOT)/dev/urandom $(ROOT)/dev/urandom- || : # run test build in root run: BOOTSTRAP=TRUE $(FAKEROOT) $(FAKECHROOT) 'python gbin/gub cross/gcc' # run test build in root rebuildrun: setup-root rm -f $(ROOT)/$(BUILD_ARCHITECTURE)/etc/gup/* rsync -az ./BINARIES/ $(ROOT) $(UNTAR) BOOTSTRAP=TRUE $(FAKEROOT) $(FAKECHROOT) $(ROOT)/$(BUILD_ARCHITECTURE)/usr/bin/bash -l -c 'python gbin/gub --keep --fresh perl cross/gcc' rsync -az $(ROOT)/$(BUILD_ARCHITECTURE)/packages/ BINARIES/$(BUILD_ARCHITECTURE)/packages # enter into root chroot: BOOTSTRAP=TRUE $(FAKEROOT) $(FAKECHROOT) $(ROOT)/$(BUILD_ARCHITECTURE)/usr/bin/bash -l