summaryrefslogtreecommitdiffstats
path: root/toolchain/elf2flt/elf2flt.mk
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/elf2flt/elf2flt.mk')
-rw-r--r--toolchain/elf2flt/elf2flt.mk48
1 files changed, 48 insertions, 0 deletions
diff --git a/toolchain/elf2flt/elf2flt.mk b/toolchain/elf2flt/elf2flt.mk
new file mode 100644
index 000000000..b796ed987
--- /dev/null
+++ b/toolchain/elf2flt/elf2flt.mk
@@ -0,0 +1,48 @@
+#############################################################
+#
+# elf2flt
+#
+#############################################################
+
+# we keep a local checkout of uClinux CVS
+ELF2FLT_SOURCE:=$(ELF2FLT_DIR)/elf2flt
+ELF2FLT_DIR:=$(TOOL_BUILD_DIR)/elf2flt
+ELF2FLT_BINARY:=elf2flt
+
+$(ELF2FLT_DIR)/.unpacked:
+ cp -r toolchain/elf2flt/elf2flt "$(TOOL_BUILD_DIR)/elf2flt"
+ touch $(ELF2FLT_DIR)/.unpacked
+
+$(ELF2FLT_DIR)/.patched: $(ELF2FLT_DIR)/.unpacked
+ifeq ($(strip $(ARCH)),nios2)
+ $(SED) "s,STAGING_DIR,$(STAGING_DIR),g;" toolchain/elf2flt/elf2flt.nios2.conditional
+ $(SED) "s,CROSS_COMPILE_PREFIX,$(REAL_GNU_TARGET_NAME),g;" toolchain/elf2flt/elf2flt.nios2.conditional
+ toolchain/patch-kernel.sh $(ELF2FLT_DIR) toolchain/elf2flt elf2flt.nios2.conditional
+endif
+ touch $(ELF2FLT_DIR)/.patched
+
+$(ELF2FLT_DIR)/.configured: $(ELF2FLT_DIR)/.patched
+ (cd $(ELF2FLT_DIR); rm -rf config.cache; \
+ $(ELF2FLT_DIR)/configure \
+ --with-bfd-include-dir=$(BINUTILS_DIR1)/bfd/ \
+ --target=$(REAL_GNU_TARGET_NAME) \
+ --with-libbfd=$(BINUTILS_DIR1)/bfd/libbfd.a \
+ --with-libiberty=$(BINUTILS_DIR1)/libiberty/libiberty.a \
+ --prefix=$(STAGING_DIR))
+ touch $(ELF2FLT_DIR)/.configured
+
+$(ELF2FLT_DIR)/$(ELF2FLT_BINARY): $(ELF2FLT_DIR)/.configured
+ $(MAKE) -C $(ELF2FLT_DIR) all
+ $(MAKE) -C $(ELF2FLT_DIR) install
+
+elf2flt: uclibc_target uclibc-configured binutils gcc $(ELF2FLT_DIR)/$(ELF2FLT_BINARY)
+
+elf2flt-clean:
+ rm -rf $(ELF2FLT_SOURCE)
+
+elf2flt-dirclean:
+ rm -rf $(ELF2FLT_SOURCE)
+
+ifeq ($(strip $(BR2_ELF2FLT)),y)
+TARGETS+=elf2flt
+endif