# Makefile for hal/3pp/busybox-1.2.1

### Requires these modules

REQUIRES += base/c
REQUIRES += common/gfx/boot
REQUIRES += hal/drivers/vip12xx/kboxdev


### Component specification

COMPONENT_IS_3PP   = true
COMPONENT_TARGETS += $(TARGET_NAME_VIP1200)
COMPONENT_TARGETS += $(TARGET_NAME_VIP1900)
NEEDS_ABS_PATHS    = true


### Tar archive

SRC_ARCHIVE = $(CURDIR)/busybox-1.2.1.tar.bz2
SRC_DIR     = busybox-1.2.1
PATCHES     = $(CURDIR)/PATCHES


### Targets

ramdiskboot_busybox  = $(TARGET)/ramdiskboot_busybox
plain_busybox        = $(TARGET)/plain_busybox
debug_busybox        = $(TARGET)/debug_busybox

ifneq ($(TARGET),$(TARGET_NAME_VIP1900))
BIN_TARGETS += $(ramdiskboot_busybox)
endif
BIN_TARGETS += $(plain_busybox)
BIN_TARGETS += $(debug_busybox)
SCRIPT_TARGETS += hotplug

TARGETCONFIG_TARGETS = $(TARGET)/debug_busybox.links
CONFIG_OMIT_SOURCE_DIR = yes

DOC_TARGETS = $(SRC_DIR)/LICENSE
DOC_OMIT_SOURCE_DIR = yes
DOC_PATH = ../../doc/doc


### Extra cleanup

CLEANUP_FILES += $(SRC_DIR)


### Common.mk

include ../../../makesystem/common.mk


### Dependencies

$(SRC_DIR)/Makefile: $(SRC_ARCHIVE) $(PATCHES_DEP)
	$(UNPACK_SRC_ARCHIVE)
	$(APPLY_PATCHES)
	@cp drawblip.c $(SRC_DIR)/miscutils
	@touch $@

$(TARGET)/%_busybox: %_config $(SRC_DIR)/Makefile
	@mkdir -p $(TARGET)/build_$(@F)
	@cp $< $(TARGET)/build_$(@F)/.config
	$(MAKE) -j1 -C $(SRC_DIR) O=$(CURDIR)/$(TARGET)/build_$(@F) \
	  CROSS="$(CROSS_PREFIX)" HOSTCC="$(HOST_CC)" EXTRA_CFLAGS="$(INCPATH)"
	@cp $(TARGET)/build_$(@F)/busybox $@
	@cp $(TARGET)/build_$(@F)/busybox.links $@.links

menuconfig:
	$(MAKE) -C $(SRC_DIR) menuconfig

$(TARGETCONFIG_TARGETS): $(BIN_TARGETS)

$(DOC_TARGETS): $(SRC_DIR)/Makefile
