# Makefile for GNU DIFF 1.15

# Microsoft C 6.00A -> 16-bit OS/2 (and DOS, family mode) executables
mscos2:
	$(MAKE) all \
	CC="cl -nologo -AC" \
	CFLAGS="-W1 -J -Zp -G2s -Ocegt -D__STDC__ -DOS2" \
	LDFLAGS="setargv.obj -Lp -F 8000 -Fe" \
	DEF="diff.def" LINK="/NOE"
mscos2-debug:
	$(MAKE) all \
	CC="cl -nologo -AC" \
	CFLAGS="-W1 -J -Zip -G2 -Od -D__STDC__ -DOS2" \
	LDFLAGS="setargv.obj -Lp -F 8000 -Fe" \
	DEF="diff.def" LINK="/NOE"

# Microsoft C 6.00A -> 16-bit DOS-only executables
mscdos:
	$(MAKE) all \
	CC="cl -nologo -AC" \
	CFLAGS="-W1 -J -Zp -G2s -Ocegt -D__STDC__" \
	LDFLAGS="setargv.obj -Lr -F 8000 -Fe" LINK="/NOE"

# Watcom C/C++ 10.5 -> 16-bit OS/2 executables
w16os2:
	$(MAKE) all \
	CC="wcl -mc -bt=os2 -zq" CFLAGS="-Zp1 -s -Ox -DOS2 -DMSDOS" \
	LDFLAGS="-l=os2 -k0x8000 -Fe=" EXTRA="mktemp.obj"
w16os2-debug:
	$(MAKE) all \
	CC="wcl -ml -bt=os2 -zq -d2" CFLAGS="-Zp1 -s -Od -DOS2 -DMSDOS" \
	LDFLAGS="-l=os2 -k0x8000 -Fe=" EXTRA="mktemp.obj"

# Watcom C/C++ 10.5 -> 16-bit DOS executables
w16dos:
	$(MAKE) all \
	CC="wcl -mc -bt=dos -zq" CFLAGS="-Zp1 -s -Ox -DMSDOS" \
	LDFLAGS="-l=dos -k0x8000 -Fe=" EXTRA="mktemp.obj"
w16dos-debug:
	$(MAKE) all \
	CC="wcl -ml -bt=dos -zq -d2" CFLAGS="-Zp1 -s -Od -DMSDOS" \
	LDFLAGS="-l=dos -k0x8000 -Fe=" EXTRA="mktemp.obj"

DEFS    = -DUSG -DPROTO

OBJ =	diff.obj analyze.obj io.obj context.obj ed.obj normal.obj \
	util.obj dir.obj ifdef.obj version.obj getopt.obj getopt1.obj \
	regex.obj merged.obj hrealloc.obj pipe.obj $(EXTRA)
OBJ3 =	diff3.obj version.obj getopt.obj getopt1.obj pipe.obj $(EXTRA)

.SUFFIXES: .c .obj

.c.obj:
	$(CC) $(CFLAGS) $(DEFS) -I. -c $*.c

all: diff.exe diff3.exe

diff.exe: $(OBJ) $(DEF)
	$(CC) $(OBJ) $(LDFLAGS)$@ $(LIBS) $(DEF)

diff3.exe: $(OBJ3) $(DEF)
	$(CC) $(OBJ3) $(LDFLAGS)$@ $(LIBS) $(DEF)

$(OBJ): diff.h

context.obj diff.obj: regex.h

clean:
	del *.obj
