rules.library.vxWorks
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:4k
源码类别:

VxWorks

开发平台:

C/C++

  1. # rules.library.vxWorks - vxcom rules for making libraries
  2. #
  3. # modification history
  4. # --------------------
  5. # 01c,18dec01,dbs  fix diab detection
  6. # 01b,10dec01,dbs  diab build
  7. # 01a,06nov01,nel  created from rules.library.t3
  8. export TRACE_CALL_FILENAME   = 
  9. export TGT_DIR               = $(WIND_BASE)/target
  10. #export VXCOM_BASE            = $(WIND_BASE)/target/src/vxcom
  11. # above line was already defined in target/h/make/defs.vxcom,
  12. # possibly with a different value for win32 builds
  13. export INCLUDE_DIRS          = h com debug comcore os idl
  14. export CLEARTOOL             = cleartool
  15. export EXTRA_CLEAN           = *.o *.i TAGS MANIFEST _ctdt* *.out core
  16. export EXTRA_INCLUDE         = $(patsubst %,-I$(VXCOM_BASE)/%,$(INCLUDE_DIRS))
  17. C_SRCS                       = $(wildcard *.c)
  18. CPP_SRCS                     = $(wildcard *.cpp)
  19. export SRCS                  = $(C_SRCS) $(CPP_SRCS)
  20. export HDRS                  = $(wildcard *.h)
  21. export OBJS                  = $(patsubst %.c,%.o,$(C_SRCS)) 
  22. $(patsubst %.cpp,%.o,$(CPP_SRCS))
  23. export J                     = 1
  24. export VXDCOM_NO_RTTI        = -fno-rtti
  25. export VXDCOM_NO_EXCEPTIONS  = -fno-exceptions
  26. # Must define VXDCOM_CFLAGS for each compiler/tool variant
  27. # These should use at least VXCOM_EXTRA_CFLAGS as that is
  28. # defined in the per-project defs.vxcom file...
  29. ifeq ($(findstring diab,$(TOOL)),diab)
  30. export VXDCOM_CFLAGS         = $(REL)
  31.                                $(VXDCOM_EXTRA_DCC_FLAGS)        
  32.                                $(VXCOM_EXTRA_CFLAGS)            
  33.                                -DVXDCOM_PLATFORM_VXWORKS=$(VXDCOM_PLATFORM)
  34. endif
  35. ifeq ($(findstring gnu,$(TOOL)),gnu)
  36. export C++_TEMPLATE_INST    = -fimplicit-templates
  37. export VXDCOM_CFLAGS         = $(REL)
  38.                                -Wall
  39.                                -Wstrict-prototypes
  40.                                $(VXDCOM_EXTRA_GCC_FLAGS)        
  41.                                $(VXCOM_EXTRA_CFLAGS)            
  42.                                $(C++_TEMPLATE_INST)             
  43.                                -DVXDCOM_PLATFORM_VXWORKS=$(VXDCOM_PLATFORM)
  44. endif
  45. ifneq ($(VXDCOM_DEBUG),)
  46. override EXTRA_DEFINE      += -DINCLUDE_VXDCOM_SYSLOG
  47.                               -DINCLUDE_VXDCOM_TRACE_CALL
  48. endif
  49. ifneq ($(TRACE_CALL_FILENAME),)
  50. override EXTRA_DEFINE      += -DTRACE_CALL_FILENAME="$(TRACE_CALL_FILENAME)"
  51. endif
  52. include $(TGT_DIR)/h/make/rules.library
  53. # override default C++ template instantiation
  54. override EXTRA_DEFINE      += $(VXDCOM_CFLAGS)
  55. # pattern specific rules
  56. %.i : %.cpp
  57. $(COMPILE.c) -E $< -o $@
  58. %.s : %.cpp
  59. $(COMPILE.c) -S $< -o $@
  60. %.out : $(LIBOBJS)
  61. $(NM) $(LIBOBJS) | $(MUNCH) > _ctdt.c
  62. $(CC) -fdollars-in-identifiers -c _ctdt.c -o _ctdt.o
  63. $(LD) -r _ctdt.o $(LIBOBJS) -o $@
  64. # recursive TAGS rule
  65. TAGS: MANIFEST
  66. ifneq ($(SUBDIRS),)
  67. $(MAKE) CPU=$(CPU) TOOL=$(TOOL) TGT_DIR=$(TGT_DIR) 
  68. TARGET=TAGS $(SUBDIRS)
  69. endif
  70. etags `cat MANIFEST`
  71. # recursive realclean rule
  72. realclean:
  73. ifneq ($(SUBDIRS),)
  74. $(MAKE) CPU=$(CPU) TOOL=$(TOOL) TGT_DIR=$(TGT_DIR) 
  75. TARGET=realclean $(SUBDIRS)
  76. endif
  77. $(MAKE) CPU=$(CPU) TOOL=$(TOOL) TGT_DIR=$(TGT_DIR) clean
  78. $(RM) *.[is] TAGS MANIFEST core _ctdt* *.o *.out
  79. # recursive objects rule
  80. objects:
  81. ifneq ($(SUBDIRS),)
  82. $(MAKE) CPU=$(CPU) TOOL=$(TOOL) TGT_DIR=$(TGT_DIR) 
  83. TARGET=objects $(SUBDIRS)
  84. endif
  85. $(MAKE) -j$(J) CPU=$(CPU) TOOL=$(TOOL) TGT_DIR=$(TGT_DIR) objs
  86. # recursive distributed objects rule
  87. dobjects:
  88. ifneq ($(SUBDIRS),)
  89. $(MAKE) CPU=$(CPU) TOOL=$(TOOL) TGT_DIR=$(TGT_DIR) 
  90. TARGET=dobjects $(SUBDIRS)
  91. endif
  92. CLEARCASE_MAKE_COMPAT=gnu CCASE_HOST_TYPE=ultra1 clearmake -J $(J) 
  93. TOOL=$(TOOL) CPU=$(CPU) $(OBJS)
  94. # recursive cleantags rule
  95. cleantags:
  96. ifneq ($(SUBDIRS),)
  97. $(MAKE) CPU=$(CPU) TOOL=$(TOOL) TGT_DIR=$(TGT_DIR) 
  98. TARGET=cleantags $(SUBDIRS)
  99. endif
  100. $(RM) TAGS
  101. MANIFEST:
  102. @$(RM) $@
  103. @$(CLEARTOOL) find .  -type f -cview -print 
  104. | sed -e s/..// -e 's/@@.*//' > $@