path := base name := initramfs suffix := gz version_of := src/busybox latest_version = $(shell wget -q "http://busybox.net/downloads/" -O - | grep '"busybox-[0-9].*.tar.bz2"' | sed 's/.* href="busybox-\(.*\)\.tar\.bz2".*/\1/' | tail -n1) kernel_version = $(word 1,$(subst ., ,$(KERNEL))).$(word 2,$(subst ., ,$(KERNEL))) uclibc_version := 0.9.33.2 uclibc_url = http://uclibc.org/downloads/uClibc-$(uclibc_version).tar.bz2 aufs_version := $(if $(aufs_version),$(aufs_version),$(shell test -L src/aufs && readlink src/aufs | sed "s/.*-\|\///g" || $(if $(findstring src/aufs-HEAD,$(MAKECMDGOALS)),,$(MAKE) --no-print-directory -sf ../Makefile.getfile version file=src/aufs-utils.tgz rule=src/aufs-HEAD))) src_files := busybox uClibc aufs-utils deps = xfsprogs dialog dosfstools autoconf libgdk-pixbuf2.0-dev shared-mime-info libjpeg62 libncurses5 lsof include ../Makefile.default include ../Makefile.tools all: ../LOGO $(name).$(suffix) clean: _clean $(MAKE) -C src/busybox clean || true $(MAKE) -C src/uClibc clean || true $(MAKE) -C src/uClibc/utils clean || true $(MAKE) -C src/yaird clean || true $(MAKE) -C src/bootsplash clean || true $(MAKE) -C src/aufs clean || true $(name).$(suffix): $(modul) $(MAKE) copy_deps cd $(modul) && find . | cpio --quiet -o -H newc | gzip -9 > ../$(modulname) ln -fs $(modulname) $@ ln -fs $@ $(name).cpio.gz $(modul): src/busybox/busybox src/uClibc/utils/ldconfig src/yaird/exec/run_init src/bootsplash/splash src/bootsplash/bootsplash src/psplash/psplash src/aufs/mount.aufs template $(MAKE) $(addon) $(MAKE) copy_from_host cp src/busybox/busybox $@/bin/busybox cp src/bootsplash/bootsplash $@/bootsplash cp src/uClibc/utils/ldconfig src/yaird/exec/run_init src/bootsplash/splash src/psplash/psplash src/psplash/psplash-write src/aufs/mount.aufs src/aufs/umount.aufs src/aufs/auplink $@/sbin cp /usr/bin/tac src/aufs/aubrsync src/aufs/auchk $@/usr/bin mkdir -p $@/etc/default cp src/aufs/etc_default_aufs $@/etc/default/aufs sed -i $@/etc/rc.config -e "s/^SYSTEM_VERSION=.*/SYSTEM_VERSION=\"$(DISTRI_VER)\"/g" sed -i $@/etc/rc.config -e "s/^DEVELOPER=.*/DEVELOPER=\"$(USER)\"/g" test "$(USER)" != "nightbuild" || sed -i $@/etc/apm-sources.list -e "/{DEVELOPER}/d" cp $@/etc/dialogrc.$(bgcolor) $@/etc/dialogrc rm $@/etc/dialogrc.* $@/sbin/ldconfig -r $@ # test ! -e $@/lib/modules/$(KERNEL) || /sbin/depmod -b $@ $(KERNEL) src/busybox/busybox: src/busybox $(MAKE) -C src/busybox src/busybox: src/busybox-$(version) src/busybox-$(version)/.config ln -fns busybox-$(version) $@ src/busybox-$(version): src/busybox.bz2 tar xf $^ -C src $(MAKE) patch src_path=$@ src_name=busybox src/busybox-$(version)/.config: src/busybox.config cp $^ $@ cd $(@D); yes "" | make oldconfig >/dev/null src/busybox.bz2: $(MAKE) -f ../Makefile.getfile file=$@ version=$(version) url='http://busybox.net/downloads/busybox-$(version).tar.bz2' src/bootsplash/splash: src/bootsplash/bootsplash: $(MAKE) -C $(@D) style=$(style) src/yaird/exec/run_init: src/yaird/Makefile $(MAKE) -C $(@D) $(@F) || ( $(MAKE) -C src/yaird && $(MAKE) -C $(@D) $(@F) ) src/yaird/Makefile: cd $(@D); ./configure src/uClibc/utils/ldconfig: src/uClibc/.config ../KERNEL/include $(MAKE) -C $(@D) C_INCLUDE_PATH=$(shell pwd)/../KERNEL/include || ( rm -r src/uClibc/lib; $(MAKE) -C $(@D) C_INCLUDE_PATH=$(shell pwd)/../KERNEL/include ) # $(MAKE) -C $(@D) C_INCLUDE_PATH=$(shell pwd)/../KERNEL/include || ( rm -r src/uClibc/lib/ld-uClibc.so.0; $(MAKE) -C $(@D) C_INCLUDE_PATH=$(shell pwd)/../KERNEL/include ) src/uClibc/.config: src/uClibc cd $(@D); make defconfig sed "s/RUNTIME_PREFIX=.*/RUNTIME_PREFIX=\"\/\"/" -i $@ sed "s/DEVEL_PREFIX=.*/DEVEL_PREFIX=\"\/usr\/\"/" -i $@ if [ "$(ARCH)" = "arm" ]; then \ sed "s/# ARCH_WANTS_LITTLE_ENDIAN .*/ARCH_WANTS_LITTLE_ENDIAN=y/" -i $@; \ sed "s/ARCH_WANTS_BIG_ENDIAN=y/# ARCH_WANTS_BIG_ENDIAN is not set/" -i $@; \ sed "s/# CONFIG_ARM_EABI .*/CONFIG_ARM_EABI=y/" -i $@; \ fi src/uClibc: src/uClibc-$(uclibc_version) ln -fns $(^F) $@ src/uClibc-$(uclibc_version): src/uClibc.bz2 rm -rf $@ tar xf $^ -C $(@D) # mv src/uClibc $@ src/uClibc.bz2: $(MAKE) -f ../Makefile.getfile file=$@ version=$(uclibc_version) url="$(uclibc_url)" src/aufs/%: src/aufs ../KERNEL/include CPPFLAGS="-I $$(pwd)/../KERNEL/include" $(MAKE) -C $(@D) src/aufs: src/aufs-$(aufs_version) ln -fns $(^F) $@ src/aufs-$(aufs_version): src/aufs-utils.tgz rm -rf $@* mkdir -p $@-src tar xf $^ -C $@-src mv $@-src/* $@ rm -r $@-src src/aufs-utils.tgz: $(MAKE) -f ../Makefile.getfile version=$(aufs_version) file=$@ rule=src/aufs-HEAD src/aufs-HEAD: git clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs-util.git $@ cd $@; git checkout origin/aufs3.x-rcN tar -caf $(file) -C $(@D) $(@F) rm -rf $@ src/psplash/psplash: src/psplash/Makefile cd $(@D); sh make-image-header.sh ../../../LOGO/logo.png MLD mv -f $(@D)/logo-img.h $(@D)/psplash-mld-img.h $(MAKE) -C $(@D) src/psplash/Makefile: cd $(@D); sh autogen.sh