Leaked source code of windows server 2003
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.

173 lines
5.7 KiB

  1. !if 0
  2. Copyright (c) 2002 Microsoft Corporation. All Rights Reserved.
  3. !endif
  4. # see %SDXROOT%\tools\makefile.def
  5. SYNCHRONIZE_DRAIN = 1 ## mgates doesn't do this
  6. ENCDEC_ROOT = ..
  7. #ROOT = $(MAKEDIR:\filters\EncDec\dll=)
  8. ROOT = ..\..\..
  9. DISABLE_PCH = 1
  10. !include $(ROOT)\common.inc
  11. !include $(ENCDEC_ROOT)\encdec.inc
  12. TARGETNAME = EncDec
  13. TARGETPATH = obj
  14. TARGETTYPE = DYNLINK
  15. TARGETEXT = dll
  16. DLLDEF = EncDec.def
  17. DLLENTRY = DllMain
  18. DLLBASE = 0x1ff00000
  19. USE_STL=1
  20. USE_NATIVE_EH=1
  21. # ------------
  22. # Obfuscation stuff
  23. # see http://msweb/pprc/tools/vuclan/CodeViewInfo.htm for details on this section
  24. # Note for the .Net build, we don't need much of this, particularly the
  25. # POST_BUILD_CMD step, instead just set SCP_ENABLED=1
  26. #
  27. # Check generated file 'scwebdebug' for errors when runing vsp21 (particularly the last line in it)
  28. #
  29. # Check tools/sp/SCP_WPAFilesSp1.cmd for some help here...
  30. #
  31. # Issue here is that vsp21 gets into trouble when it overwrites it's PDB file, but doesn't work if you
  32. # rename it. (Silent error - check bottom of scpwebdebug to see if it occurs.)
  33. # Solution is to move it into another subdir ($SCP_SUBDIR) and than re-create the
  34. # scp'ed version back into the original output direction.
  35. #
  36. # There is high probability of messing up symbols in the PDB file.
  37. # To check, do:
  38. # f:\binaries.x86chk>symchk -v encdec.dll /s symbols\retail
  39. # f:\binaries.x86fre>symchk -v encdec.dll /s symbols\retail
  40. #
  41. # There is also high probability vsp21 will just silently fail.
  42. # To check, do:
  43. # f:\binaries.x86chk> dumpbin \headers encdec.dll | qgrep image
  44. # and look for string
  45. # 21315.20512 image version
  46. # rather than something like this:
  47. # 5.01 image version
  48. #
  49. !IF $(BUILD_WITH_OBFUS)
  50. SCP_SUBDIR = $(O)\PRE_SCP
  51. SCP_CONFIGFILE = SCPConfig_EncDec_NoBBT.ini
  52. SCP_PROG = $(SDXROOT)\tools\sp\SCP_WPA_TOOLS\vsp21.exe
  53. POST_BUILD_CMD = mkdir $(SCP_SUBDIR) & \
  54. move $(O)\$(TARGETNAME).dll $(SCP_SUBDIR) & \
  55. move $(O)\$(TARGETNAME).pdb $(SCP_SUBDIR) & \
  56. $(SCP_PROG) $(SCP_SUBDIR)\$(TARGETNAME).dll /O=$(O)\$(TARGETNAME).dll /F=$(SCP_CONFIGFILE)
  57. !ENDIF
  58. # handles warning when we set BUFFER_OVERFLOW_CHECKS=1. The cookie used will be zero - a minor security problem
  59. LINK_LIB_IGNORE=4210
  60. #-------
  61. !if $(386) && $(FREEBUILD)
  62. #
  63. # Linking to NTDLL's RtlUnwind breaks exception handling on win95
  64. #
  65. NO_NTDLL = 1
  66. !endif
  67. C_DEFINES = $(C_DEFINES) -DFILTER_DLL
  68. INCLUDES = \
  69. $(ENCDEC_ROOT)\inc; \
  70. ..\..\..\..\published\dxmdev\dshowdev\idl\$(O); \
  71. $(INCLUDES); \
  72. $(ENCDEC_ROOT)\idl\$(O); \
  73. $(ENCDEC_ROOT)\Attrib; \
  74. $(ENCDEC_ROOT)\DrmInc; \
  75. $(ENCDEC_ROOT)\ETFilter; \
  76. $(ENCDEC_ROOT)\DTFilter; \
  77. $(ENCDEC_ROOT)\XDSCodec; \
  78. $(SDK_PATH)\amovie\inc; \
  79. $(SDK_LIB_PATH); \
  80. $(SDK_INC_PATH)\atl30;
  81. C_DEFINES = $(C_DEFINES) /DFILTER_LIB /DFILTERUS
  82. !if $(FREEBUILD)
  83. STRMBASE_LIB=$(SDK_LIB_PATH)\strmbase.lib ## mgates doesn't do this
  84. C_DEFINES = $(C_DEFINES) -DUSE_MSVCRT_FOR_QTZ_ONLY
  85. !endif
  86. SOURCES = \
  87. EncDec.rc \
  88. EncDec.cpp \
  89. RegKey.cpp \
  90. TimeIt.cpp \
  91. PackTvRat.cpp
  92. LINKLIBS = \
  93. $(STRMBASE_LIB) \
  94. $(ENCDEC_ROOT)\Idl\$(O)\EncDec_idl.lib \
  95. $(ENCDEC_ROOT)\Attrib\$(O)\MediaSampleAttr.lib \
  96. $(ENCDEC_ROOT)\ETFilter\$(O)\ETFilter.lib \
  97. $(ENCDEC_ROOT)\DTFilter\$(O)\DTFilter.lib \
  98. $(ENCDEC_ROOT)\XDSCodec\$(O)\XDSCodec.lib
  99. TARGETLIBS = \
  100. $(SDK_LIB_PATH)\sfc.lib \
  101. $(SDK_LIB_PATH)\shell32.lib \
  102. $(SDK_LIB_PATH)\shlwapi.lib \
  103. $(SDK_LIB_PATH)\msi.lib \
  104. $(SDK_LIB_PATH)\kernel32.lib \
  105. $(SDK_LIB_PATH)\gdi32.lib \
  106. $(SDK_LIB_PATH)\user32.lib \
  107. $(SDK_LIB_PATH)\advapi32.lib \
  108. $(SDK_LIB_PATH)\ole32.lib \
  109. $(SDK_LIB_PATH)\oleaut32.lib \
  110. $(SDK_LIB_PATH)\uuid.lib \
  111. $(SDK_LIB_PATH)\version.lib \
  112. $(SDK_LIB_PATH)\winmm.lib
  113. # extra stuff to build with DRM. Problem is if it's included, it becomes
  114. # very hard to debug the code, wo we want to easilly be able to pull it out
  115. !if $(BUILD_WITH_DRM)
  116. !if $(FREEBUILD) #two different versions of libraries, one for debug and one for free..
  117. DRMO=free
  118. !else
  119. DRMO=checked
  120. !endif
  121. LINKER_WARNING_SWITCH= # turn of warnings stopping build (nothing after '='),
  122. # DRM doesn't give us PDB files for libs below and it complains
  123. INT_DS_ROOT = $(BASEDIR)\public\internal\ds\lib
  124. TARGETLIBS = \
  125. $(ENCDEC_ROOT)\DrmLib\drmutil.lib \
  126. $(ENCDEC_ROOT)\DrmLib\$(DRMO)\drmclien.lib \
  127. $(ENCDEC_ROOT)\DrmLib\$(DRMO)\fsv1stub.lib \
  128. $(ENCDEC_ROOT)\DrmLib\$(DRMO)\DRMSecureChannel.lib \
  129. $(ENCDEC_ROOT)\DrmLib\rsa32.lib \
  130. $(ENCDEC_ROOT)\DrmLib\bnpkvsp.lib \
  131. $(ENCDEC_ROOT)\DrmLib\randlib.lib \
  132. $(TARGETLIBS)
  133. !endif
  134. !if 0
  135. $(ENCDEC_ROOT)\DrmLib\bnpk.lib \
  136. $(ENCDEC_ROOT)\DrmLib\$(DRMO)\testv1stub.lib \
  137. $(INT_DS_ROOT)\*\rsa32.lib \
  138. $(INT_DS_ROOT)\*\randlib.lib \
  139. foo
  140. !endif