# $FreeWRT$

include $(TOPDIR)/rules.mk
include ../rules.mk

PKG_NAME:=		uClibc
PKG_VERSION:=		0.9.28
PKG_MD5SUM:=		1ada58d919a82561061e4741fb6abd29
PKG_BUILD_DIR:=		$(TOOLCHAIN_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
SOURCE:=		$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=	http://www.uclibc.org/downloads

UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \
		-e 's/i.86/i386/' \
		-e 's/sparc.*/sparc/' \
		-e 's/arm.*/arm/g' \
		-e 's/m68k.*/m68k/' \
		-e 's/ppc/powerpc/g' \
		-e 's/v850.*/v850/g' \
		-e 's/sh64/sh/' \
		-e 's/sh[234].*/sh/' \
		-e 's/mips.*/mips/' \
		-e 's/mipsel.*/mips/' \
		-e 's/cris.*/cris/' \
)


$(DL_DIR)/$(SOURCE):
	mkdir -p $(DL_DIR)
	$(SCRIPT_DIR)/download.pl $(DL_DIR) $(SOURCE) $(PKG_MD5SUM) $(PKG_SOURCE_URL) $(MAKE_TRACE)

$(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(SOURCE)
	${EXTRACT_CMD}
	$(PATCH) $(PKG_BUILD_DIR) ./patches
	touch $(PKG_BUILD_DIR)/.unpacked

$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.unpacked
	$(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(PKG_BUILD_DIR)/Rules.mak
	$(CP) ./files/config.$(ARCH) $(PKG_BUILD_DIR)/.config
	$(SED) 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_HEADERS_DIR)\",g' \
		$(PKG_BUILD_DIR)/.config
	$(SED) 's,^.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=y,g' $(PKG_BUILD_DIR)/.config
	$(SED) 's,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g' $(PKG_BUILD_DIR)/.config
	mkdir -p $(STAGING_DIR)/usr/include
	mkdir -p $(STAGING_DIR)/usr/lib
	mkdir -p $(STAGING_DIR)/lib
	$(MAKE) -C $(PKG_BUILD_DIR) \
		PREFIX=$(STAGING_DIR) \
		DEVEL_PREFIX=/usr/ \
		RUNTIME_PREFIX=$(STAGING_DIR) \
		HOSTCC="$(HOSTCC)" \
		CPU_CFLAGS="$(TARGET_CFLAGS)" \
		pregen install_dev;
	touch $(PKG_BUILD_DIR)/.configured

$(PKG_BUILD_DIR)/lib/libc.a: $(PKG_BUILD_DIR)/.configured $(LIBFLOAT_TARGET)
	$(MAKE) -C $(PKG_BUILD_DIR) \
		PREFIX= \
		DEVEL_PREFIX=/ \
		RUNTIME_PREFIX=/ \
		HOSTCC="$(HOSTCC)" \
		CPU_CFLAGS="$(TARGET_CFLAGS)" \
		all
	touch -c $(PKG_BUILD_DIR)/lib/libc.a

$(STAGING_DIR)/lib/libc.a: $(PKG_BUILD_DIR)/lib/libc.a
	$(MAKE) -C $(PKG_BUILD_DIR) \
		PREFIX=$(STAGING_DIR)/ \
		DEVEL_PREFIX=/ \
		RUNTIME_PREFIX=/ \
		install_runtime
	$(MAKE) -C $(PKG_BUILD_DIR) \
		PREFIX=$(STAGING_DIR)/ \
		DEVEL_PREFIX=/ \
		RUNTIME_PREFIX=/ \
		install_dev
	echo $(PKG_VERSION) >$(STAGING_DIR)/uclibc_version
	touch -c $(STAGING_DIR)/lib/libc.a

source: $(DL_DIR)/$(SOURCE)
prepare: $(PKG_BUILD_DIR)/.configured
compile: $(PKG_BUILD_DIR)/lib/libc.a
install: $(STAGING_DIR)/lib/libc.a $(UCLIBC_TARGETS)
clean: 
	rm -rf $(PKG_BUILD_DIR)
