#
# Makefile for libopcodes under openVMS VAX and Alpha
#
# For use with gnu-make for vms
#
# Created by Klaus K"ampf, kkaempf@progis.de
#
#
ifeq ($(ARCH),ALPHA)
OBJS=alpha-dis.obj,alpha-opc.obj,dis-init.obj,dis-buf.obj,disassemble.obj
FORMAT=OBJ_EVAX
ARCHDEF="ARCH_alpha"
else
OBJS=vax-dis.obj,dis-buf.obj,disassemble.obj
FORMAT=OBJ_VAX
ARCHDEF="ARCH_vax"
endif

ifeq ($(CC),gcc)
DEFS=/define=($(FORMAT))
CFLAGS=/include=([],[-.include],[-.bfd])$(DEFS)
else
DEFS=/define=($(FORMAT))
CFLAGS=/noopt/debug/include=([],[-.include],[-.bfd])$(DEFS)\
/name=(as_is,shortened)/warnings=disable=(missingreturn,longextern)
endif

libopcodes.olb: sysdep.h $(OBJS)
	purge
	lib/create libopcodes *.obj

disassemble.obj: disassemble.c
	$(CC)$(CFLAGS)/define=($(ARCHDEF)) $<

sysdep.h: [-.bfd.hosts]$(ARCH)vms.h
	$(CP) $< $@

clean:
	$$ purge
	$(RM) *.obj;
	$(RM) sysdep.h;
	$(RM) libopcodes.olb;
