#
# makefile for gas
#
# Created by Klaus Kaempf, kkaempf@progis.de
#
#CC=gcc
CC=cc
ARCH=ALPHA

ifeq ($(CC),gcc)
DEFS=
CFLAGS=/include=([],[-.bfd],[.config],[-.include],[-])$(DEFS)
LFLAGS=
LIBS=,GNU_CC_LIBRARY:libgcc/lib,sys$$library:vaxcrtl.olb/lib,GNU_CC_LIBRARY:crt0.obj
else
#DEFS=/define=("VMS_DEBUG","DEBUG2","DEBUG3","DEBUG5","DEBUG_SYMS","DEBUG_ALPHA")
OPT=/noopt/debug
CFLAGS=/names=(as_is,shortened)\
 /include=([],[-.bfd],[.config],[-.include],[-])$(DEFS)$(OPT)\
 /prefix=(all,except=("getopt","optarg","optopt","optind","opterr"))
#LFLAGS=/debug/map=as.map
LIBS=,sys$$library:vaxcrtl.olb/lib
endif

OBJS=targ-cpu.obj,obj-format.obj,atof-targ.obj,app.obj,as.obj,atof-generic.obj,\
  cond.obj,depend.obj,expr.obj,flonum-konst.obj,\
  flonum-copy.obj,flonum-mult.obj,frags.obj,hash.obj,input-file.obj,\
  input-scrub.obj,literal.obj,messages.obj,output-file.obj,read.obj,\
  subsegs.obj,symbols.obj,write.obj,listing.obj,ecoff.obj,stabs.obj,sb.obj,\
  macro.obj,ehopt.obj,dw2gencfi.obj,dwarf2dbg.obj,remap.obj

LIBIBERTY = [-.libiberty]libiberty.olb

LIBBFD = [-.bfd]libbfd.olb
LIBOPCODES = [-.opcodes]libopcodes.olb
BFDDEP = [-.bfd]bfd.h

all: as.exe

as.exe: $(OBJS) $(LIBOPCODES) $(LIBBFD) $(LIBIBERTY)
	link$(LFLAGS)/exe=$@ $(OBJS),$(LIBOPCODES)/lib,$(LIBBFD)/lib,$(LIBIBERTY)/lib$(LIBS)

ifneq ($(CC),gcc)
# Work-around a DEC-C bug.
targ-cpu.obj: targ-cpu.c targ-cpu.h
	      $(COMPILE.c) /noopt/obj=$@ $<
endif

clean:
	$$ purge
	$(RM) *.obj;
	$(RM) *.exe;
	$(RM) atof-targ.c;
	$(RM) obj-format.c;
	$(RM) obj-format.h;
	$(RM) targ-env.h;
	$(RM) targ-cpu.h;
	$(RM) targ-cpu.c;
