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

OBJS=getopt.obj,obstack.obj,xexit.obj,xmalloc.obj,hex.obj,\
    getopt1.obj,cplus-dem.obj,cp-demangle.obj,cp-demint.obj,\
    asprintf.obj vasprintf.obj,mkstemps.obj,filename_cmp.obj,\
    concat.obj,getruntime.obj,getpagesize.obj,getpwd.obj,xstrerror.obj,\
    xmemdup.obj,xstrdup.obj,xatexit.obj,choose-temp.obj,fnmatch.obj,\
    objalloc.obj,safe-ctype.obj,hashtab.obj,lbasename.obj,argv.obj,\
    lrealpath.obj,make-temp-file.obj,stpcpy.obj,unlink-if-ordinary.obj,\
    dwarfnames.obj

ifeq ($(CC),gcc)
CFLAGS=/include=([],[-.include])
else
# assume dec c
OPT=/noopt/debug/warnings=disable=(missingreturn)
CFLAGS=$(OPT)/include=([],[-.include])/name=(as_is,shortened)\
 /define=(HAVE_CONFIG_H=1)\
 /prefix=(all,except=("getopt","optarg","optopt","optind","opterr"))
endif

libiberty.olb: $(OBJS)
	purge
	lib/create libiberty *.obj

clean:
	$$ purge
	$(RM) *.obj;
	$(RM) libiberty.olb;
