##************************************************************************
##**
##**  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
##**  ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
##**  TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR
##**  A PARTICULAR PURPOSE.
##**
##**  Copyright (C) 1993 - 1995 Microsoft Corporation. All Rights Reserved.
##**
##**  makefile
##**
##**  to build a debug version:
##**       NMAKE
##**  to build a non debug version:
##**       NMAKE DEBUG=NO
##**
##**  to build a debug version for gui:
##**       NMAKE GUI=
##**  to build a non debug version for gui:
##**       NMAKE GUI= DEBUG=NO
##**
##**  HISTORY:
##**     04/12/94       created.
##**
##************************************************************************

!ifdef MASTER_MAKE
BUILD_BITS=16
BUILD_TYPE=32
!INCLUDE $(DDKROOT)\master.mk
!endif

INCLUDES=-I..\..\..\inc

DEF =$(DEF) -DDREAM95

!ifndef GUI
!if "$(DEBUG)" == "NO"
SUBDIR = release
COPT    = $(DEF)
AOPT    = -DDBG=0 $(DEF)
LOPT    = 
!else
SUBDIR = debug
COPT    =-Zi -DDEBUG $(DEF)
AOPT    =-Zi -DDBG=1 $(DEF)
LOPT    =/CO
!endif
!else
!if "$(DEBUG)" == "NO"
SUBDIR = cr_rel
COPT    = -DGUI $(DEF)
AOPT    = -DDBG=0 $(DEF)
LOPT    = 
!else
SUBDIR = cr_deb
COPT    =-DGUI -Zi -DDEBUG $(DEF)
AOPT    =-Zi -DDBG=1 $(DEF)
LOPT    =/CO
!endif
!endif

BASE	=dream95
NAME    =dream95
EXT     =drv
GOALS   =$(NAME).$(EXT) $(NAME).sym
LIBS    =mdllcew libw mmsystem
OBJS    =assemu.obj drvproc.obj init.obj dreamirq.obj midia.obj midiin.obj \
         midiout.obj midifix.obj vxdiface.obj wavea.obj wavein.obj \
	mixer.obj controls.obj mix_objs.obj volume.obj \
	waveout.obj wavefix.obj commona.obj ApiVxd.obj

AINCS =
CINCS =msmpu401.h resource.h dream94.h dream.h

# rc -r cmd line is really close to the 128-byte limit, so changed 0x0004L to 4L
ROPT =  $(DEF) /dDS_3DLOOK^=4L /dDS_CONTEXTHELP^=0x2000L #from sdk\inc32\winuser.h

CC      =cl -c -nologo -W3 -Alnw -Oxws -Zp -Gs $(COPT) -DIS_16 $(INCLUDES)
##CC      =cl -c -nologo -W3 -Alnw -Oxws -Zp -Gs /Fc $(COPT) -DIS_16 $(INCLUDES)
ASM     =ml -c -Zm -D?QUIET -D?MEDIUM $(AOPT) -DIS_16 $(INCLUDES)
LINK    =link $(LOPT) /ALIGN:16/ONERROR:NOEXE/MAP
RC      =rc -r $(ROPT) -DIS_16 $(INCLUDES)
RCLINK  =rc $(ROPT) $(INCLUDES)

goal: makedir $(GOALS)

makedir:
	@md $(SUBDIR) >nul
	@cd $(SUBDIR)

drvproc.obj: ..\drvproc.c
        $(CC) -NT MIDI ..\$*.c

commona.obj: ..\commona.asm
        $(ASM) -DSEGNAME=MIDI ..\$*.asm

init.obj: ..\init.c
        $(CC) -NT MIDI ..\$*.c

assemu.obj: ..\assemu.asm
        $(ASM) -DSEGNAME=MIDI ..\$*.asm

dreamirq.obj: ..\dreamirq.asm
        $(ASM) -DSEGNAME=_FIX ..\$*.asm

midia.obj: ..\midia.asm
        $(ASM) -DSEGNAME=MIDI ..\$*.asm

