SIMPLERAMFS_SITE_METHOD=null

SIMPLERAMFS_INSTALL_TARGET=NO
SIMPLERAMFS_INSTALL_IMAGES=YES

SIMPLERAMFS_DEPENDENCIES= \
	dash \
	toybox \
	toolbox \
	util-linux \
	google_signing \
	google_platform \
	mtd

ifeq ($(BR2_PACKAGE_SIMPLERAMFS_FIRMWARE),y)
SIMPLERAMFS_DEPENDENCIES+=simpleramfs_firmware
endif

ifeq ($(BR2_PACKAGE_GOOGLE_HNVRAM),y)
SIMPLERAMFS_DEPENDENCIES+=google_hnvram
HNVRAM_BIN=$(TARGET_DIR)/usr/bin/hnvram
endif
ifeq ($(BR2_PACKAGE_MINDSPEED_DRIVERS),y)
SIMPLERAMFS_DEPENDENCIES+=mindspeed_drivers
endif
ifneq ($(BR2_TARGET_ROOTFS_RECOVERYFS),y)
ifeq ($(BR2_PACKAGE_GPTFDISK_SGDISK),y)
SIMPLERAMFS_DEPENDENCIES+=gptfdisk
SGDISK_BIN=$(TARGET_DIR)/usr/sbin/sgdisk
endif
endif
ifeq ($(BR2_PACKAGE_UTIL_LINUX_MOUNT),y)
SIMPLERAMFS_DEPENDENCIES+=util-linux
LOSETUP_BIN=$(TARGET_DIR)/sbin/losetup
endif
ifeq ($(BR2_PACKAGE_LVM2),y)
SIMPLERAMFS_DEPENDENCIES+=lvm2
DMSETUP_BIN=$(TARGET_DIR)/usr/sbin/dmsetup
endif

define SIMPLERAMFS_EXTRACT_CMDS
	mkdir -p $(@D)
endef

ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC),y)
SIMPLERAMFS_LD_LINUX = $(TARGET_DIR)/lib/ld-linux.so.2
else
SIMPLERAMFS_LD_LINUX = $(TARGET_DIR)/lib/ld-uClibc.so.0
endif

