home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Makefiles / pb_makefiles / framework.make < prev    next >
Text File  |  1996-12-05  |  3KB  |  85 lines

  1. #
  2. #
  3. # IMPORTED VARIABLES
  4. #    FRAMEWORK_DLL_INSTALLDIR:  On Windows platforms, this variable indicates
  5. #    where to put the framework's DLL.  This variable defaults to 
  6. #    $(INSTALLDIR)/../Executables
  7. #    
  8. # OVERRIDABLE VARIABLES
  9. #    INSTALL_NAME_DIRECTIVE:  This directive ensures that executables linked
  10. #    against the framework will run against the correct version even if
  11. #    the current version of the framework changes.  You may override this
  12. #    to "" as an alternative to using the DYLD_LIBRARY_PATH during your
  13. #    development cycle, but be sure to restore it before installing.
  14. #
  15.  
  16. .PHONY: framework all
  17. framework: all
  18. PROJTYPE = FRAMEWORK
  19.  
  20. PRODUCT = $(PRODUCT_DIR)/$(NAME).framework
  21. PRODUCTS = $(PRODUCT)
  22. INNER_PRODUCT = $(PRODUCT)/$(NAME)$(BUILD_TYPE_SUFFIX)$(DLL_EXT)
  23. STRIPPED_PRODUCTS = $(INNER_PRODUCT)
  24.  
  25. DYLIB_INSTALL_DIR = $(INSTALLDIR)/$(NAME).framework
  26. DYLIB_INSTALL_NAME = $(NAME)$(BUILD_TYPE_SUFFIX)$(DLL_EXT)
  27. INSTALL_NAME_DIRECTIVE = -install_name $(DYLIB_INSTALL_DIR)/$(DYLIB_INSTALL_NAME)
  28.  
  29. PROJTYPE_LDFLAGS = -dynamic -compatibility_version $(COMPATIBILITY_PROJECT_VERSION) -current_version $(CURRENT_PROJECT_VERSION) $(INSTALL_NAME_DIRECTIVE)
  30.  
  31. PUBLIC_HDR_INSTALLDIR = $(INSTALLDIR)/$(NAME).framework/Headers
  32. PRIVATE_HDR_INSTALLDIR = $(INSTALLDIR)/$(NAME).framework/PrivateHeaders
  33.  
  34. BEFORE_INSTALL += verify-install-name-directive
  35.  
  36. ifeq "WINDOWS" "$(OS)"
  37. ifneq "$(LIBRARY_STYLE)" "STATIC"
  38.  
  39. AFTER_INSTALL += install-dll
  40. OS_LDFLAGS += -def $(WINDOWS_DEF_FILE)
  41.  
  42. endif
  43. endif
  44.  
  45. include $(MAKEFILEDIR)/wrapped-common.make
  46. -include $(LOCAL_MAKEFILEDIR)/framework.make.preamble
  47.  
  48. RECURSIVE_CFLAGS += -F$(PRODUCT_DIR)
  49.  
  50. RECURSIVE_FLAGS += PUBLIC_HDR_DIR=$(PUBLIC_HDR_DIR)
  51. RECURSIVE_FLAGS += PRIVATE_HDR_DIR=$(PRIVATE_HDR_DIR)
  52.  
  53. $(PRODUCT): $(INNER_PRODUCT)
  54.  
  55. $(INNER_PRODUCT): $(DEPENDENCIES) $(WINDOWS_DEF_FILE)
  56.     $(LIBTOOL) $(ALL_LIBTOOL_FLAGS) -o $(INNER_PRODUCT) $(LOADABLES)
  57.  
  58. ifndef FRAMEWORK_DLL_INSTALLDIR
  59. FRAMEWORK_DLL_INSTALLDIR = $(INSTALLDIR)/../Executables
  60. endif
  61.  
  62. #
  63. # install customization
  64. #
  65.  
  66. verify-install-name-directive:
  67. ifeq "" "$(INSTALL_NAME_DIRECTIVE)"
  68.     $(SILENT) $(ECHO) You must restore the INSTALL_NAME_DIRECTIVE variable
  69.     $(SILENT) $(ECHO) before installing a framework.
  70.     $(SILENT) exit 1
  71. endif
  72.  
  73. install-dll: $(DSTROOT)$(FRAMEWORK_DLL_INSTALLDIR)
  74.     $(RM) -f $(DSTROOT)$(FRAMEWORK_DLL_INSTALLDIR)/$(NAME)$(DLL_EXT)
  75.     $(MV) $(DSTROOT)$(INSTALLDIR)/$(NAME).framework/$(NAME)$(DLL_EXT) $(DSTROOT)$(FRAMEWORK_DLL_INSTALLDIR)
  76.  
  77. #
  78. # creating directories
  79. #
  80.  
  81. $(DSTROOT)$(FRAMEWORK_DLL_INSTALLDIR):
  82.     $(MKDIRS) $@
  83.  
  84. -include $(LOCAL_MAKEFILEDIR)/framework.make.postamble
  85.