
# enter: nmake 
# this assembles the cstrt386 versions for HX (PE)
# the object modules should then be copied to \WATCOM\LIB386\DOS

# currently there are 2 versions created, one with suffix X, the other with suffix R
# suffix X is supposed to be used with compiler options -{3|4|5}s
# suffix R is supposed to be used with compiler options -{3|4|5}r ( Watcom register calling convention)
# it's a mess.

# v2.22: CSTRTWHX.OBJ has been removed, to be replaced by INITW3OW.OBJ (DKRNL32);
# needs option disable 1030) to suppress warning "multiple start addresses found"

!include <..\dirs>

OWDIR=\watcom

OUTOW13=rel_13
OUTOW14=rel_14
OUTOW17=rel_17
OUTOW19=rel_19
OUTOW20=rel_20
INPOW13=src_13
INPOW14=src_14
INPOW17=src_17
INPOW19=src_19
INPOW20=src_20

#ASMOPT= -c -nologo -Sg -Fl$* -Fo$* -D?FLAT=0
WASMOPTS= -q -bt=DOS -ms -3s -fo=$*.OBJ 
WASMOPTR= -q -bt=DOS -ms -3r -fo=$*.OBJ 

ALL: $(OUTOW20) $(OUTOW19) $(OUTOW17) $(OUTOW14) $(OUTOW13) \
	$(OUTOW20)\CSTRTDHX.OBJ $(OUTOW20)\CSTRTDHR.OBJ $(OUTOW20)\HXOWS.LIB $(OUTOW20)\HXOWR.LIB $(OUTOW20)\MSGBOX.OBJ \
	$(OUTOW19)\CSTRTDHX.OBJ $(OUTOW19)\CSTRTDHR.OBJ $(OUTOW19)\HXOWS.LIB $(OUTOW19)\HXOWR.LIB \
	$(OUTOW17)\CSTRTDHX.OBJ $(OUTOW17)\SPAWN-HX.OBJ \
	$(OUTOW14)\CSTRT386.OBJ $(OUTOW14)\SPAWN-HX.OBJ \
	$(OUTOW13)\CSTRT386.OBJ $(OUTOW13)\CSTRT16X.OBJ $(OUTOW13)\CSTRT16Z.OBJ

#-------------------------------------------------------------------------

$(OUTOW20):
	@mkdir $(OUTOW20)

$(OUTOW20)\CSTRTDHX.OBJ: $(INPOW20)\cstrtdhx.asm Makefile
	@jwasm -q -zcw -Fo$* -Fl$* -Fo$*.OBJ $(INPOW20)\cstrtdhx.asm

$(OUTOW20)\CSTRTDHR.OBJ: $(INPOW20)\cstrtdhx.asm Makefile
	@jwasm -q -DFC -zf1  -Fl$* -Fo$*.OBJ $(INPOW20)\cstrtdhx.asm

$(OUTOW20)\HXOWS.LIB: $(OUTOW20)\spawn-hxs.obj
	@$(OWDIR)\BINNT\wlib -q -b $*.LIB -+$(OUTOW20)\spawn-hxs.obj

$(OUTOW20)\HXOWR.LIB: $(OUTOW20)\spawn-hxr.obj
	@$(OWDIR)\BINNT\wlib -q -b $*.LIB -+$(OUTOW20)\spawn-hxr.obj

$(OUTOW20)\SPAWN-HXS.OBJ: $(INPOW20)\spawn-hx.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPTS) $(INPOW20)\spawn-hx.asm
#	@jwasm -q -Fo$* -Fl$* $(INPOW20)\spawn-hx.asm

$(OUTOW20)\SPAWN-HXR.OBJ: $(INPOW20)\spawn-hx.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPTR) $(INPOW20)\spawn-hx.asm
#	@jwasm -q -Fo$* -Fl$* $(INPOW20)\spawn-hx.asm

$(OUTOW20)\MSGBOX.OBJ: $(INPOW20)\MsgBox.asm
	@jwasm -q -coff -Fo$* -Fl$* $(INPOW20)\MsgBox.asm

#-------------------------------------------------------------------------

$(OUTOW19):
	@mkdir $(OUTOW19)

$(OUTOW19)\CSTRTDHX.OBJ: $(INPOW19)\cstrtdhx.asm Makefile
	@jwasm -q -zcw -Fo$* -Fl$* -Fo$*.OBJ $(INPOW19)\cstrtdhx.asm

$(OUTOW19)\CSTRTDHR.OBJ: $(INPOW19)\cstrtdhx.asm Makefile
	@jwasm -q -DFC -zf1  -Fl$* -Fo$*.OBJ $(INPOW19)\cstrtdhx.asm

$(OUTOW19)\HXOWS.LIB: $(OUTOW19)\spawn-hxs.obj
	@$(OWDIR)\BINNT\wlib -q -b $*.LIB -+$(OUTOW19)\spawn-hxs.obj

