#
# 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,\
    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

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;
