# # Copyright (C) 2006-2012 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=busybox ifeq ("$(strip ${ZCFG_PLATFORM})","QUALCOMM") PKG_VERSION:=1.25.1 PKG_RELEASE:=2 PKG_FLAGS:=essential #PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_V`ERSION).tar.bz2 else ifeq ($(CONFIG_busybox_revision), "1_20_1") PKG_VERSION:=1_20_1 PKG_RELEASE:=5 PKG_FLAGS:=essential PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz else ifeq ($(CONFIG_busybox_revision), "1.31.1") PKG_VERSION:=1.31.1 PKG_RELEASE:=1 PKG_FLAGS:=essential PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 else #default PKG_VERSION:=1_20_1 PKG_RELEASE:=5 PKG_FLAGS:=essential #PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz endif PKG_SOURCE_URL:=@ZyXEL_SITE/opensource/utils/busybox #PKG_SOURCE_URL:=@ZyXEL_SITE/opensource/misc PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_FEATURE_HAVE_RPC:librpc PKG_BUILD_DEPENDS+=PACKAGE_zcmd:zcfg PACKAGE_zcmd:libzcfg_msg PACKAGE_zcmd:libjson PACKAGE_zcmd:libzcfg_fe_rdm_access PACKAGE_zcmd:libzcmd_tool PACKAGE_zcmd:libzcfg_fe_rdm_struct PACKAGE_zcmd:libzyutil PKG_BUILD_PARALLEL:=1 PATCH_DIR:=patches-$(PKG_VERSION) FILES_DIR:=files-$(PKG_VERSION) PKG_LICENSE:=GPLv2 BSD-4c PKG_LICENSE_FILES:=LICENSE archival/libarchive/bz/LICENSE include $(INCLUDE_DIR)/package.mk # __ZYXEL__start, # Replace 'CONFIG_ECONETSDK_' for menuconfig only supports a single prompt problem. ifeq ("$(strip ${ZCFG_PLATFORM})","ECONET") PLATFORM_PREFIX=CONFIG_$(call qstrip, $(CONFIG_CUSTOM_SDK_PREFIX))_ endif ifneq ($(strip $(PLATFORM_PREFIX)),) $(foreach v, \ $(shell grep "^$(PLATFORM_PREFIX)" $(TOPDIR)/.config), \ $(eval $(shell echo $v|sed "s/$(PLATFORM_PREFIX)//"|cut -d'=' -f1)=$(shell echo $v|cut -d'=' -f2))) endif # __ZYXEL__end ifeq ($(DUMP),) STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell $(SH_FUNC) grep '^CONFIG_BUSYBOX_' $(TOPDIR)/.config | md5s) endif ifneq ($(findstring c,$(OPENWRT_VERBOSE)),) BB_MAKE_VERBOSE := V=1 else BB_MAKE_VERBOSE := endif init-y := init-$(CONFIG_BUSYBOX_CONFIG_CROND) += cron init-$(CONFIG_BUSYBOX_CONFIG_TELNETD) += telnet #ifeq ($(CONFIG_PACKAGE_zcmd),y) #ZCFG_DEP= +zcfg +libzcfg_msg +libzcfg_fe_rdm_struct +libjson #ZCFG_DEP=+libzcfg_fe_rdm_struct #endif define Package/busybox SECTION:=base CATEGORY:=Base system MAINTAINER:=Nicolas Thill TITLE:=Core utilities for embedded Linux URL:=http://busybox.net/ DEPENDS:=+BUSYBOX_CONFIG_FEATURE_HAVE_RPC:librpc $(ZCFG_DEP) MENU:=1 endef define Package/busybox/config select PACKAGE_libzcfg_fe_rdm_struct if PACKAGE_zcfg select PACKAGE_libzcfg_msg if PACKAGE_zcfg select PACKAGE_libjson if PACKAGE_zcfg select PACKAGE_libzyutil if PACKAGE_zcfg endef #Disable Dependencies Check define CheckDependencies endef define Package/busybox/description The Swiss Army Knife of embedded Linux. It slices, it dices, it makes Julian Fries. endef define Package/busybox/config source "$(SOURCE)/Config.in" endef define Build/Configure rm -f $(PKG_BUILD_DIR)/.configured* grep 'CONFIG_BUSYBOX_' $(TOPDIR)/.config | sed -e "s,\\(# \)\\?CONFIG_BUSYBOX_\\(.*\\),\\1\\2,g" > $(PKG_BUILD_DIR)/.config yes '' | $(MAKE) -C $(PKG_BUILD_DIR) \ CC="$(TARGET_CC)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ KBUILD_HAVE_NLS=no \ ARCH="$(ARCH)" \ $(BB_MAKE_VERBOSE) \ oldconfig endef ifdef CONFIG_GCC_VERSION_LLVM TARGET_CFLAGS += -fnested-functions endif LDLIBS:=m crypt ifdef CONFIG_BUSYBOX_CONFIG_FEATURE_HAVE_RPC TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include export LDFLAGS=$(TARGET_LDFLAGS) LDLIBS += rpc endif ifeq ($(CONFIG_BRCM_SDK_VERSION), "412L08") #TARGET_CFLAGS += -DBRCM_SDK_412L08 TARGET_CFLAGS += -DBRCM_CHANGE endif ifeq ($(CONFIG_BRCM_SDK_VERSION), "414L04") #TARGET_CFLAGS += -DBRCM_SDK_414L04 TARGET_CFLAGS += -DBRCM_CHANGE endif ifeq ($(CONFIG_PACKAGE_zcmd),y) TARGET_CFLAGS += -DZCFG_SUPPORT LDLIBS += json zcfg_msg zcfg_fe_rdm_access zcmd_tool zcfg_fe_rdm_struct zos zlog zyutil crypto endif LDLIBS += resolv ifeq ($(TCSUPPORT_WAN_GPON),y) TARGET_CFLAGS += -DTCSUPPORT_WAN_GPON endif ifeq ($(TCSUPPORT_3_18_21_KERNEL),y) TARGET_CFLAGS += -DTCSUPPORT_3_18_21_KERNEL endif ifneq ($(strip ${ZCFG_PLATFORM}),) TARGET_CFLAGS += -DPLATFORM_$(ZCFG_PLATFORM) endif ifeq ($(CONFIG_ZYXEL_SAVE_LOG_TO_FLASH),y) TARGET_CFLAGS += -DZYXEL_SAVE_LOG_TO_FLASH endif ifeq ($(CONFIG_ZYXEL_DL_DIAG_CALCULATION),y) TARGET_CFLAGS += -DZYXEL_DL_DIAG_CALCULATION endif ifeq ($(CONFIG_CBT_CUSTOMIZATION),y) TARGET_CFLAGS += -DCBT_CUSTOMIZATION endif ifeq ($(CONFIG_ZYXEL_NAT_LOG),y) TARGET_CFLAGS += -DZYXEL_NAT_LOG endif ifeq ($(CONFIG_HAWAIIAN_TELCOM),y) TARGET_CFLAGS += -DHAWAIIAN_TELCOM endif ifeq ($(CONFIG_ZYXEL_REMOTE_ACCESS_PRIVILEGE),y) TARGET_CFLAGS += -DZYXEL_REMOTE_ACCESS_PRIVILEGE endif ifeq ($(CONFIG_ZYXEL_REMOTE_ACCOUNT_ACCESS_PRIVILEGE),y) TARGET_CFLAGS += -DZYXEL_REMOTE_ACCOUNT_ACCESS_PRIVILEGE endif ifeq ($(CONFIG_ABUU_CUSTOMIZATION),y) TARGET_CFLAGS += -DABUU_CUSTOMIZATION endif ifeq ($(CONFIG_ZYXEL_REMOMGMT_ONLY_HTTPS_ALLOWS_FOR_WLAN_CONNECT),y) TARGET_CFLAGS += -DZYXEL_REMOMGMT_ONLY_HTTPS_ALLOWS_FOR_WLAN_CONNECT endif ifeq ($(CONFIG_ZYXEL_CLI_IDLE_TIMEOUT),y) TARGET_CFLAGS += -DZYXEL_CLI_IDLE_TIMEOUT endif ifeq ($(CONFIG_ABOG_CUSTOMIZATION),y) TARGET_CFLAGS += -DABOG_CUSTOMIZATION endif ifeq ($(CONFIG_MSTC_TTNET_MULTI_USER),y) TARGET_CFLAGS += -DMSTC_TTNET_MULTI_USER endif ifeq ($(CONFIG_ZYXEL_CUSTOMIZATION_SYSLOG),y) TARGET_CFLAGS += -DZYXEL_CUSTOMIZATION_SYSLOG endif ifeq ($(CONFIG_$(shell echo $(CONFIG_CUSTOM_SDK_PREFIX))_TCSUPPORT_BTN_CHECK),y) TARGET_CFLAGS += -DTCSUPPORT_BTN_CHECK endif ifeq ($(CONFIG_$(shell echo $(CONFIG_CUSTOM_SDK_PREFIX))_ZYXEL_DIAGNOSTIC_SPEEDTEST),y) TARGET_CFLAGS += -DZYXEL_DIAGNOSTIC_SPEEDTEST endif ifeq ($(CONFIG_TT_CUSTOMIZATION_TR069),y) TARGET_CFLAGS += -DCONFIG_TT_CUSTOMIZATION_TR069 endif define Build/Compile +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ CC="$(TARGET_CC)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ KBUILD_HAVE_NLS=no \ EXTRA_LDFLAGS="$(TARGET_LDFLAGS)"\ EXTRA_CFLAGS="$(TARGET_CFLAGS)" \ ARCH="$(ARCH)" \ SKIP_STRIP=y \ LDLIBS="$(LDLIBS)" \ $(BB_MAKE_VERBOSE) \ all rm -rf $(PKG_INSTALL_DIR) $(FIND) $(PKG_BUILD_DIR) -lname "*busybox" -exec rm \{\} \; $(MAKE) -C $(PKG_BUILD_DIR) \ CC="$(TARGET_CC)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ EXTRA_LDFLAGS="$(TARGET_LDFLAGS)"\ EXTRA_CFLAGS="$(TARGET_CFLAGS)" \ ARCH="$(ARCH)" \ CONFIG_PREFIX="$(PKG_INSTALL_DIR)" \ LDLIBS="$(LDLIBS)" \ $(BB_MAKE_VERBOSE) \ install endef define Package/busybox/install $(INSTALL_DIR) $(1)/etc/init.d $(CP) $(PKG_INSTALL_DIR)/* $(1)/ ifeq ("$(strip ${ZCFG_PLATFORM})","QUALCOMM") $(INSTALL_BIN) ./$(FILES_DIR)/cron $(1)/etc/init.d/cron $(INSTALL_BIN) ./$(FILES_DIR)/telnet $(1)/etc/init.d/telnet $(INSTALL_BIN) ./$(FILES_DIR)/sysntpd $(1)/etc/init.d/sysntpd $(INSTALL_BIN) ./$(FILES_DIR)/ntpd-hotplug $(1)/usr/sbin/ntpd-hotplug $(INSTALL_BIN) ./$(FILES_DIR)/inetd $(1)/etc/init.d/inetd -rm -rf $(1)/lib64 ifneq ($(CONFIG_BUSYBOX_CONFIG_FEATURE_USE_INITTAB),) mkdir -p $(1)/etc/init.d $(CP) ./$(FILES_DIR)/etc/inittab $(1)/etc/inittab $(CP) ./$(FILES_DIR)/etc/init.d/rcS $(1)/etc/init.d/rcS endif else for tmp in $(init-y); do \ $(INSTALL_BIN) ./$(FILES_DIR)/$$$$tmp $(1)/etc/init.d/$$$$tmp; \ done -rm -rf $(1)/lib64 ifdef CONFIG_BUSYBOX_CONFIG_PING chmod 4777 $(1)/bin/ping endif endif endef $(eval $(call BuildPackage,busybox))