midifix.obj: ..\midifix.c
        $(CC) -NT _FIX ..\$*.c

midiin.obj: ..\midiin.c
        $(CC) -NT MIDI ..\$*.c

midiout.obj: ..\midiout.c
        $(CC) -NT MIDI ..\$*.c

wavea.obj: ..\wavea.asm
        $(ASM) -DSEGNAME=WAVE ..\$*.asm

wavefix.obj: ..\wavefix.c
        $(CC) -NT _FIX ..\$*.c

wavein.obj: ..\wavein.c
        $(CC) -NT WAVE ..\$*.c

waveout.obj: ..\waveout.c
        $(CC) -NT WAVE ..\$*.c

volume.obj      : ..\$*.c
        $(CC) -NT MIXER ..\$*.c

mixer.obj       : ..\$*.c
        $(CC) -NT MIXER ..\$*.c

mix_objs.obj    : ..\$*.c
        $(CC) -NT MIXER ..\$*.c

controls.obj    : ..\$*.c
        $(CC) -NT MIXER ..\$*.c


vxdiface.obj: ..\vxdiface.c
        $(CC) -NT MIDI ..\$*.c

ApiVxd.obj: ..\ApiVxd.c
        $(CC) -NT MIDI ..\$*.c

$(NAME).res:  ..\$(NAME).rc ..\$(NAME).rcv
        $(RC) -fo$(NAME).res ..\$(NAME).rc

$(NAME).$(EXT) $(NAME).map: $(OBJS) ..\$(NAME).def $(NAME).res
        $(LINK) @<<
$(OBJS: =+^
),
$(NAME).$(EXT),
$(NAME).map,
$(LIBS),
..\$(NAME).def
<<
        $(RCLINK) $(NAME).res $(NAME).$(EXT)

$(NAME).sym: $(NAME).map
        mapsym $(NAME).map

clean:
	-@cd $(SUBDIR)
	-@del *.obj
        -@del *.map
        -@del *.sym
        -@del $(NAME).$(EXT)
		-@del *.res
		-@del *.pdb
	-@cd..
	-@rd $(SUBDIR)

##################### depend #####################

depend:
    mv makefile makefile.old
    sed "/^# START Dependencies/,/^# END Dependencies/D" makefile.old > makefile
    -del makefile.old
    echo # START Dependencies >> makefile
    includes -l *.c *.asm >> makefile
    echo # END Dependencies >> makefile

##################################################
# START Dependencies 

drvproc.obj: ..\drvproc.c ..\dream94.h

vxdiface.obj: ..\vxdiface.c ..\dream94.h

ApiVxd.obj: ..\ApiVxd.c ..\dream94.h

init.obj: ..\init.c ..\dream94.h

inita.obj: ..\assemu.asm ..\dream94.inc

midifix.obj: ..\midifix.c ..\dream94.h

midia.obj: ..\midia.asm ..\dream94.inc

libinit.obj: ..\libinit.asm

midiin.obj: ..\midiin.c ..\dream94.h

midiout.obj: ..\midiout.c ..\dream94.h

wavefix.obj: ..\wavefix.c ..\dream94.h

wavea.obj: ..\wavea.asm ..\dream94.inc

dream94.obj: ..\dreamirq.asm ..\dream94.inc

wavein.obj: ..\wavein.c ..\dream94.h

waveout.obj: ..\waveout.c ..\dream94.h

commona.obj: ..\commona.asm ..\dream94.inc  

assemu.obj: ..\assemu.asm ..\dream94.inc

dreamirq.obj: ..\dreamirq.asm ..\dream94.inc

volume.obj: ..\volume.c ..\mixstrng.h ..\drmpu401.h ..\mixer.h

mixer.obj: ..\mixer.c ..\mixstrng.h ..\drmpu401.h ..\mixer.h

mix_objs.obj: ..\mix_objs.c ..\mixstrng.h ..\drmpu401.h ..\mixer.h

controls.obj: ..\controls.c ..\mixstrng.h ..\drmpu401.h ..\mixer.h

# END Dependencies
