defs.bsp
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:9k
源码类别:

VxWorks

开发平台:

C/C++

  1. # defs.bsp - bsp default makefile definitions
  2. #
  3. # Copyright 1984-2002, Wind River Systems, Inc.
  4. #
  5. # modification history
  6. # --------------------
  7. # 04j,19mar02,rbl  project flags should be different for vxApp and vxWorks
  8. # 04i,19mar02,dat  Adding CFLAGS_PIC & CC_PIC for bootInit.o (72825)
  9. # 04h,14dec01,dat  update to include full diab build as part of RELEASE
  10. # 04g,06dec01,dat  New project defaults per arch
  11. # 04f,04dec01,dat  New release sub-macros
  12. # 04e,12nov01,j_s  moved libraries and libraries search path definitions to
  13. #    defs.link
  14. # 04f,13nov01,dat  activating prj_default as part of release
  15. # 04e,05nov01,rbl  define compiler and assembler flags for the project
  16. #                  facility
  17. # 04d,10nov01,tam  added use of TOOL_COMMON_DIR; fixed definition of 
  18. #      LD_LINK_PATH
  19. # 04c,08nov01,tam  fixed Windows build after repackaging changes
  20. # 04b,30oct01,tam  removed CC_LIB from cyclic linking
  21. # 04a,29oct01,tam  added auto-generation of LD_LINK_LIBS. Removed 
  22. #    LD_LINK_LIBS_EXTRA.
  23. # 03z,23oct01,tam  added extra -l entries
  24. # 03y,19oct01,j_s  remove LD_LINK_LIST, just use LD_LINK_LIBS
  25. # 03x,19oct01,jab  added CC_ARCH_SPEC to CASFLAGS
  26. # 03w,18oct01,dat  Moving tool defines to tool specific files
  27. # 03v,19sep01,dat  Adding TOOL_FAMILY, added include of make.$CPU$TOOL, 
  28. #                  and defs.$HOST
  29. # 03u,17sep01,sn   moved definitions of MUNCH_FLAGS and related macros to defs.gnu
  30. # 03t,07sep01,dat  Gnu-diab adding h/tool/$TOOL to include path
  31. # 03t,31jul01,mem  Fix munch for diab.
  32. # 03s,24jul01,r_s  diab specific rules added
  33. # 03r,24apr00,dat  SPR 30819, fix project link of ROM images
  34. # 03q,10aug00,rec  add LD_ENDIAN_FLAG
  35. # 03p,23mar01,roz  Fix check for GNU compiler.
  36. # 03o,13mar01,sn   Use $(OPTION_LANG_ASM) instead of the explicit flag
  37. #                  Added $(OPTION_LANG_ASM) to $(CASFLAGS) to ensure
  38. #                  correct dependency gen in BSP builds
  39. # 03n,12mar01,sn   Spell -x assembler-with-cpp without the space to 
  40. #                  ensure correct extraction by the project facility
  41. # 03m,06dec00,sn  removed -xc
  42. # 03l,16oct00,sn  link against CC_LIB
  43. # 03k,09oct00,sn  removed -nostdinc
  44. # 03j,23feb99,sn   merge POST_MUNCH and MUNCH, add MUNCH_FLAGS
  45. #                  -traditional -> -fdollars-in-identifiers
  46. # 03i,22feb99,fle  added mkboot to DOC_FILES
  47. # 03h,17nov98,sn   removed ORDER_CTORS
  48. # 03g,11nov98,sn   partially link using LD_PARTIAL
  49. # 03f,11nov98,sn   munch -> orderCtors $(NM)
  50. # 03e,15oct98,ms   reworked MUNCH definition so it works on windows 95/98.
  51. # 03d,21sep98,sn   removed -fno-implicit-templates from C++_COMPILER
  52. #                  see defs.default for detailed comment
  53. # 03c,06may98,yp   added sysTffs to DOC_FILES
  54. # 03b,06may98,cym  added DEFAULT_RULE
  55. # 03a,09feb98,sn   added -fno-implicit-templates to C++_COMPILER
  56. # 02i,02apr98,pcn  Removed Objcopy changes from Tempest view
  57. # 02h,15dec97,pcn  Added Objcopy in BSP build.
  58. # 02g,20jan97,yp   added -P to CFLAGS_AS to suppress "#line" directives
  59. # 02f,06dec97,yp   moved soft-float back to CFLAGS
  60. # 02e,02jan97,dat  added DOC_FLAGS, EXTRA_DOC_FLAGS
  61. # 02d,17dec96,yp   moved soft-float to OPTIM macros so drvs get built without it
  62. # 02c,04oct96,yp   added .cxx sufix
  63. # 02b,31oct96,yp   added definition for GCC_EXEC_PREFIX. added TCL def.
  64. #    added CFLAGS_AS. redid CFLAGS and C++FLAGS for new build
  65. # 02a,31oct96,kkk  fixed typo in C++FLAGS line.
  66. # 01z,21jun96,dat  added -traditional to COMPILE_SYMTBL (#6517),
  67. #    added copyright
  68. # 01y,01apr96,srh  added Rogue Wave multithread defns.
  69. # 01x,13nov95,jeh  added CF define, changed CXX define to $(CC).
  70. # 01w,13nov95,jeh  renamed C++ define to be CXX.
  71. # 01v,11nov95,jeh  fixed typo in C++FLAGS define (missing $ in $(C++_COMPILER))
  72. # 01u,07nov95,p_m  Removed previous change
  73. # 01t,04nov95,p_m  Added sysSerial to DOC_FILES
  74. # 01s,01nov95,yp   Added rules for C++ support
  75. # 01r,24oct95,dat  recovered CONFIG_ALL and changed CC_INCLUDE, moved LIB_EXTRA
  76. # 01q,20jun95,yp   removed -pedatic flag. added machros for bin tool names
  77. # 01p,15jun95,yp   removed defintions for CPU and TOOL.
  78. # 01o,01jun95,yp   derived from make.defaults
  79. #
  80. # DESCRIPTION
  81. # This file is included into bsp makefiles to define the default makefile
  82. # definitions.  After the include the Makefile may customize the definitions
  83. # found here to suit the circumstance.
  84. #
  85. # Redefinitions of make variables earlier than the include of this file will
  86. # have no affect.
  87. #
  88. # This file is only for command line builds from the BSP directory.  It is
  89. # not used for any project or component builds. See defs.project for project
  90. # build definitions. It is used to create projects from the command line, but
  91. # not to build them.
  92. #
  93. # map TOOL to TOOL_FAMILY, if not already done in BSP Makefile
  94. ifeq ($(TOOL_FAMILY),)
  95. ifeq  ($(findstring gnu,$(TOOL)),gnu)
  96. TOOL_FAMILY = gnu
  97. else
  98. ifeq  ($(findstring diab,$(TOOL)),diab)
  99. TOOL_FAMILY = diab
  100. endif
  101. endif
  102. endif
  103. .SUFFIXES:  .cpp .out .cxx
  104. ## exe target is the cannonical starting point.
  105. default : exe
  106. ## most targets will make vxWorks by default
  107. DEFAULT_RULE = vxWorks
  108. ## TARGET_DIR still used for backward compatibility
  109. BSP_NAME = $(TARGET_DIR)
  110. ## default flags
  111. CFLAGS = $(CC_ARCH_SPEC) $(CC_COMPILER) $(CC_OPTIM) $(CC_WARNINGS) 
  112.   $(CC_INCLUDE) $(CC_DEFINES) $(ADDED_CFLAGS)  
  113.   $(CC_SOFT_FLOAT)
  114. C++FLAGS = $(CC_ARCH_SPEC) $(C++_COMPILER) $(CC_OPTIM) $(C++_WARNINGS) 
  115.   $(CC_INCLUDE) $(CC_DEFINES) $(ADDED_C++FLAGS) 
  116.   $(CC_SOFT_FLOAT)
  117. CASFLAGS = $(CC_ARCH_SPEC) $(OPTION_PP) $(OPTION_LANG_ASM) $(CC_INCLUDE) 
  118.           $(CC_DEFINES)
  119. CFLAGS_AS = $(CC_ARCH_SPEC) $(CC_COMPILER) $(CC_OPTIM) $(CC_INCLUDE) 
  120.   $(CC_DEFINES) $(ADDED_CFLAGS) $(OPTION_PP_AS) 
  121.   $(OPTION_LANG_ASM)
  122. # Special flags for Position Independent Code (bootInit.o)
  123. CFLAGS_PIC = $(CC_ARCH_SPEC) $(CC_COMPILER) $(CC_OPTIM) $(CC_WARNINGS) 
  124.   $(CC_INCLUDE) $(CC_DEFINES) $(ADDED_CFLAGS) $(CC_PIC) 
  125.   $(CC_SOFT_FLOAT)
  126. CC_WARNINGS = $(CC_WARNINGS_ALL)
  127. CC_OPTIM = $(CC_OPTIM_TARGET)
  128. CC_INCLUDE = $(OPTION_INCLUDE_DIR)$(UP)/h $(INCLUDE_CC) $(EXTRA_INCLUDE) 
  129.   $(OPTION_INCLUDE_DIR). $(OPTION_INCLUDE_DIR)$(CONFIG_ALL) 
  130.   $(OPTION_INCLUDE_DIR)$(TGT_DIR)/h 
  131.   $(OPTION_INCLUDE_DIR)$(TGT_DIR)/src/config 
  132.   $(OPTION_INCLUDE_DIR)$(TGT_DIR)/src/drv
  133. CC_DEFINES = $(OPTION_DEFINE_MACRO)CPU=$(CPU) 
  134.   $(OPTION_DEFINE_MACRO)TOOL_FAMILY=$(TOOL_FAMILY) 
  135.   $(OPTION_DEFINE_MACRO)TOOL=$(TOOL) 
  136.   $(DEFINE_CC) $(EXTRA_DEFINE)
  137. COMPILE_SYMTBL = $(CC) $(OPTION_OBJECT_ONLY) $(OPTION_DOLLAR_SYMBOLS) $(CFLAGS)
  138. ## compiler and assembler flags for the project facility
  139. CFLAGS_PROJECT_REMOVE = $(CC_PROJECT_OPTIMIZE_FLAGS) 
  140. $(PROJECT_BSP_FLAGS_EXTRA)
  141. CFLAGS_PROJECT_STRIPPED = $(filter-out $(CFLAGS_PROJECT_REMOVE),$(C++FLAGS))
  142. CFLAGS_PROJECT = -g $(CFLAGS_PROJECT_STRIPPED)
  143. CFLAGS_AS_PROJECT_STRIPPED = $(filter-out $(CFLAGS_PROJECT_REMOVE),$(CFLAGS_AS))
  144. CFLAGS_AS_PROJECT = -g $(CFLAGS_AS_PROJECT_STRIPPED)
  145. ## set default values for ROM_LINK_ADRS, TGT_DIR, for old Makefiles
  146. ifeq ($(ROM_LINK_ADRS),)
  147. ROM_LINK_ADRS = $(ROM_TEXT_ADRS)
  148. endif
  149. ifeq ($(TGT_DIR),)
  150. TGT_DIR = $(WIND_BASE)/target
  151. endif
  152. ## standard list of BSP modules
  153. MACH_DEP = sysALib.o sysLib.o $(MACH_EXTRA) $(ADDED_MODULES)
  154. ## linker script definitions
  155. include $(TGT_DIR)/h/make/defs.link
  156. ## documentation files
  157. DOC_FILES = sysLib tyCoDrv sysTffs mkboot
  158. DOC_FLAGS = $(OPTION_DEFINE_MACRO)DOC $(OPTION_DEFINE_MACRO)INCLUDE_SCSI 
  159.   $(OPTION_DEFINE_MACRO)INCLUDE_SHOW_ROUTINES $(EXTRA_DOC_FLAGS)
  160. # Now include the CPU/TOOL make file and any host specific definitions
  161. include $(TGT_DIR)/h/tool/$(TOOL_FAMILY)/make.$(CPU)$(TOOL)
  162. include $(TGT_DIR)/h/make/defs.$(WIND_HOST_TYPE)
  163. ## Release macros are for WRS internal release process only.
  164. RELEASE = $(RELEASE_PRE) $(RELEASE_CMD) $(RELEASE_PRJ) $(RELEASE_POST)
  165. RELEASE_PRE =
  166. RELEASE_POST =
  167. ## Default project builds, arch sensitive
  168. # ARM, MIPS, PPC, SH
  169. # build 2 projects, gnu project has 4 build specs, diab project also has 4
  170. # (These should be in the arch specific tool files, not here)
  171. ifeq ($(VX_CPU_FAMILY),arm)
  172.     RELEASE_PRJ = prj_default prj_diab
  173. endif
  174. ifeq ($(VX_CPU_FAMILY),mips)
  175.     RELEASE_PRJ = prj_default prj_diab
  176. endif
  177. ifeq ($(VX_CPU_FAMILY),ppc)
  178.     RELEASE_PRJ = prj_default prj_diab
  179. endif
  180. ifeq ($(VX_CPU_FAMILY),sh)
  181.     RELEASE_PRJ = prj_default prj_diab
  182. endif
  183. # Simulators: one project with just single build spec, 
  184. ifeq ($(VX_CPU_FAMILY),simpc)
  185.     RELEASE_PRJ = prj_default_one
  186. endif
  187. ifeq ($(VX_CPU_FAMILY),simso)
  188.     RELEASE_PRJ = prj_default_one
  189. endif
  190. # all else defaults to a single project with 4 build specs
  191. ifeq ($(RELEASE_PRJ),)
  192.     RELEASE_PRJ = prj_default
  193. endif
  194. # default command line builds
  195. ifeq ($(RELEASE_CMD),)
  196.     RELEASE_CMD = vxWorks vxWorks.st bootrom.hex
  197. endif