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.

396 lines
12 KiB

  1. ##
  2. ## Copyright (c) 2000, Intel Corporation
  3. ## All rights reserved.
  4. ##
  5. ## WARRANTY DISCLAIMER
  6. ##
  7. ## THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  8. ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  9. ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  10. ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS
  11. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  12. ## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  13. ## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  14. ## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  15. ## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
  16. ## NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE
  17. ## MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  18. ##
  19. ## Intel Corporation is the author of the Materials, and requests that all
  20. ## problem reports or change requests be submitted to it directly at
  21. ## http://developer.intel.com/opensource.
  22. ##
  23. #
  24. # EM decoder library rules and dependencies
  25. #
  26. TRIED_THIS_TRICK = 1
  27. ifeq ($(HOSTTYPE), WINNT)
  28. include $(SERVER_AREA)/include/Makefile.inc
  29. else
  30. include $(SERVER_AREA)/include/Makefile.inc
  31. endif
  32. #########################################
  33. # CHECK ENVIRONMENT VARIABLES DEFINITION
  34. #########################################
  35. ifeq ($(HOSTTYPE), WINNT)
  36. ENV_VAR_ERROR = YES
  37. ifdef RCSPATH
  38. ifdef RCSWORK
  39. ifdef TB_PATHSUB
  40. ifdef ToolBusterDir
  41. ENV_VAR_ERROR = NO
  42. endif
  43. endif
  44. endif
  45. endif
  46. ifeq ($(ENV_VAR_ERROR), YES)
  47. env_variable_error:
  48. @echo ERROR in environment variables definition !!!
  49. @echo The following variables should be defined:
  50. @echo HOSTTYPE
  51. @echo RCSPATH
  52. @echo RCSWORK
  53. @echo TB_PATHSUB
  54. @echo ToolBusterDir
  55. @exit 1
  56. endif
  57. endif
  58. ###############################################
  59. EMDBDIR = ../emdb
  60. SUFFIX = em
  61. XVER_MAJOR = 9
  62. XVER_MINOR = 60 ### 2 digits, 09 maybe a problem ?!
  63. API_MAJOR = 9
  64. API_MINOR = 6
  65. ifdef AP32
  66. CC=ecl /Ap32 /As32 -Qapp_mode
  67. endif
  68. ifdef AP64
  69. CC=ecl -Qapp_mode
  70. endif
  71. ifeq ($(HOSTTYPE), WINNT)
  72. ### LOCALDIR = /x86sw
  73. ifndef STAT_LIB
  74. DYN_LIB = 1
  75. endif
  76. VPATH = /topg_drive/x86sw/src/decem
  77. NT_FLAG = -DWINNT
  78. RM = $(RM_BIN) -f
  79. DECODER__LIB = $(LOCALLIB)/$(DECODER_LIB).lib
  80. DECODER__DLL = $(LOCALBIN)/$(DECODER_LIB).X$(API_MAJOR).$(API_MINOR).dll
  81. DECODER__EXP = $(LOCALLIB)/$(DECODER_LIB).exp
  82. DECODER_DEF = decoder.def
  83. ifndef OPTIMIZE
  84. GCC_DEBUG = /Od
  85. LINKER_DEBUG_FLAGS = /DEBUG
  86. else
  87. GCC_DEBUG =
  88. endif
  89. endif
  90. LOCALINC = $(LOCALDIR)/include
  91. UTILS_DIR = ../../util
  92. ifeq ($(HOSTTYPE), i486-linux)
  93. PERL = perl
  94. STRINGS_NOT_UNIQUIZE = -fwritable-strings
  95. else
  96. ifneq ($(OSTYPE),svr5)
  97. PERL = perl5
  98. endif
  99. endif
  100. ifeq ($(HOSTTYPE), hp9000s700)
  101. STRINGS_NOT_UNIQUIZE = -fwritable-strings
  102. endif
  103. vpath %.h $(LOCALINC) $(INSTALLINC)
  104. vpath decem.h include
  105. vpath inst_ids.h include
  106. vpath EM_hints.h include
  107. INSTALLINC_SEARCH_PATH = $(SERVER_AREA)/include
  108. PERL_INCLIST = -I $(LOCALINC) -I $(INSTALLINC_SEARCH_PATH)
  109. ifeq ($(HOSTTYPE), WINNT)
  110. VER = "\"Falcon Decoder Library, EM ISA, X$(XVER_MAJOR)$(XVER_MINOR) \
  111. ${DATE}\""
  112. else
  113. VER = '"Falcon Decoder Library, EM ISA, X$(XVER_MAJOR)$(XVER_MINOR) \
  114. ${DATE}"'
  115. endif
  116. EM_BUILDIR = build
  117. COMMON_HEADERS = emdb_types.h EM.h EM_tools.h iel.h EM_hints.h inst_ids.h
  118. EMDB_SOURCES = $(EMDBDIR)/emdb.txt $(EMDBDIR)/emdb_cut.pl \
  119. $(EMDBDIR)/dec_private.perl $(EMDBDIR)/emdb_formats.txt EM_perl.h
  120. USER_CFLAGS = $(STRINGS_NOT_UNIQUIZE) -w -I . -I include -I build -I $(LOCALINC) -I $(INSTALLINC_SEARCH_PATH)
  121. #------ static library ---------
  122. LIB_DECODER = lib$(DECODER_LIB).$(LEXT)
  123. LOCAL_DECODER = $(LOCALLIB)/$(LIB_DECODER)
  124. TO_CREATE_LIB = $(AR) $(AR_OPT)$(LOCAL_DECODER) $(OBJS)
  125. #-------------------------------
  126. #------ dynamic library --------
  127. ifdef DYN_LIB
  128. ifeq ($(HOSTTYPE),WINNT)
  129. LOCAL_DECODER = $(DECODER__DLL)
  130. else
  131. LIB_DECODER_SO = lib$(DECODER_LIB).$(LDEXT)
  132. LIB_DECODER = $(LIB_DECODER_SO).X$(API_MAJOR).$(API_MINOR)
  133. LOCAL_DECODER = $(LOCALLIB)/$(LIB_DECODER)
  134. ifeq ($(OSTYPE),svr5)
  135. TO_CREATE_LIB = $(CC) -G -shared \
  136. -h $(LIB_DECODER) $(OBJS)\
  137. -o $(LOCAL_DECODER)
  138. else
  139. ifeq ($(HOSTTYPE), i486-linux)
  140. TO_CREATE_LIB = $(CC) -shared \
  141. $(OBJS)\
  142. -o $(LOCAL_DECODER)
  143. else
  144. TO_CREATE_LIB = $(CC) -shared \
  145. -h $(LIB_DECODER) $(OBJS)\
  146. -o $(LOCAL_DECODER)
  147. endif
  148. endif
  149. endif
  150. endif
  151. #-------------------------------
  152. EM_OBJ = $(EM_BUILDIR)/decfn_emdb.$(OEXT) $(EM_BUILDIR)/dec_static.$(OEXT) $(EM_BUILDIR)/decision_tree.$(OEXT) frmt_func.$(OEXT)
  153. OBJS = $(EM_OBJ) decoder.$(OEXT)
  154. HFILES = decoder.h
  155. EM_PERL_H = EM_perl.h
  156. VFLAG = -DEMA_TOOLS $(NT_FLAG) \
  157. -D API_MINOR=$(API_MINOR) -D API_MAJOR=$(API_MAJOR) \
  158. -D XVER_MINOR=$(XVER_MINOR) -D XVER_MAJOR=$(XVER_MAJOR) \
  159. -D VER_STR=$(VER)
  160. ifeq ($(HOSTTYPE),WINNT)
  161. ifdef COVER
  162. %.obj: %.c
  163. chmod +w $<
  164. $(CC) /C /EP /DC_COVER_OFF="/* C-Cover off */" /DC_COVER_ON="/* C-Cover on */" $(CFLAGS) $< > $<.pp
  165. cp $<.pp $<
  166. rm $<.pp
  167. $(CC) $(CFLAGS) /Fo$@ /Tc$<
  168. endif
  169. endif
  170. # dependencies
  171. all: include/decem.h include/inst_ids.h include/EM_hints.h $(LOCAL_DECODER)
  172. #****************************************************
  173. # LIBRARY CREATION
  174. #****************************************************
  175. ifneq ($(HOSTTYPE),WINNT)
  176. $(LOCAL_DECODER): $(OBJS)
  177. rm -f $(LOCAL_DECODER)
  178. $(TO_CREATE_LIB)
  179. else # WINNT
  180. ifdef DYN_LIB
  181. $(LOCAL_DECODER): $(DECODER_DEF) $(OBJS)
  182. touch $(LOCAL_DECODER)
  183. rm -f $(LOCAL_DECODER)
  184. link -dll $(LINKER_DEBUG_FLAGS) -def:$(DECODER_DEF) -out:$(LOCAL_DECODER) \
  185. -implib:$(DECODER__LIB) $(OBJS)
  186. else
  187. $(LOCAL_DECODER): $(OBJS)
  188. touch $(LOCAL_DECODER)
  189. rm -f $(LOCAL_DECODER)
  190. lib -out:$(LOCAL_DECODER) $(OBJS)
  191. endif
  192. endif
  193. #****************************************************
  194. decoder.$(OEXT): decem.h decoder_priv.h $(COMMON_HEADERS) \
  195. $(EM_BUILDIR)/decision_tree.h $(EM_BUILDIR)/decfn_emdb.h \
  196. $(EM_BUILDIR)/dec_priv_col.h
  197. include/inst_ids.h: $(EMDB_SOURCES)\
  198. $(EM_BUILDIR)/inst_id.perl $(EM_BUILDIR)/dec_priv_col.h ../copyright/external/c_file
  199. cd $(EM_BUILDIR) $(SEPR) $(MAKE) inst_ids.h
  200. $(CP) $(EM_BUILDIR)/inst_ids.h include
  201. $(CP) $(EM_BUILDIR)/inst_ids.h $(LOCALINC)
  202. include/EM_hints.h: $(EMDB_SOURCES)
  203. cd $(EM_BUILDIR) $(SEPR) $(MAKE) EM_hints.h
  204. $(CP) $(EM_BUILDIR)/EM_hints.h include
  205. $(CP) $(EM_BUILDIR)/EM_hints.h $(LOCALINC)
  206. #*****************************************************
  207. $(EM_BUILDIR)/decfn_emdb.$(OEXT): $(COMMON_HEADERS) $(EMDB_SOURCES)
  208. cd $(EM_BUILDIR) $(SEPR)\
  209. $(MAKE) decfn_emdb.$(OEXT)
  210. $(EM_BUILDIR)/decfn_emdb.h: $(EMDB_SOURCES)
  211. cd em_build $(SEPR)\
  212. $(MAKE) decfn_emdb.h
  213. $(EM_BUILDIR)/dec_static.$(OEXT): $(EMDB_SOURCES)
  214. cd $(EM_BUILDIR) $(SEPR)\
  215. $(MAKE) dec_static.$(OEXT)
  216. include/decem.h: decoder.h
  217. cp decoder.h include/decem.h
  218. $(CHMOD) +w include/decem.h
  219. cp include/decem.h $(LOCALINC)
  220. frmt_func.c : $(EM_BUILDIR)/func_build_1.pl \
  221. $(EM_BUILDIR)/func_build_2.pl $(EMDB_SOURCES)
  222. cd $(EM_BUILDIR) $(SEPR)\
  223. $(PERL) $(PERL_INCLIST) func_build_1.pl $(SEPR)\
  224. $(PERL) $(PERL_INCLIST) func_build_2.pl
  225. frmt_func.$(OEXT): $(COMMON_HEADERS) decem.h frmt_mac.h decoder_priv.h\
  226. $(EM_BUILDIR)/decfn_emdb.h $(EM_BUILDIR)/dec_priv_col.h
  227. $(EM_BUILDIR)/decision_tree.$(OEXT): $(EM_BUILDIR)/build_ignored_flds.pl
  228. cd $(EM_BUILDIR) $(SEPR) $(MAKE) decision_tree.$(OEXT)
  229. ifeq ($(HOSTTYPE),WINNT)
  230. ifdef COVER
  231. iel.h: $(UTILS_DIR)/ccov_iel_h.perl
  232. rm -f $(LOCALINC)/iel.h
  233. cp $(INSTALLINC)/iel.h $(LOCALINC)
  234. chmod +w $(LOCALINC)/iel.h
  235. perl5 $(UTILS_DIR)/ccov_iel_h.perl $(LOCALINC)/iel.h
  236. cp $(LOCALINC)/iel.h.ccov $(LOCALINC)/iel.h
  237. rm $(LOCALINC)/iel.h.ccov
  238. endif
  239. endif
  240. ######################################################################
  241. LIB_DECODER_D = $(LIB_DECODER)
  242. LOCAL_DECODER_D = $(LOCAL_DECODER).X$(API_MAJOR).$(API_MINOR)
  243. ###################################
  244. ##### Source release rules ####
  245. ###################################
  246. C_FILES = decoder.c
  247. H_FILES = decoder.h decoder_priv.h frmt_mac.h
  248. #DEC_SCRIPTS = $(EM_BUILDIR)/func_build_1.pl $(EM_BUILDIR)/func_build_2.pl $(EM_BUILDIR)/inst_id.perl $(EM_BUILDIR)/hard_coded_fields_h.perl $(EM_BUILDIR)/tree_builder.perl $(EM_BUILDIR)/build_static_info.pl $(EM_BUILDIR)/build_ignored_flds.pl
  249. SOURCE_RELEASE_DECEM_DIR = $(TARGET_TREE)/src/decem
  250. SOURCE_RELEASE_FILES = Makefile $(C_FILES) $(H_FILES) $(DECODER_DEF)
  251. source_release_copy: $(SOURCE_RELEASE_FILES)
  252. @echo Copying decem source files to $(SOURCE_RELEASE_DECEM_DIR)
  253. $(CP) $(SOURCE_RELEASE_FILES) $(SOURCE_RELEASE_DECEM_DIR)
  254. $(MAKE) -C $(EM_BUILDIR) -f Makefile source_release_copy
  255. source_release_install:
  256. ifdef DYN_LIB
  257. ifneq ($(HOSTTYPE),WINNT)
  258. @echo Building link to $(LOCAL_DECODER)
  259. $(RM) $(LOCALLIB)/$(LIB_DECODER_SO)
  260. touch $(LOCAL_DECODER)
  261. ln -s $(LOCAL_DECODER) $(LOCALLIB)/$(LIB_DECODER_SO)
  262. endif
  263. endif
  264. source_release_clean:
  265. @echo Cleaning decem source release files
  266. $(RM) include/decem.h include/EM_hints.h include/inst_ids.h *.$(OEXT)
  267. $(MAKE) -C $(EM_BUILDIR) -f Makefile source_release_clean
  268. source_release_check:
  269. ###################################
  270. INC_H_FILES = $(INSTALLINC)/$(IEL_H) $(INCDIR)/inst_ids.h $(INCDIR)/EM_hints.h $(INCDIR)/EM.h \
  271. $(INCDIR)/EM_tools.h $(INCDIR)/emdb_types.h $(INCDIR)/decem.h
  272. install:
  273. @echo Installing $(LIB_DECODER) at $(INSTALLLIB)
  274. touch $(INSTALLLIB)/$(LIB_DECODER) $(INSTALLINC)/decem.h
  275. $(MV) $(INSTALLLIB)/$(LIB_DECODER) $(INSTALLLIB)/$(LIB_DECODER).bak
  276. $(CP) $(LOCAL_DECODER) $(INSTALLLIB)/$(LIB_DECODER)
  277. $(CHMOD) +w $(INSTALLLIB)/$(LIB_DECODER)
  278. $(MV) $(INSTALLINC)/decem.h $(INSTALLINC)/decem.h.bak
  279. $(CP) include/decem.h $(INSTALLINC)/decem.h
  280. $(CHMOD) +w $(INSTALLINC)/decem.h
  281. touch $(INSTALLINC)/inst_ids.h $(INSTALLINC)/EM_hints.h
  282. $(MV) $(INSTALLINC)/inst_ids.h $(INSTALLINC)/inst_ids.h.bak
  283. $(CP) include/inst_ids.h $(INSTALLINC)/inst_ids.h
  284. $(CHMOD) +w $(INSTALLINC)/inst_ids.h
  285. $(MV) $(INSTALLINC)/EM_hints.h $(INSTALLINC)/EM_hints.h.bak
  286. $(CP) include/EM_hints.h $(INSTALLINC)/EM_hints.h
  287. $(CHMOD) +w $(INSTALLINC)/EM_hints.h
  288. dinstall:
  289. @echo Installing $(LIB_DECODER_D) at $(INSTALLLIB)
  290. $(MV) $(INSTALLLIB)/$(LIB_DECODER_D) $(INSTALLLIB)/$(LIB_DECODER_D).bak
  291. $(CP) $(LOCAL_DECODER_D) $(INSTALLLIB)/$(LIB_DECODER_D)
  292. $(CHMOD) +w $(INSTALLLIB)/$(LIB_DECODER_D)
  293. release:
  294. @echo Updating $(LIB_DECODER) at $(RELEASELIB) for release
  295. touch $(RELEASELIB)/$(LIB_DECODER) $(RELEASEINC)/decem.h
  296. $(MV) $(RELEASELIB)/$(LIB_DECODER) $(RELEASELIB)/$(LIB_DECODER).bak
  297. $(CP) $(INSTALLLIB)/$(LIB_DECODER) $(RELEASELIB)/$(LIB_DECODER)
  298. $(MV) $(RELEASEINC)/decem.h $(RELEASEINC)/decem.h.bak
  299. $(CP) $(INSTALLINC)/decem.h $(RELEASEINC)/decem.h
  300. touch $(RELEASEINC)/inst_ids.h
  301. $(MV) $(RELEASEINC)/inst_ids.h $(RELEASEINC)/inst_ids.h.bak
  302. $(CP) $(INSTALLINC)/inst_ids.h $(RELEASEINC)/inst_ids.h
  303. touch $(RELEASEINC)/EM_hints.h
  304. $(MV) $(RELEASEINC)/EM_hints.h $(RELEASEINC)/EM_hints.h.bak
  305. $(CP) $(INSTALLINC)/EM_hints.h $(RELEASEINC)/EM_hints.h
  306. clean:
  307. @echo Cleaning the current directory
  308. $(RM) $(LOCAL_DECODER) include/decem.h $(LOCALINC)/decem.h\
  309. include/EM_hints.h $(LOCALINC)/EM_hints.h \
  310. include/inst_ids.h $(LOCALINC)/inst_ids.h $(LOCALINC)/iel.h\
  311. *.$(OEXT) dec_emdb.* decision_tree* dec_static.* frmt_func.*
  312. @echo Cleaning $(EM_BUILDIR)
  313. cd $(EM_BUILDIR)$(SEPR) $(MAKE) clean