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

VxWorks

开发平台:

C/C++

  1. # rules.library.unix - build rules for VxCOM/DCOM as Unix shared libs
  2. #
  3. # modification history
  4. # --------------------
  5. # 01h,19oct01,dbs  fix typo in clean rule
  6. # 01g,19oct01,dbs  fix lib build, clean rule
  7. # 01f,17oct01,dbs  improve IDL-build rules to allow for veloce hacks
  8. # 01e,03oct01,dbs  adding filesystem unix registry requires -ldl
  9. # 01d,31jul01,dbs  add -fPIC flag for shared-lib build
  10. # 01c,24jul01,dbs  fix shared-lib build on solaris
  11. # 01b,24jul01,dbs  add IDL compilation pass
  12. # 01a,16jul01,dbs  written
  13. #
  14. # DESCRIPTION: the unix build takes place in the top-level directory,
  15. # without recursing into the subdirs. 
  16. #
  17. include $(VXCOM_BASE)/h/make/rules.library.common
  18. INCLUDES        = $(patsubst %,-I$(BASE_DIR)/%,$(INC_DIRS))
  19. LDXX            = $(CXX)
  20. HOST_LIB_DIR    = $(WIND_BASE)/host/$(WIND_HOST_TYPE)/lib
  21. OBJDIR          = $(BASE_DIR)/$(WIND_HOST_TYPE)
  22. TGT_DIR         = $(WIND_BASE)/target
  23. COMMON_CFLAGS   = -g -fPIC -D_REENTRANT -DINCLUDE_VXDCOM_SYSLOG $(INCLUDES) $(EXTRA_INCLUDES)
  24. ifeq ($(WIND_HOST_TYPE),sun4-solaris2)
  25. HOST = sun4-solaris2
  26. CFLAGS = -DSUN4_SOLARIS2 -DVXDCOM_PLATFORM_SOLARIS $(COMMON_CFLAGS) 
  27.                   -DCOM_VTBL_FORMAT=COM_VTBL_FORMAT_GCC2_OFFSET 
  28.                   -D_BYTE_ORDER=-1
  29. LIBS            = -lpthread -lposix4 -lsocket -lnsl -ldl
  30. SHARED_LDXX     = $(CXX) -G
  31. else
  32. HOST = x86-linux2
  33. CFLAGS = -DLINUX -DVXDCOM_PLATFORM_LINUX $(COMMON_CFLAGS) 
  34.                   -DCOM_VTBL_FORMAT=COM_VTBL_FORMAT_GCC2_THUNKS
  35. LIBS            = -lpthread -ldl
  36. SHARED_LDXX     = $(CXX) -shared
  37. endif
  38. CXXFLAGS        = $(CFLAGS)
  39. C_SRCS          = $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
  40. CPP_SRCS        = $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp))
  41. C_OBJS          = $(notdir $(patsubst %.c,%.o,$(C_SRCS)))
  42. CPP_OBJS        = $(notdir $(patsubst %.cpp,%.o,$(CPP_SRCS)))
  43. OBJS            = $(addprefix $(OBJDIR)/,$(C_OBJS) $(CPP_OBJS))
  44. VPATH           = $(SRC_DIRS)
  45. UNIXH           = $(BASE_DIR)/unixh
  46. # implicit rules
  47. %/.d:
  48. mkdir -p $@
  49. $(OBJDIR)/%.o : %.c
  50. $(COMPILE.c) $< -o $@
  51. $(OBJDIR)/%.o : %.cpp
  52. $(COMPILE.cc) $< -o $@
  53. #
  54. # The default rule builds the shared library, but only after building
  55. # the IDL (via the 'firstpass' rule).
  56. #
  57. Default: objdir firstpass
  58. $(MAKE) lib
  59. .PHONY: objdir
  60. objdir: $(OBJDIR)/.d
  61. firstpass: $(UNIXH)/.d
  62. $(MAKE) -C idl idlcomp
  63. lib: $(LIB)
  64. clean:
  65. $(RM) -rf $(OBJDIR) $(UNIXH) $(LIB) $(LOCAL_CLEAN) idl/*_i.c idl/*_ps.cpp
  66. $(LIB) : $(OBJS)
  67. $(SHARED_LDXX) -g -o $@ $(OBJS) $(LIBS)
  68. .PHONY: verify
  69. verify:
  70. @echo SRC_DIRS=$(SRC_DIRS)
  71. @echo SUBDIRS=$(SUBDIRS)
  72. @echo C_SRCS=$(C_SRCS)
  73. @echo CPP_SRCS=$(CPP_SRCS)
  74. @echo C_OBJS=$(C_OBJS)
  75. @echo CPP_OBJS=$(CPP_OBJS)
  76. @echo OBJS=$(OBJS)