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

VxWorks

开发平台:

C/C++

  1. # Makefile - makefile for target/src/vxdcom/idl
  2. #
  3. # modification history
  4. # --------------------
  5. # 01o,22oct01,dbs  only clean derived files when auto-idlcomp is enabled
  6. # 01n,19oct01,dbs  exclude certain IDL files from p/s generation
  7. # 01m,17oct01,dbs  improve IDL-build rules to allow for veloce hacks
  8. # 01l,11oct01,nel  Include defs file by default as it's required by SIMNT
  9. #                  build.
  10. # 01k,10oct01,dbs  fix inclusion of rules library
  11. # 01j,20aug01,nel  Add rpcDceProto.idl.
  12. # 01i,20jul01,dbs  use new WIDL flags to point output to local dir
  13. # 01h,16jul01,dbs  add separate IDL-compilation rule
  14. # 01g,13jul01,dbs  fix file list
  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 proxy/stub files, headers and UUID files (the
  28. # *_ps.cpp, *.h and *_i.c files, respectively) except for one specific 
  29. # case, ClassFactory.idl, which we have to manually generate the p/s file
  30. # for (for now).
  31. #
  32. DEFS_VXCOM = $(WIND_BASE)/target/h/make/defs.vxcom
  33. include $(DEFS_VXCOM)
  34. include $(VXDCOM_BASE)/h/make/rules.library.$(VXDCOM_BUILD_HOST)
  35. ifeq ($(WIND_HOST_TYPE),x86-linux2)
  36. LN = ln -sf
  37. endif
  38. ifeq ($(WIND_HOST_TYPE),sun4-solaris2)
  39. LN = ln -sf
  40. endif
  41. ifeq ($(WIND_HOST_TYPE),x86-win32)
  42. LN = copy
  43. endif
  44. H_DIR = $(TGT_DIR)/h
  45. VXCOM_DIR = ../../vxcom/idl
  46. # Public/private IDL source files (until we stop shipping OPC headers)
  47. IDL_SRCS_pub = opcda.idl opccomn.idl opc_ae.idl
  48. IDL_SRCS_prv = RemoteActivation.idl OxidResolver.idl orpc.idl RemUnknown.idl rpcDceProto.idl
  49. # Exclude certain IDL files from p/s generation
  50. IDL_SRCS_nops = rpcDceProto.idl
  51. HDRS_pub = $(patsubst %.idl,%.h,$(IDL_SRCS_pub))
  52. HDRS_prv = $(patsubst %.idl,%.h,$(IDL_SRCS_prv))
  53. IDL_SRCS = $(IDL_SRCS_prv) $(IDL_SRCS_pub)
  54. I_SRCS = $(patsubst %.idl,%_i.c,$(IDL_SRCS))
  55. PS_SRCS = $(patsubst %.idl,%_ps.cpp,$(filter-out $(IDL_SRCS_nops),$(IDL_SRCS)))
  56. # Generated files
  57. PRIVATE_HDRS = $(patsubst %,$(VXDCOM_PRIVATE_H_DIR)/%,$(HDRS_prv))
  58. PUBLIC_HDRS = $(patsubst %,$(VXDCOM_PUBLIC_H_DIR)/%,$(HDRS_pub))
  59. GUID_SRCS = $(patsubst %,$(VXDCOM_GUID_DIR)/%, $(I_SRCS))
  60. PROXY_SRCS = $(patsubst %,$(VXDCOM_PS_DIR)/%, $(PS_SRCS))
  61. DERIVED_SRCS = $(GUID_SRCS) $(PROXY_SRCS)
  62. DEPEND_FILE = depend.$(CPU)$(TOOL)
  63. ifeq ($(VXCOM_NO_AUTOMATIC_IDLCOMP),)
  64. LOCAL_CLEAN = $(PUBLIC_HDRS) $(PRIVATE_HDRS) $(DERIVED_SRCS)
  65. endif
  66. #
  67. # The default rule builds the IDL-derived headers and installs them. 
  68. # It also builds the proxy/stubs from the vxcom IDL directory,
  69. # then sub-makes the 'lib' target to compile the *_i.c and *_ps.cpp
  70. # files, which didn't exist when the original make was entered, hence 
  71. # the use of a sub-make.
  72. #
  73. # Check for IDL-compilation prevention...
  74. ifeq ($(VXCOM_NO_AUTOMATIC_IDLCOMP),)
  75. Default: idlcomp
  76. $(MAKE) CPU=$(CPU) TOOL=$(TOOL) lib
  77. endif
  78. # just run IDL compilation
  79. .PHONY: idlcomp
  80. idlcomp: vxcom_ps $(PUBLIC_HDRS) $(PRIVATE_HDRS) $(GUID_SRCS) $(PROXY_SRCS)
  81. # make vxcom p/s sources
  82. .PHONY: vxcom_ps
  83. vxcom_ps:
  84. (cd ../../vxcom/idl ; $(MAKE) CPU=$(CPU) TOOL=$(TOOL) proxystubs)
  85. verify:
  86. @echo PRIVATE_HDRS=$(PRIVATE_HDRS)
  87. @echo PUBLIC_HDRS=$(PUBLIC_HDRS) 
  88. @echo GUID_SRCS=$(GUID_SRCS) 
  89. @echo PROXY_SRCS=$(PROXY_SRCS) 
  90. @echo OBJS=$(OBJS)