
#  Five ways to install an interrupt handler example makefile
#  Built using MSVC\C++ v4.0 and MASM6.11 or Watcom 10.5 and WASM
#  Makefile scripted to use Polymake
#
#  Copyright (c) 1996 Tenberry Software, Inc.
#  All Rights Reserved

all : handlerc.exe handlrcm.exe

4GDIR=..\..
PESTUB=$(4GDIR)\bin\pestub.exe
WCSTUB=$(4GDIR)\bin\stub.exe
MSVC4Path=k:\msvc\msvc41
MASM611Path=k:\masm611
MSVC4Env :
  @%setenv PATH=.;$(MSVC4Path)\BIN;$(MSVC4Path)\BIN\WIN95;$(MASM611Path)\bin;
  @%setenv INCLUDE=.;$(4GDIR)\include;$(MSVC4Path)\INCLUDE;
  @%setenv LIB=.;$(4GDIR)\lib;$(MASM611Path)\lib;$(MSVC4Path)\LIB;
  @%setenv MSDEVDIR=$(MSVC4Path)
Watcom105Path=k:\watcom\wc105
Watcom105Env :
  @%setenv PATH=$(Watcom105Path)\binw;$(Watcom105Path)\binnt
  @%setenv LIB=.;$(Watcom105Path)\lib386\dos;$(Watcom105Path)\lib286\dos;$(Watcom105Path)\lib386;$(Watcom105Path)\lib286;
  @%setenv INCLUDE=.;$(4GDIR)\include;$(Watcom105Path)\h;
  @%setenv WATCOM=$(Watcom105Path)

AOPTS = /coff /c /DMSVC40
COPTS = /c /G3 /Z7 /I. /DMSVC40
LIBS = $(MSVC4Path)\LIB\LIBC.LIB \
	$(4GDIR)\LIB\KERNEL32.LIB $(4GDIR)\LIB\PED32API.LIB

.c.obj :
    @%do MSVC4Env
   :cl $(COPTS) $<

.asm.obj :
    @%do MSVC4Env
	:ml $(AOPTS) $<

# COMBINATION PROGRAM USES ALL OF THE FIVE METHODS IN ONE PROGRAM
# Microsoft

handlrcm.exe: handlrcm.obj hndlintm.obj bmrmhndm.obj handlrcm.def \
   hndlinam.obj $(LIBS) 
    @%do MSVC4Env
    :link <@<
/DEBUG
/DEBUGTYPE:CV
/SUBSYSTEM:CONSOLE
/INCREMENTAL:NO
/NOD
/PDB:NONE
/OUT:handlrcm.exe
/MAP:handlrcm.map
/DEF:handlrcm.def
/STUB:$(PESTUB)
/STACK:400000,400000
/HEAP:400000,400000
$[m, *.obj, $**]
$[m, *.lib, $**]
<
   :$(4GDIR)\bin\pe2dbg $*.exe
	:$(4GDIR)\bin\w32patch -T $*.exe
   
handlrcm.obj: handlerc.c handlerc.h
    @%do MSVC4Env
   :cl $(COPTS) /Fohandlrcm.obj $<

hndlintm.obj: hndlint.c handlerc.h
    @%do MSVC4Env
   :cl $(COPTS) /Fohndlintm.obj $<

bmrmhndm.obj: bmrmhand.asm
    @%do MSVC4Env
	:ml $(AOPTS) /Fobmrmhndm.obj $<

hndlinam.obj: hndlint.asm
    @%do MSVC4Env
	:ml $(AOPTS) /Fohndlinam.obj $<

handlrcm.def: makefile
   @echo NAME  HANDLERCM                              >  handlrcm.def
   @echo DESCRIPTION "PE HANDLERC Example Program"    >> handlrcm.def
   @echo VERSION 1.0                                  >> handlrcm.def
   @echo CODE  PRELOAD MOVEABLE DISCARDABLE           >> handlrcm.def
   @echo DATA  PRELOAD SINGLE                         >> handlrcm.def

# COMBINATION PROGRAM USES ALL OF THE FIVE METHODS IN ONE PROGRAM
# Watcom and Metaware

handlerc.exe: handlerc.obj hndlint.obj bmrmhand.obj
	@%do Watcom105Env
	$(4GDIR)\bin\glu -dbg -auto -format lin -map -stub $(WCSTUB) handlerc hndlint bmrmhand $(4GDIR)\lib\dos32wc.lib

handlerc.obj: handlerc.c handlerc.h
	@%do Watcom105Env
	:wcc386 /d2 /mf /s handlerc.c /fo=handlerc.obj /w3

hndlint.obj: hndlint.c handlerc.h
	@%do Watcom105Env
	:wcc386 /d2 /mf /s hndlint.c /fo=hndlint.obj /w3

bmrmhand.obj: bmrmhand.asm
	@%do Watcom105Env
	wasm -3s bmrmhand.asm
