#
# This file is subject to the terms and conditions of the GNU General Public
# License.  See the file "COPYING" in the main directory of this archive
# for more details.
#
# Copyright (C) 1995, 1998, 2001, 2002 by Ralf Baechle
# Copyright (C) 2004  Maciej W. Rozycki
#

#
# Some DECstations need all possible sections of an ECOFF executable
#
ifdef CONFIG_MACH_DECSTATION
  E2EFLAGS = -a
else
  E2EFLAGS =
endif

#
# Drop some uninteresting sections in the kernel.
# This is only relevant for ELF kernels but doesn't hurt a.out
#
drop-sections	= .reginfo .mdebug .comment .note .pdr .options .MIPS.options
strip-flags	= $(addprefix --remove-section=,$(drop-sections))

quiet_cmd_stripvm = STRIP   $@
      cmd_stripvm = $(STRIP) -s -R .comment $< -o $@

VMLINUX = vmlinux

all: vmlinux.ecoff vmlinux.srec addinitrd

vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX)
	$(obj)/elf2ecoff $(VMLINUX) vmlinux.ecoff $(E2EFLAGS)

$(obj)/elf2ecoff: $(obj)/elf2ecoff.c
	$(HOSTCC) -o $@ $^

$(obj)/vmlinux.bin: $(VMLINUX)
	$(OBJCOPY) -O binary $(strip-flags) $(VMLINUX) $(obj)/vmlinux.bin

$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin
	$(call if_changed,gzip)

$(obj)/vmlinux.elf: $(VMLINUX)
	$(call if_changed,strip)

$(obj)/vmlinux.elf.gz: $(obj)/vmlinux.elf
	$(call if_changed,gzip)

vmlinux.strip: $(VMLINUX)
	$(call if_changed,stripvm)

vmlinux.srec: $(VMLINUX)
	$(OBJCOPY) -S -O srec $(strip-flags) $(VMLINUX) $(obj)/vmlinux.srec

$(obj)/addinitrd: $(obj)/addinitrd.c
	$(HOSTCC) -o $@ $^

clean-files += addinitrd \
	       elf2ecoff \
	       vmlinux.bin \
	       vmlinux.bin.gz \
	       vmlinux.elf \
	       vmlinux.elf.gz \
	       vmlinux.ecoff \
	       vmlinux.srec
