# Makefile for rcsfront

# default target
default:
	@echo "Available targets:"
	@echo "	emxos2 emxos2-debug emxdos emxnt"
	@echo "	mscos2 mscos2-debug mscdos mscnt mscnt-debug"
	@echo "	w32os2 w32os2-debug w32nt w32nt-debug"
	@echo "	w16os2 w16os2-debug w16dos w16dos-debug"

# emx 0.9 (gcc) -> 32-bit OS/2 executables
emxos2:
	$(MAKE) all CHAIN="" \
	CC="gcc -Zomf -O" O=".obj" \
	LDFLAGS="-s -Zstack 512 -Zcrtdll -o ./" DEF="cio.def"
emxos2-debug:
	$(MAKE) all CHAIN="" \
	CC="gcc -g" O=".o" LDFLAGS="-o ./"

# emx 0.9 (gcc) -> 32-bit DOS executables
emxdos:
	$(MAKE) all CHAIN="" \
	CC="gcc -O" O=".o" LDFLAGS="-s -o ./" EXTRA="pipe.o"

# emx 0.9 (gcc) -> 32-bit NT/Win95 executables
emxnt:
	$(MAKE) all CHAIN="" \
	CC="gcc -Zwin32 -Zcrtdll=rsxntcs -O" O=".o" \
	LDFLAGS="-s -o ./" EXTRA="pipe.o"

# Microsoft C 6.00A -> 16-bit OS/2 (and DOS, family mode) executables
mscos2:
	$(MAKE) all CHAIN="" \
	CC="cl -nologo -AS -W1 -J -Zap -G2s -Ogtce -DPIPES" O=".obj" \
	LDFLAGS="setargv.obj -Lp -F 4000 -Fe" \
	EXTRA="pipe.obj" DEF="cio.def" LINK="/NOE"
mscos2-debug:
	$(MAKE) all CHAIN="" \
	CC="cl -nologo -AS -W1 -J -Ziap -G2 -Od -DPIPES" O=".obj" \
	LDFLAGS="setargv.obj -Lp -F 4000 -Fe" \
	EXTRA="pipe.obj" DEF="cio.def" LINK="/NOE"

# Microsoft C 6.00A -> 16-bit DOS-only executables
mscdos:
	$(MAKE) all NORMAL="" \
	CC="cl -nologo -AS -W1 -J -Zap -G2s -Ogtce" O=".obj" \
	LDFLAGS="setargv.obj -Lr -F 4000 -Fe" \
	EXTRA="pipe.obj" LINK="/NOE"

# Microsoft C 10.00 -> 32-bit Win32 executables
mscnt:
	$(MAKE) all CHAIN="" \
	CC="cl -nologo -MD -W1 -J -Zp -Gs -Ogti -DPIPES" O=".obj" \
	LDFLAGS="setargv.obj -F 50000 -Fe" \
	EXTRA="pipe.obj"
mscnt-debug:
	$(MAKE) all CHAIN="" \
	CC="cl -nologo -W1 -J -Zip -Gs -Od -DPIPES" O=".obj" \
	LDFLAGS="setargv.obj -F 50000 -Fe" \
	EXTRA="pipe.obj"

# Watcom C/C++ 10.5 -> 32-bit OS/2 executables
w32os2:
	$(MAKE) all NORMAL="" \
	CC="wcl386 -bt=os2v2 -zq -Zp1 -s -Ox" O=".obj" \
	LDFLAGS="-l=os2v2 -k0x50000 -Fe=" EXTRA="pipe.obj mktemp.obj"
w32os2-debug:
	$(MAKE) all NORMAL="" \
	CC="wcl386 -bt=os2v2 -zq -d2 -Zp1 -s -Od" O=".obj" \
	LDFLAGS="-l=os2v2 -k0x50000 -Fe=" EXTRA="pipe.obj mktemp.obj"

# Watcom C/C++ 10.5 -> 32-bit NT executables
w32nt:
	$(MAKE) all NORMAL="" \
	CC="wcl386 -bt=nt -zq -Zp1 -s -Ox" O=".obj" \
	LDFLAGS="-l=nt -k0x50000 -Fe=" EXTRA="pipe.obj mktemp.obj"
w32nt-debug:
	$(MAKE) all NORMAL="" \
	CC="wcl386 -bt=nt -zq -d2 -Zp1 -s -Od" O=".obj" \
	LDFLAGS="-l=nt -k0x50000 -Fe=" EXTRA="pipe.obj mktemp.obj"

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

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

CHAIN = chain
NORMAL = normal

CFLAGS = -DOS2

all:  cii.exe coo.exe

.SUFFIXES: .c $O

.c$O:
	$(CC) $(CFLAGS) -c $*.c

cii$(CHAIN).exe: cii$O $(DEF)
	$(CC) cii$O $(LDFLAGS)$@ $(DEF)

cii$(NORMAL).exe: cio$O $(EXTRA) $(DEF)
	$(CC) cio$O $(EXTRA) $(LDFLAGS)$@ $(DEF)

coo.exe: cio$O $(EXTRA) $(DEF)
	$(CC) cio$O $(EXTRA) $(LDFLAGS)$@ $(DEF)
