#
# makefile for gas
#
# Created by Klaus Kaempf, kkaempf@progis.de
#
#   Copyright (C) 2012-2019 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.
#

#CC=gcc
CC=cc

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
endif

OBJS:=targ-cpu.obj,obj-format.obj,atof-targ.obj,app.obj,as.obj,\
  atof-generic.obj,cond.obj,compress-debug.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

ifeq ($(ARCH),IA64)
OBJS:=$(OBJS),te-vms.obj
endif

LIBIBERTY = [-.libiberty]libiberty.olb
LIBBFD = [-.bfd]libbfd.olb
LIBOPCODES = [-.opcodes]libopcodes.olb

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

te-vms.obj: [.config]te-vms.c
	      $(COMPILE.c) /obj=$@ $< + sys$$library:sys$$lib_c.tlb/lib

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;