include ../../$(CONFIG)

GARNAME = binutils
GARVERSION = $(BINUTILS_VER)
CATEGORIES = toolchain
DEPENDS =
LIBDEPS =

DESCRIPTION = binutils

DISTFILES = $(BINUTILS_SRC) $(BINUTILS_PATCH_SCRIPT) $(BINUTILS_SCRIPT_FILE) $(BINUTILS_PATCHES) $(FAKE_BINUTILS_PATCH)

CONFIGURE_ARGS = --host=$(HOST) --build=$(BUILD) --target=$(TARGET) --prefix=$(COMPILER_DIR) --program-prefix=$(TOOLCHAIN_PREFIX)

CONFIGURE_SCRIPTS = $(WORKSRC)/configure $(WORKDIR)/fake-binutils/configure
BUILD_SCRIPTS = $(WORKSRC)/Makefile $(WORKDIR)/fake-binutils/Makefile
INSTALL_SCRIPTS = $(WORKSRC)/Makefile

include ../category.mk

pre-configure:
	[ x"$(BINUTILS_PATCH_SCRIPT)" == x ] || \
		$(DOWNLOADDIR)/$(BINUTILS_PATCH_SCRIPT) $(DOWNLOADDIR)/$(BINUTILS_SCRIPT_FILE) $(WORKSRC)
	for FILE in $(BINUTILS_PATCHES); do \
	  patch -d $(WORKSRC) -p1 < $(DOWNLOADDIR)/$$FILE; \
	done
	cp -a $(WORKSRC) $(WORKDIR)/fake-binutils
	cd  $(WORKDIR)/fake-binutils && \
	cat ../../$(DOWNLOADDIR)/$(FAKE_BINUTILS_PATCH) | patch -p2
	$(MAKECOOKIE)


pre-install: 
	$(MAKE) -C $(WORKDIR)/fake-binutils install
	mv $(COMPILER_DIR)/bin/$(TOOLCHAIN_PREFIX)ld $(COMPILER_DIR)/bin/ld_fake_native
	mv $(COMPILER_DIR)/$(TARGET)/bin/ld $(COMPILER_DIR)/$(TARGET)/bin/ld_fake_native

post-install:
	mv $(COMPILER_DIR)/bin/$(TOOLCHAIN_PREFIX)ld $(COMPILER_DIR)/bin/ld_orig
	mv $(COMPILER_DIR)/$(TARGET)/bin/ld $(COMPILER_DIR)/$(TARGET)/bin/ld_orig
	cp -af /scratchbox/tools/bin/sb_ld_wrapper $(COMPILER_DIR)/bin/$(TOOLCHAIN_PREFIX)ld
	cp -af /scratchbox/tools/bin/sb_ld_wrapper $(COMPILER_DIR)/$(TARGET)/bin/ld
	$(MAKECOOKIE)
