#
# Makefile for binutils under openVMS/Alpha
#
# For use with gnu-make for vms
#
# Created by Klaus K"ampf, kkaempf@progis.de
#
#

# Distribution version, filled in by configure.com
VERSION=

TARGET=""evax-alpha""

ifeq ($(CC),gcc)
CFLAGS=/include=([],[-.include],[-.bfd])$(DEFS)
DEFS=/define=("TARGET=$(TARGET)")
LIBS=,GNU:[000000]libgcc/lib,sys$$library:vaxcrtl.olb/lib,GNU:[000000]crt0.obj
else
CFLAGS=/noopt/debug/include=([],[-.include],[-.bfd])$(DEFS)/warnings=disable=(missingreturn,implicitfunc)
DEFS=/define=("TARGET=$(TARGET)",\
"const=","unlink=remove",\
"_bfd_generic_get_section_contents_in_window"="_bfd_generic_get_win_section_cont",\
"_bfd_elf_section_from_bfd_section"="_bfd_elf_sec_from_bfd_sec")
LIBS=,sys$$library:vaxcrtl.olb/lib
endif

BFDLIB = [-.bfd]libbfd.olb/lib
BFDLIB_DEP = [-.bfd]libbfd.olb
LIBIBERTY_DEP = [-.libiberty]libiberty.olb
LIBIBERTY = [-.libiberty]libiberty.olb/lib
OPCODES_DEP = [-.opcodes]libopcodes.olb
OPCODES = [-.opcodes]libopcodes.olb/lib

DEBUG_OBJS = rddbg.obj,debug.obj,stabs.obj,ieee.obj,rdcoff.obj

WRITE_DEBUG_OBJS = $(DEBUG_OBJS),wrstabs.obj

BULIBS = []bucomm.obj,version.obj,filemode.obj

ADDL_DEPS = $(BULIBS),$(BFDLIB_DEP),$(LIBIBERTY_DEP)
ADDL_LIBS = $(BULIBS),$(BFDLIB),$(LIBIBERTY)

SIZEOBJS = $(ADDL_DEPS),size.obj

STRINGSOBJS = $(ADDL_DEPS),strings.obj

NMOBJS = $(ADDL_DEPS),nm.obj

OBJDUMPOBJS = $(ADDL_DEPS),objdump.obj,prdbg.obj,$(DEBUG_OBJS),$(OPCODES_DEP)

all: config.h size.exe strings.exe objdump.exe nm.exe

size.exe: $(SIZEOBJS)
	link/exe=$@ size.obj,$(ADDL_LIBS)$(LIBS)

strings.exe: $(STRINGSOBJS)
	link/exe=$@ strings.obj,$(ADDL_LIBS)$(LIBS)

nm.exe: $(NMOBJS)
	link/exe=$@ nm.obj,$(ADDL_LIBS)$(LIBS)

objdump.exe: $(OBJDUMPOBJS)
	link/exe=$@ objdump.obj,prdbg.obj,$(DEBUG_OBJS),$(BFDLIB),$(OPCODES),$(ADDL_LIBS)$(LIBS)


version.obj: version.c
	$(CC) $(CFLAGS)/define=(VERSION="""$(VERSION)""") $<

config.h:
	$$ @configure
	$(MAKE) -f makefile.vms

[-.bfd]libbfd.olb:
	$(CD) [-.bfd]
	$(MAKE) -f makefile.vms
	$(CD) [-.binutils]

[-.libiberty]libiberty.olb:
	$(CD) [-.libiberty]
	$(MAKE) -f makefile.vms
	$(CD) [-.binutils]

[-.opcodes]libopcodes.olb:
	$(CD) [-.opcodes]
	$(MAKE) -f makefile.vms
	$(CD) [-.binutils]

clean:
	$$ purge
	$(RM) *.obj;
	$(RM) *.exe;
	$(RM) config.h;
