# This file is part of the FreeWRT project. FreeWRT is copyrighted
# material, please see the LICENCE file in the top-level directory

include $(TOPDIR)/rules.mk

PKG_NAME:=		busybox
PKG_RELEASE:=		1
PKG_VERSION:=		1.37.0
PKG_MD5SUM:=		865b68ab41b923d9cdbebf3f2c8b04ec
PKG_INIT:=		60

PKG_SOURCE:=		$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=	https://www.busybox.net/downloads

include $(TOPDIR)/mk/package.mk

$(eval $(call PKG_template,BUSYBOX,$(PKG_NAME),$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))

$(WRKBUILD)/.configured:
	$(SCRIPT_DIR)/gen_busybox_config.pl $(TOPDIR)/.config > $(WRKBUILD)/.config
	yes '' | $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" -C $(WRKBUILD) oldconfig
	touch $@

$(WRKBUILD)/.built:
	$(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" PREFIX="$(IDIR_BUSYBOX)" \
		EXTRA_CFLAGS="$(TARGET_CFLAGS)" ARCH="$(ARCH)" -C $(WRKBUILD)
	touch $@

$(IPKG_BUSYBOX):
	$(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" PREFIX="$(IDIR_BUSYBOX)" \
		EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(WRKBUILD) install
	$(CP) $(WRKBUILD)/_install/* $(IDIR_BUSYBOX)/
	$(INSTALL_DIR) $(IDIR_BUSYBOX)/etc/init.d/
	$(INSTALL_BIN) ./files/syslog.init \
		$(IDIR_BUSYBOX)/etc/init.d/S05syslog
	$(INSTALL_BIN) ./files/network.init \
		$(IDIR_BUSYBOX)/etc/init.d/S40network
	$(INSTALL_BIN) ./files/crond.init \
		$(IDIR_BUSYBOX)/etc/init.d/S$(PKG_INIT)crond
	$(INSTALL_DIR) $(IDIR_BUSYBOX)/etc/network
	$(INSTALL_DIR) $(IDIR_BUSYBOX)/etc/network/if-pre-up.d
	$(INSTALL_BIN) ./files/vlan.pre-up \
		$(IDIR_BUSYBOX)/etc/network/if-pre-up.d/01-vlan
	$(INSTALL_BIN) ./files/watchdog.if-pre-up \
		$(IDIR_BUSYBOX)/etc/network/if-pre-up.d/00-watchdog
	$(INSTALL_BIN) ./files/bridge.pre-up \
		$(IDIR_BUSYBOX)/etc/network/if-pre-up.d/03-bridge
	$(INSTALL_DIR) $(IDIR_BUSYBOX)/etc/network/if-up.d
	$(INSTALL_BIN) ./files/bridge.up \
		$(IDIR_BUSYBOX)/etc/network/if-up.d/02-bridge
	$(INSTALL_BIN) ./files/hso.if-up \
		$(IDIR_BUSYBOX)/etc/network/if-up.d/03-hso
	$(INSTALL_DIR) $(IDIR_BUSYBOX)/etc/network/if-down.d
	$(INSTALL_BIN) ./files/watchdog.if-down \
		$(IDIR_BUSYBOX)/etc/network/if-down.d/02-watchdog
	$(INSTALL_BIN) ./files/hso.if-down \
		$(IDIR_BUSYBOX)/etc/network/if-down.d/03-hso
	$(INSTALL_DIR) $(IDIR_BUSYBOX)/etc/network/if-post-down.d
	$(INSTALL_DIR) $(IDIR_BUSYBOX)/sbin
	$(INSTALL_BIN) ./files/if-watchdog \
		$(IDIR_BUSYBOX)/sbin/if-watchdog
ifneq ($(strip ${BUSYBOX_CONFIG_HALT}),)
ifneq ($(strip ${BUSYBOX_CONFIG_FEATURE_FWCF_REBOOT}),)
	cd ${IDIR_BUSYBOX}/sbin && rm -f halt poweroff reboot
endif
endif
	$(RSTRIP) $(IDIR_BUSYBOX)
	$(IPKG_BUILD) $(IDIR_BUSYBOX) $(PACKAGE_DIR)
