##************************************************************************
##**
##**  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 with init crystal:
##**       NMAKE CRYS=Y
##**  to build a non debug version with init crystal: 
##**       NMAKE CRYS=Y DEBUG=NO
##**
##**
##************************************************************************

INCLUDES=-I..\..\include

!ifndef CRYS
AOPT =
COPT=
!ifdef DEBUG
SUBDIR = release
!else
SUBDIR = debug
!endif
!else
AOPT	=
COPT	=-DGUIL
!ifdef DEBUG
SUBDIR = cr_rel
!else
SUBDIR = cr_deb
!endif
!endif



NAME	=dream95
SYMNAME	=dream95
EXT	=vxd
GOALS	=$(NAME).$(EXT) $(SYMNAME).sym
OBJS	=cnfgmgr.obj DreamVxd.obj api.obj messages.obj startup.obj validate.obj dsound.obj drvobj.obj bufobj.obj propset.obj dreampro.obj

AINCS = ..\equates.inc

!if "$(DEBUG)" == "NO" 
COPT	=$(COPT)
AOPT	=$(AOPT)
LOPT	= 
!else
COPT	=$(COPT) -Zi -DDEBUG
AOPT	=$(AOPT) -Zi -DDEBUG
LOPT	=-debug:full
!endif

##CC	=cl -c -nologo -W3 -Zp -Gs -Ze -Ox -DIS_32 /FAcs  /Od $(COPT) $(INCLUDES)
CC	=cl -c -nologo -W3 -Zp -Gs -Ze -O2 -DIS_32 $(COPT) $(INCLUDES)
ASM	=ml -coff -DMASM6 -DBLD_COFF -I. /c -Cx -DIS_32 $(AOPT) $(INCLUDES)
LINK	=link libc.lib /incremental:no
LFLAGS	=$(LOPT)
LIBS	=vxdwraps.clb ../uuid2.lib
RC	=rc -DIS_32 $(ROPT) $(INCLUDES)

goal: makedir $(GOALS)

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

cnfgmgr.obj: ..\cnfgmgr.c
        $(CC) ..\$*.c

DreamVxd.obj:	..\$*.asm $(AINCS)
		$(ASM) ..\$*.asm

api.obj:	..\$*.asm $(AINCS)
		$(ASM) ..\$*.asm

messages.obj:	..\$*.asm $(AINCS)
		$(ASM) ..\$*.asm

startup.obj:	..\$*.asm $(AINCS)
		$(ASM) ..\$*.asm

validate.obj:	..\$*.asm $(AINCS)
		$(ASM) ..\$*.asm

dsound.obj:   ..\$*.asm ..\dsnd.inc $(AINCS)
		$(ASM) ..\$*.asm

drvobj.obj:   ..\$*.c ..\dsnd.h 
        $(CC) ..\$*.c

bufobj.obj:   ..\$*.c ..\dsnd.h 
        $(CC) ..\$*.c

propset.obj:   ..\$*.c ..\dsnd.h 
        $(CC) ..\$*.c

dreampro.obj: ..\dreampro.c
        $(CC) ..\$*.c



DESCRIPTION = $(NAME) Virtual Device	(Version 5.0)

!ifndef DEVICETYPE
DEVICETYPE = DYNAMIC
!endif

!ifndef DDB_NAME
DDB_NAME = dream95_DDB
!endif

$(NAME).$(EXT) $(NAME).map: $(OBJS) $(NAME).res
	@$(LINK) @<<$(NAME).lnk /def:<<$(NAME).def
$(LFLAGS)
-out:$(@B).$(EXT)
-map:$(@B).map
-vxd
-version:5.0
-nodefaultlib
$(OBJS)
$(LIBS)
<<
VXD $(SYMNAME) $(DEVICETYPE)
DESCRIPTION '$(DESCRIPTION)'
EXETYPE		DEV386
PROTMODE

SEGMENTS
	_LPTEXT		CLASS 'LCODE'	PRELOAD NONDISCARDABLE
	_LTEXT		CLASS 'LCODE'	PRELOAD NONDISCARDABLE
	_LDATA		CLASS 'LCODE'	PRELOAD NONDISCARDABLE
	_TEXT		CLASS 'LCODE'	PRELOAD NONDISCARDABLE
	_DATA		CLASS 'LCODE'	PRELOAD NONDISCARDABLE
	CONST		CLASS 'LCODE'	PRELOAD NONDISCARDABLE
	_TLS		CLASS 'LCODE'	PRELOAD NONDISCARDABLE
	_BSS		CLASS 'LCODE'	PRELOAD NONDISCARDABLE
	_LMSG		CLASS 'MCODE'	PRELOAD NONDISCARDABLE IOPL
	_IMSG		CLASS 'MCODE'	PRELOAD DISCARDABLE IOPL
	_ITEXT		CLASS 'ICODE'	DISCARDABLE
	_IDATA		CLASS 'ICODE'	DISCARDABLE
	_PTEXT		CLASS 'PCODE'	NONDISCARDABLE
	_PMSG		CLASS 'MCODE'	NONDISCARDABLE IOPL
	_PDATA		CLASS 'PDATA'	NONDISCARDABLE SHARED
	_STEXT		CLASS 'SCODE'	RESIDENT
	_SDATA		CLASS 'SCODE'	RESIDENT
	_DBOSTART	CLASS 'DBOCODE'	PRELOAD NONDISCARDABLE CONFORMING
	_DBOCODE	CLASS 'DBOCODE'	PRELOAD NONDISCARDABLE CONFORMING
	_DBODATA	CLASS 'DBOCODE'	PRELOAD NONDISCARDABLE CONFORMING
	_16ICODE	CLASS '16ICODE'	PRELOAD DISCARDABLE
	_RCODE		CLASS 'RCODE'
EXPORTS
	$(DDB_NAME) @1
<<
!if exist( $(DDKROOT)\bin\adrc2vxd.exe )
##	@adrc2vxd $*.$(EXT) $(NAME).res
!endif

$(SYMNAME).sym:	$(NAME).map
	mapsym -mo $(SYMNAME).sym $(NAME).map

$(NAME).res:
	$(SDK32B)\bin\$(RC) -fo $*.res -r -i $(SDKROOT)\inc16 <<$(NAME).rc
#include <ver.h>

#include "..\verinfo.h"
#define Not_VxD

#define VERSIONNAME		"$(NAME).$(EXT)\0"
#define VERSIONDESCRIPTION	"Dream Dx5 Driver\0"
#define VERSIONTYPE		VFT_VXD
//#define VERSIONSUBTYPE	VFT2_UNKNOWN
#define VERSIONSUBTYPE		UNDEFINED_DEVICE_ID

#include "..\verinfo.ver"

<<

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