$(OUTOW19)\HXOWR.LIB: $(OUTOW19)\spawn-hxr.obj
	@$(OWDIR)\BINNT\wlib -q -b $*.LIB -+$(OUTOW19)\spawn-hxr.obj

$(OUTOW19)\SPAWN-HXS.OBJ: $(INPOW19)\spawn-hx.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPTS) $(INPOW19)\spawn-hx.asm
#	@jwasm -q -Fo$* -Fl$* $(INPOW19)\spawn-hx.asm

$(OUTOW19)\SPAWN-HXR.OBJ: $(INPOW19)\spawn-hx.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPTR) $(INPOW19)\spawn-hx.asm
#	@jwasm -q -Fo$* -Fl$* $(INPOW19)\spawn-hx.asm

#-------------------------------------------------------------------------

$(OUTOW17):
	@mkdir $(OUTOW17)

$(OUTOW17)\CSTRTDHX.OBJ: $(INPOW17)\cstrtdhx.asm Makefile
#	@$(OWDIR)\BINNT\wasm $(WASMOPTS) $(INPOW17)\cstrtdhx.asm
	@jwasm -q -Fo$* -Fl$* $(INPOW17)\cstrtdhx.asm

$(OUTOW17)\CSTRTWHX.OBJ: $(INPOW17)\cstrtwhx.asm Makefile
#	@$(OWDIR)\BINNT\wasm $(WASMOPTS) $(INPOW17)\cstrtwhx.asm
	@jwasm -q -Fo$* -Fl$* $(INPOW17)\cstrtwhx.asm

$(OUTOW17)\HXOW.LIB: $(OUTOW17)\spawn-hx.obj
	@$(OWDIR)\BINNT\wlib -q -b $*.LIB -+$(OUTOW17)\spawn-hx.obj

$(OUTOW17)\SPAWN-HX.OBJ: $(INPOW17)\spawn-hx.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPTS) $(INPOW17)\spawn-hx.asm
#	@jwasm -q -Fo$* -Fl$* $(INPOW17)\spawn-hx.asm

#-------------------------------------------------------------------------

$(OUTOW14):
	@mkdir $(OUTOW14)

$(OUTOW14)\CSTRT386.OBJ: $(INPOW14)\cstrt386.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPTS) $(INPOW14)\cstrt386.asm

$(OUTOW14)\SPAWN-HX.OBJ: $(INPOW14)\spawn-hx.asm mzsupp\owmzhlp.inc Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPTS) $(INPOW14)\spawn-hx.asm

#-------------------------------------------------------------------------

$(OUTOW13):
	@mkdir $(OUTOW13)

$(OUTOW13)\CSTRT386.OBJ: $(INPOW13)\cstrt386.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPTS) $(INPOW13)\cstrt386.asm

$(OUTOW13)\CSTRT16X.OBJ: $(INPOW13)\cstrto16.asm Makefile
	@$(OWDIR)\BINNT\wasm -q -bt=OS2 -ms -fo=$*.OBJ $(INPOW13)\cstrto16.asm

$(OUTOW13)\CSTRT16Z.OBJ: $(INPOW13)\cstrto16.asm Makefile
	@$(OWDIR)\BINNT\wasm -q -bt=OS2 -ms -d?MZ=1 -fo=$*.OBJ $(INPOW13)\cstrto16.asm

clean:
	@del $(OUTOW20)\*.obj
	@del $(OUTOW20)\*.lib
	@del $(OUTOW19)\*.obj
	@del $(OUTOW19)\*.lib
	@del $(OUTOW17)\*.obj
	@del $(OUTOW17)\*.lib
	@del $(OUTOW14)\*.obj
	@del $(OUTOW13)\*.obj

install:
	@copy $(OUTOW20)\CSTRTDHX.OBJ $(HXINST)\OWSUPP\V20\DOS
	@copy $(OUTOW20)\CSTRTDHR.OBJ $(HXINST)\OWSUPP\V20\DOS
	@copy $(OUTOW20)\*.LIB        $(HXINST)\OWSUPP\V20\DOS
	@copy $(OUTOW19)\CSTRTDHX.OBJ $(HXINST)\OWSUPP\V19\DOS
	@copy $(OUTOW19)\CSTRTDHR.OBJ $(HXINST)\OWSUPP\V19\DOS
	@copy $(OUTOW19)\*.LIB        $(HXINST)\OWSUPP\V19\DOS
#	@copy $(OUTOW14)\SPAWN-HX.OBJ $(HXINST)\OWSUPP\V14
#	@copy $(OUTOW14)\CSTRT386.OBJ $(HXINST)\OWSUPP\V14\cstrthx.obj
	@copy $(OUTOW13)\CSTRT16X.OBJ $(HXINST)\LIB16
	@copy $(OUTOW13)\CSTRT16Z.OBJ $(HXINST)\LIB16