define SIMPLERAMFS_BUILD_CMDS
	rm -rf $(@D)/fs
	for d in sbin bin lib proc dev sys rootfs mnt tmp vfat veritytmp etc; do \
		mkdir -p $(@D)/fs/$$d; \
	done

	# the initramfs /init script, executed by the kernel by default
	ln -f \
		package/simpleramfs/init \
		package/simpleramfs/recover \
		package/simpleramfs/mounts-sys \
		package/simpleramfs/mounts-root \
		package/simpleramfs/helpers.sh \
		fs/skeleton/sbin/preinit \
		$(@D)/fs/

	# needed to run pre-init
	ln -f \
		fs/skeleton/bin/update-mtd-links \
		$(@D)/../google_platform-HEAD/hnvram/hnvram \
		$(@D)/fs/sbin

	ln -f package/simpleramfs/fstab $(@D)/fs/etc
	ln -s lib $(@D)/fs/lib64

	# toolbox/toybox symlinks
	#TODO(apenwarr): not sure we're actually using toolbox in simpleramfs.
	set -e; \
	cat $(TOOLBOX_DIR)/symlinks.list | \
		while read name; do \
			echo toolbox: $$name; \
			ln -sf toolbox $(@D)/fs/bin/$$name; \
		done
	set -e; \
	$(TOYBOX_DIR)/generated/instlist | \
		while read name; do \
			echo toybox: $$name; \
			ln -sf toybox $(@D)/fs/bin/$$name; \
		done

	# other required binaries.
	ln -f $(TARGET_DIR)/bin/dash $(@D)/fs/bin/sh
	ln -f 	$(TARGET_DIR)/bin/toolbox \
		$(TARGET_DIR)/bin/toybox \
		$(TARGET_DIR)/usr/sbin/nanddump \
		$(TARGET_DIR)/usr/sbin/ubiattach \
		$(TARGET_DIR)/usr/sbin/ubidetach \
		$(TARGET_DIR)/usr/sbin/readverity \
		$(TARGET_DIR)/sbin/switch_root \
		$(HNVRAM_BIN) \
		$(SGDISK_BIN) \
		$(LOSETUP_BIN) \
		$(DMSETUP_BIN) \
		$(@D)/fs/bin/

	# driver firmware and modules
	ln -f	fs/skeleton/sbin/hotplug $(@D)/fs/sbin/
	ln -f	fs/skeleton/etc/utils.sh $(@D)/fs/etc/
	if [ "$(BR2_PACKAGE_MINDSPEED_DRIVERS)" = "y" ]; then \
		mkdir -p $(@D)/fs/lib/modules $(@D)/fs/lib/firmware && \
		ln -f	$(TARGET_DIR)/lib/modules/*/extra/pfe.ko \
			$(@D)/fs/lib/modules/ && \
		ln -f	$(TARGET_DIR)/lib/firmware/*c2000*.elf \
			$(@D)/fs/lib/firmware/; \
	fi
	if [ "$(BR2_PACKAGE_SIMPLERAMFS_FIRMWARE)" = "y" ]; then \
		mkdir -p $(@D)/fs/lib/firmware; \
		tmp=$(BR2_PACKAGE_SIMPLERAMFS_FIRMWARE_FILENAMES); \
		for d in $$tmp; do \
		  for dd in $(@D)/$$d; do \
		    dir=$$(dirname "$(@D)/fs/lib/firmware/$$d"); \
		    mkdir -p "$$dir"; \
		    ln -f $(TARGET_DIR)/lib/firmware/$$d $$dir; \
		  done; \
		done; \
	fi

	# strip all the binaries
	$(STRIPCMD) $(@D)/fs/bin/*

	# except this one
	ln -f	fs/skeleton/bin/register_experiment $(@D)/fs/bin/

	# without ld.so, nothing works
	if [ "$(BR2_TOOLCHAIN_EXTERNAL_GLIBC)" = "y" ]; then \
		cp --no-dereference --preserve=links $(TARGET_DIR)/lib/ld-* \
			$(@D)/fs/lib/; \
	else \
		cp $(TARGET_DIR)/lib/ld-uClibc.so.0 \
			$(@D)/fs/lib/; \
	fi

	# find required shared libs, including libraries pulled in by
	# other libraries that were pulled in.  Three iterations seems to
	# be one more than we need at time of writing (2012/04/17) which
	# gives us a slight safety margin.
	set -e; \
	for i in 1 2 3; do \
		echo "Loop $$i:"; \
		$(TARGET_MAKE_ENV) $(TARGET_CROSS)readelf -d \
			$(@D)/fs/bin/* $(@D)/fs/lib/*.so* | \
		perl -ne '/library:\s*\[([^\]]+)\]/i && print "$$1\n"' | \
		sort | uniq | \
		while read fn; do \
			[ ! -e $(@D)/fs/lib/$$fn ] || continue; \
			echo lib: $$fn; \
			[ -e $(TARGET_DIR)/lib/$$fn ] && \
				cp $(TARGET_DIR)/lib/$$fn $(@D)/fs/lib/ || \
				cp $(TARGET_DIR)/usr/lib/$$fn $(@D)/fs/lib/; \
		done; \
	done

	# strip all the libraries
	# TODO(mka): the libraries should be already stripped, but for some reason
	# sometimes (at least) libstdc++ is unstripped
	$(STRIPCMD) $(@D)/fs/lib/*.so*
endef

define SIMPLERAMFS_INSTALL_IMAGES_CMDS
	(cd $(@D)/fs && \
	 ((find; echo /dev/console; echo /dev/kmsg) | cpio -oH newc)) \
		>$(BINARIES_DIR)/simpleramfs.cpio.new
	mv $(BINARIES_DIR)/simpleramfs.cpio.new \
	   $(BINARIES_DIR)/simpleramfs.cpio
endef

$(eval $(call GENTARGETS))
