
# 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
WASMOPT= -q -bt=DOS -ms -3r -fo=$*.OBJ 

ALL: $(OUTOW20) $(OUTOW19) $(OUTOW17) $(OUTOW14) $(OUTOW13) \
	$(OUTOW20)\CSTRTDHX.OBJ $(OUTOW20)\SPAWN-HX.OBJ $(OUTOW20)\MSGBOX.OBJ \
	$(OUTOW19)\CSTRTDHX.OBJ $(OUTOW19)\SPAWN-HX.OBJ \
	$(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$* $(INPOW20)\cstrtdhx.asm
	@jwasm -q -DFC -zf1 -Fl$(OUTOW20)\CSTRTDHR -Fo$(OUTOW20)\CSTRTDHR.OBJ $(INPOW20)\cstrtdhx.asm

$(OUTOW20)\SPAWN-HX.OBJ: $(INPOW20)\spawn-hx.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPT) $(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$* $(INPOW19)\cstrtdhx.asm
	@jwasm -q -DFC -zf1 -Fl$(OUTOW19)\CSTRTDHR -Fo$(OUTOW19)\CSTRTDHR.OBJ $(INPOW19)\cstrtdhx.asm

$(OUTOW19)\SPAWN-HX.OBJ: $(INPOW19)\spawn-hx.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPT) $(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 $(WASMOPT) $(INPOW17)\cstrtdhx.asm
	@jwasm -q -Fo$* -Fl$* $(INPOW17)\cstrtdhx.asm

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

$(OUTOW17)\SPAWN-HX.OBJ: $(INPOW17)\spawn-hx.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPT) $(INPOW17)\spawn-hx.asm
#	@jwasm -q -Fo$* -Fl$* $(INPOW17)\spawn-hx.asm
#	@$(OWDIR)\BINNT\wlib -q -b $(OUTOW17)\hxow.lib -+$*.OBJ

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

$(OUTOW14):
	@mkdir $(OUTOW14)

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

# the spawn command must be modified for HX (no environment pointer)

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

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

$(OUTOW13):
	@mkdir $(OUTOW13)

$(OUTOW13)\CSTRT386.OBJ: $(INPOW13)\cstrt386.asm Makefile
	@$(OWDIR)\BINNT\wasm $(WASMOPT) $(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 $(OUTOW19)\*.obj
	@del $(OUTOW17)\*.obj
	@del $(OUTOW17)\*.lib
	@del $(OUTOW14)\*.obj
	@del $(OUTOW13)\*.obj

install:
	@copy $(OUTOW19)\CSTRTDHX.OBJ  $(HXINST)\OWSUPP\DOS
	@copy $(OUTOW19)\SPAWN-HX.OBJ  $(HXINST)\OWSUPP\DOS
	@copy $(OUTOW19)\CSTRTDHX.OBJ  $(OWDIR)\lib386\DOS
	@copy $(OUTOW19)\SPAWN-HX.OBJ  $(OWDIR)\lib386\DOS
#	@copy $(OUTOW17)\CSTRTWHX.OBJ  $(HXINST)\OWSUPP\NT
#	@copy $(OUTOW17)\CSTRTWHX.OBJ  $(OWDIR)\lib386\nt
#	@copy $(OUTOW17)\hxow.lib      $(HXINST)\OWSUPP\DOS
#	@copy $(OUTOW17)\hxow.lib      $(OWDIR)\lib386\dos
#	@copy $(OUTOW14)\SPAWN-HX.OBJ  $(HXINST)\OWSUPP\OW14
#	@copy $(OUTOW14)\SPAWN-HX.OBJ  $(OWDIR)\lib386\dos
#	@copy $(OUTOW14)\CSTRT386.OBJ  $(HXINST)\OWSUPP\OW14\cstrthx.obj
#	@copy $(OUTOW14)\CSTRT386.OBJ  $(OWDIR)\lib386\dos\cstrthx.obj
	@copy $(OUTOW13)\CSTRT16X.OBJ  $(HXINST)\LIB16
	@copy $(OUTOW13)\CSTRT16X.OBJ  $(OWDIR)\lib286\os2
	@copy $(OUTOW13)\CSTRT16Z.OBJ  $(HXINST)\LIB16

