#
# 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))
OPT=/noopt/debug
CFLAGS=$(OPT)/include=([],[-.include],[-.bfd])$(DEFS)\
 /name=(as_is,shortened)
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;
