Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

261 lines
6.7 KiB

#
# constructs mmsystem DLL
#
# Defines:
# DEBUG - Enable debug code
# STRICT - Build a version with STRICT enabled
#
NAME =mmsystem
EXT =dll
OBJFIRST=$Zlibentry.obj
OBJ1 =$Zinit.obj $Ztime.obj $Zjoy.obj $Zsound.obj $Zwave.obj
OBJ2 =$Zmidi.obj $Zmci.obj $Zmcisys.obj $Zmciparse.obj $Zdrvproc.obj $ZPlaywav.obj
OBJ3 =$Zmmwnd.obj $Zauxout.obj $Zdebug.obj $Zdrvr31.obj $Ztaska.obj $Zthunks.obj
OBJ4 =$Ztask.obj $Zbwinexec.obj $Zcomm.obj $Zstack.obj $Zheap.obj $Zdpmipage.obj
OBJ5 =$Zmmio.obj $Zmmioriff.obj $Zhmemcpy.obj $Zdosa.obj $Zisr.obj $Zmixer.obj
OBJ =$(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJD)
LIBS =..\lib\libw ..\lib\mdllcew
INCS = -I. -I..\inc -I..\..\inc
OPT = -Oxws
########## Path definition so we find 16 bit tools ##########
# Also works around stupid bug in RC 3.1 that doesn't allow rcpp.err to be
# in a directory that is greater than 128 chars down the path, even if
# rc 3.1 is running as an OS/2 app.
PATH = $(_NTBINDIR)\private\mvdm\tools16;$(PATH)
#
# build a retail build
#
!if "$(NTDEBUG)" == "" || "$(NTDEBUG)" == "retail" && "$(NTDEBUG)" != "ntsdnodbg"
CLOPT =-I..\inc -I.\rinc -I..\..\inc
MASMOPT =-I..\inc -I..\..\inc
LINKOPT =
RC =rc16 -i..\inc -i.\rinc
OBJD =
Z = .\retail^\
MMDEBUG =
#
# build a full debug build
#
!else
CDEBUG =-Zd -Odi
ADEBUG =-Zd
LDEBUG =/LI
CLOPT =$(CDEBUG) -DDEBUG -I..\inc -I.\rinc -I..\..\inc
MASMOPT =$(ADEBUG) -DDEBUG -I..\inc -I..\..\inc
LINKOPT =$(LDEBUG)
RC =rc16 -DDEBUG -i..\inc -i.\rinc
OBJD =$Zmmsex.obj
Z = .\debug^\
MMDEBUG = DEBUG=1
!endif
!if "$(STRICT)" == "YES"
TYPES =-DSTRICT
!else
TYPES =
!endif
#
# NOTE
#
# this code is compiled *without* windows prolog/epilog (no -Gw)
# thus all exported routines, must have _loadds
#
CC = cl16 -c -Alnw -G2s -Zp -W3 $(CLOPT) $(OPT) $(TYPES)
ASM = masm -Mx -t -D?QUIET $(MASMOPT)
LINK = link16 /NOD/NOE/MAP/ALIGN:16 $(LINKOPT)
.c{$Z}.obj:
$(CC) -Fo$*.obj $(@B).c
.asm{$Z}.obj:
$(ASM) -DSEGNAME=_TEXT $(@B).asm, $*.obj;
###################################
all: $(NAME).$(EXT) $(NAME).sym mmtask.tsk
$(NAME).$(EXT): $(OBJFIRST) $(OBJ) $(NAME).def $(NAME).res mmtask.tsk
@$(LINK) @<<
$(OBJFIRST) +
$(OBJ1)+
$(OBJ2)+
$(OBJ3)+
$(OBJ4)+
$(OBJ5)+
$(OBJD),
$(NAME).$(EXT),
$(NAME),
$(LIBS),
$(NAME).def
<<
@$(RC) -t $(NAME).res $(NAME).$(EXT)
@mapsym /n $*.map
-binplace mmsystem.dll mmsystem.map mmsystem.sym mmtask.tsk mmtask.map mmtask.sym
RES_DIR =.\messages\usa
$(NAME).rc: $(RES_DIR)\$(NAME).rc
@copy $(RES_DIR)\$(NAME).rc
mci.rc: $(RES_DIR)\$$(@F)
@copy $(RES_DIR)\$@
$(NAME).rcv: $(RES_DIR)\$$(@F) ..\inc\common.ver
@copy $(RES_DIR)\$@
@touch $@
$(NAME).res: $(NAME).rc mci.rc ..\inc\$(NAME).h $(NAME).rcv mmsysi.h ..\inc\mmddk.h
@$(RC) -r $(NAME).rc
############## mmtask #############
mmtask.tsk: mmtask\mmtask.asm mmtask\makefile mmtask\mmtask.def mmtask\mmtask.h
@cd mmtask
@$(MAKE) $(MMDEBUG)
@cd ..
############## includes ##############
#..\inc\$(NAME).h ..\inc\$(NAME).inc ..\inc\mmddk.h ..\inc\mmddk.inc ..\inc\mci.rc : $$(@F)
# @copy $(@F) $@
############## clean ##############
clean: cleanup all
cleanup:
-@del $(NAME).$(EXT)
-@del $(NAME).res
-@del *.sym
-@del *.map
-@del *.lib
-@del $Z*.cod
-@del $Z*.obj
-@del *.rcv
-@del *.rc
-@del *.tsk
@cd mmtask
@$(MAKE) clean
@cd ..
########### segmentation ##########
#
# INIT is the init/exit time segment
# FIXED is the interupt time fixed segment
# _TEXT is the non-resident "random" segment (was NRES)
SEGC = $(CC) -NT CSEG -Fo$*.obj $(@B).c
SEGA = $(ASM) -DSEGNAME=CSEG $(@B).asm, $*.obj;
$Zdebug.obj : ; $(SEGA:CSEG=FIX)
$Zinit.obj : ; $(SEGC:CSEG=INIT)
$Zlibentry.obj : ; $(SEGA:CSEG=INIT)
$Zmmwnd.obj : ; $(SEGC:CSEG=INIT)
$Zplaywav.obj : ; $(SEGC:CSEG=WAVE)
$Zsound.obj : ; $(SEGC:CSEG=WAVE)
$Zwave.obj : ; $(SEGC:CSEG=WAVE)
$Zmidi.obj : ; $(SEGC:CSEG=MIDI)
$Zdpmipage.obj : ; $(SEGA:CSEG=_TEXT)
$Zmci.obj : ; $(SEGC:CSEG=MCI)
$Zmcisys.obj : ; $(SEGC:CSEG=MCI)
$Zmciparse.obj : ; $(SEGC:CSEG=MCI)
$Zdosa.obj : ; $(SEGA:CSEG=MCI)
$Zheap.obj : ; $(SEGA:CSEG=MCI)
$Ztask.obj : ; $(SEGC:CSEG=_TEXT)
$Zdrvproc.obj : ; $(SEGC:CSEG=_TEXT)
$Ztaska.obj : ; $(SEGA:CSEG=_TEXT)
$Zjoy.obj : ; $(SEGC:CSEG=RARE)
$Ztime.obj : ; $(SEGC:CSEG=FIX)
$Zbwinexec.obj : ; $(SEGA:CSEG=_TEXT)
$Zauxout.obj : ; $(SEGC:CSEG=RARE)
$Zdrvr31.obj : ; $(SEGA:CSEG=_TEXT)
$Zcomm.obj : ; $(SEGA:CSEG=FIX)
$Zstack.obj : ; $(SEGA:CSEG=FIX)
$Zhmemcpy.obj : ; $(SEGA:CSEG=MMIO)
$Zmmio.obj : ; $(SEGC:CSEG=MMIO)
$Zmmioriff.obj : ; $(SEGC:CSEG=MMIO)
$Zmmsex.obj : ; $(SEGC:CSEG=RARE)
$Zmixer.obj : ; $(SEGC:CSEG=MIXER)
############# 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
$Zauxout.obj: auxout.c ..\inc\mmddk.h mmsysi.h ..\inc\mmsystem.h
$Zdpmipage.obj: dpmipage.asm int31.inc
$Zcomm.obj: comm.asm
$Zbwinexec.obj: bwinexec.asm
$Zdosa.obj: dosa.asm
$Zinit.obj: init.c drvr.h ..\inc\mmddk.h mmsysi.h ..\inc\mmsystem.h
$Zhmemcpy.obj: hmemcpy.asm
$Zheap.obj: heap.asm
$Zjoy.obj: joy.c drvr.h ..\inc\mmddk.h mmsysi.h ..\inc\mmsystem.h
$Zmci.obj: mci.c ..\inc\mmddk.h mmsysi.h ..\inc\mmsystem.h
$Zlibentry.obj: libentry.asm
$Zmciparse.obj: mciparse.c ..\inc\mmddk.h mmsysi.h ..\inc\mmsystem.h
$Zmcisys.obj: mcisys.c ..\inc\mmddk.h mmsysi.h ..\inc\mmsystem.h
$Zmidi.obj: midi.c ..\inc\mmddk.h mmsysi.h ..\inc\mmsystem.h
$Zmmio.obj: mmio.c mmioi.h ..\inc\mmsystem.h mmsysi.h
$Zmmioriff.obj: mmioriff.c mmioi.h ..\inc\mmsystem.h
$Zmmwnd.obj: mmwnd.c mmsysi.h ..\inc\mmsystem.h
$Zplaywav.obj: playwav.c mmsysi.h ..\inc\mmsystem.h playwav.h
$Zsound.obj: sound.c mmsysi.h ..\inc\mmsystem.h playwav.h
$Ztask.obj: task.c ..\inc\mmddk.h mmsysi.h ..\inc\mmsystem.h mmtask\mmtask.h
$Ztaska.obj: taska.asm ..\inc\mmsystem.inc
$Zstack.obj: stack.asm ..\inc\mmddk.inc ..\inc\mmsystem.inc
$Zisr.obj: isr.asm ..\inc\mmddk.inc ..\inc\mmsystem.inc
$Ztime.obj: time.c drvr.h ..\inc\mmddk.h mmsysi.h ..\inc\mmsystem.h
$Zwave.obj: wave.c ..\inc\mmddk.h mmsysi.h ..\inc\mmsystem.h
$Zdebug.obj: debug.asm ..\inc\mmddk.inc ..\inc\mmsystem.inc
$Zdrvproc.obj: drvproc.c mmsysi.h ..\inc\mmsystem.h mmioi.h
# END Dependencies