Makefile
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. # Makefile - makefile for target/src/vxcom/idl
  2. #
  3. # modification history
  4. # --------------------
  5. # 01o,22oct01,dbs  only clean derived files when auto-idlcomp is enabled
  6. # 01n,17oct01,dbs  improve IDL-build rules to allow for veloce hacks
  7. # 01m,11oct01,nel  Include defs file by default as it's required by SIMNT
  8. #                  build.
  9. # 01l,10oct01,nel  Add rule to build widl.
  10. # 01k,20jul01,dbs  remove symlinking of output headers
  11. # 01j,16jul01,dbs  add separate IDL-compilation rule
  12. # 01i,13jul01,dbs  add ConnectionPoint IDL
  13. # 01h,29jun01,nel  Correct creation of logical links.
  14. # 01g,27jun01,dbs  defeat p/s file compilation
  15. # 01f,09mar01,nel  Change rules so that view private symbolic links are
  16. #                  created for headers/idl files in target/h.
  17. # 01e,08mar01,nel  Remove manualclean rule and restore rclean rule
  18. # 01d,25oct00,nel  Add manualclean rule to delete widl generated files and
  19. #                  modify rclean rule to NOT delete widl generated files.
  20. # 01c,14jun00,nel  make dependencies work correctly for idl files.
  21. # 01b,30may00,nel  Renamed Stream.idl to vxStream.idl.
  22. # 01a,09feb00,dbs  created
  23. #
  24. # This Makefile builds the IDL-derived sources first, then compiles them
  25. # as per normal target build rule 'lib'
  26. #
  27. # We turn all IDL files into headers and UUID files (the *.h and *_i.c
  28. # files, respectively).
  29. #
  30. DEFS_VXCOM = $(WIND_BASE)/target/h/make/defs.vxcom
  31. include $(DEFS_VXCOM)
  32. include $(VXCOM_BASE)/h/make/rules.library.$(VXDCOM_BUILD_HOST)
  33. ifeq ($(WIND_HOST_TYPE),x86-linux2)
  34. LN = ln -sf
  35. endif
  36. ifeq ($(WIND_HOST_TYPE),sun4-solaris2)
  37. LN = ln -sf
  38. endif
  39. ifeq ($(WIND_HOST_TYPE),x86-win32)
  40. LN = copy
  41. endif
  42. # Public/private IDL source files
  43. IDL_SRCS_pub = $(wildcard *.idl)
  44. IDL_SRCS_prv =
  45. HDRS_pub = $(patsubst %.idl,%.h,$(IDL_SRCS_pub))
  46. HDRS_prv = $(patsubst %.idl,%.h,$(IDL_SRCS_prv))
  47. IDL_SRCS = $(IDL_SRCS_prv) $(IDL_SRCS_pub)
  48. I_SRCS = $(patsubst %.idl,%_i.c,$(IDL_SRCS))
  49. PS_SRCS = $(patsubst %.idl,%_ps.cpp,$(IDL_SRCS))
  50. # Generated files
  51. PRIVATE_HDRS = $(patsubst %,$(VXCOM_PRIVATE_H_DIR)/%,$(HDRS_prv))
  52. PUBLIC_HDRS = $(patsubst %,$(VXCOM_PUBLIC_H_DIR)/%,$(HDRS_pub))
  53. GUID_SRCS = $(patsubst %,$(VXCOM_GUID_DIR)/%, $(I_SRCS))
  54. PROXY_SRCS = $(patsubst %,$(VXCOM_PS_DIR)/%, $(PS_SRCS))
  55. DERIVED_SRCS = $(GUID_SRCS) $(PROXY_SRCS)
  56. ifeq ($(VXCOM_NO_AUTOMATIC_IDLCOMP),)
  57. LOCAL_CLEAN = $(PUBLIC_HDRS) $(PRIVATE_HDRS) $(DERIVED_SRCS)
  58. endif
  59. DEPEND_FILE = depend.$(CPU)$(TOOL)
  60. CHMOD = chmod
  61. .PRECIOUS : $(GUID_SRCS) $(PUBLIC_HDRS)
  62. #
  63. # The default rule builds the IDL-derived headers directly into the
  64. # public header dir, then sub-makes the 'lib' target to compile the .c
  65. # files, which didn't exist when the original make was entered, hence 
  66. # the use of a sub-make.
  67. #
  68. # Check for IDL-compilation prevention...
  69. ifeq ($(VXCOM_NO_AUTOMATIC_IDLCOMP),)
  70. Default: idlcomp 
  71. $(MAKE) CPU=$(CPU) TOOL=$(TOOL) lib
  72. endif
  73. # just run IDL compilation(s) via implicit dependencies
  74. .PHONY: idlcomp
  75. idlcomp: $(PUBLIC_HDRS) $(GUID_SRCS)
  76. .PHONY: proxystubs
  77. proxystubs: $(PROXY_SRCS)
  78. verify:
  79. @echo IDL_SRCS=$(IDL_SRCS)
  80. @echo PRIVATE_HDRS=$(PRIVATE_HDRS)
  81. @echo PUBLIC_HDRS=$(PUBLIC_HDRS) 
  82. @echo GUID_SRCS=$(GUID_SRCS) 
  83. @echo PROXY_SRCS=$(PROXY_SRCS) 
  84. @echo OBJS=$(OBJS)