# Makefile for GNU diff, diff3, sdiff, and cmp using SAS/C 6.2

CC = sc

DEFS =	DEF=STDC_HEADERS=1 DEF=HAVE_STRERROR=1 DEF=USG=1 \
	DEF=HAVE_MEMCHR=1 DEF=direct=dirent DEF=SYSDIR=1 \
	DEF=HAVE_TIME_H=1 DEF=HAVE_FCNTL_H=1 DEF=AMIGA=1 \
	DEF=VOID_CLOSEDIR=1

CFLAGS = OPT IGN=85+94+100+104+154+161+304
LDFLAGS = LINK STRIPDBG
LIBS = 

# Object files for diff only.
objs=diff.o analyze.o io.o context.o \
     ed.o normal.o util.o dir.o fnmatch.o \
     regex.o side.o ifdef.o version.o \
     getopt.o getopt1.o alloca.o

all: diff diff3 sdiff cmp

.c.o:
	$(CC) $(CFLAGS) $(DEFS) $<

diff: $(objs)
	$(CC) TO=$@ $(LDFLAGS) $(objs) $(LIBS)

diff3: diff3.o getopt.o getopt1.o version.o alloca.o
	$(CC) TO=$@ $(LDFLAGS) diff3.o getopt.o getopt1.o version.o\
	alloca.o $(LIBS)

sdiff: sdiff.o getopt.o getopt1.o version.o alloca.o
	$(CC) TO=$@ $(LDFLAGS) sdiff.o getopt.o getopt1.o version.o\
	alloca.o $(LIBS)

cmp: cmp.o getopt.o getopt1.o error.o xmalloc.o alloca.o
	$(CC) TO=$@ $(LDFLAGS) cmp.o getopt.o getopt1.o error.o\
	xmalloc.o alloca.o $(LIBS)

diff.o: diff.c diff.h system.h regex.h getopt.h fnmatch.h
analyze.o: analyze.c diff.h system.h
io.o: io.c diff.h system.h
context.o: context.c diff.h system.h regex.h
ed.o: ed.c diff.h system.h
normal.o: normal.c diff.h system.h
util.o: util.c diff.h system.h
dir.o: dir.c diff.h system.h
fnmatch.o: fnmatch.c diff.h system.h fnmatch.h
regex.o: regex.c diff.h system.h regex.h
side.o: side.c diff.h system.h
ifdef.o: ifdef.c diff.h system.h
version.o: version.c diff.h system.h
getopt.o: getopt.c diff.h system.h getopt.h
getopt1.o: getopt1.c diff.h system.h getopt.h
alloca.o: alloca.c diff.h system.h
cmp.o: cmp.c system.h getopt.h
diff3.o: diff3.c system.h getopt.h
sdiff.o: sdiff.c system.h getopt.h
xmalloc.o: xmalloc.c

diff3.o: diff3.c
	$(CC) $(CFLAGS) $(DEFS) DEF=DIFF_PROGRAM="diff" diff3.c

sdiff.o: sdiff.c
	$(CC) $(CFLAGS) $(DEFS) DEF=DIFF_PROGRAM="diff" DEF=DEFAULT_EDITOR="memacs" sdiff.c
