home *** CD-ROM | disk | FTP | other *** search
/ OpenStep (Enterprise) / OpenStepENTCD.toast / OEDEV / DEV.Z / versions.make < prev    next >
Encoding:
Text File  |  1996-09-08  |  4.2 KB  |  115 lines

  1. #
  2. # versions.make
  3. #
  4. # Rules for projects which can be deployed using named versions.  Only
  5. # frameworks and libraries may be versioned, and the means of versioning
  6. # them is completely different.
  7. #
  8. # IMPORTED VARIABLES
  9. #    DEPLOY_WITH_VERSION_NAME
  10. #    DYLIB_INSTALL_NAME # ignored for frameworks
  11. #    DYLIB_INSTALL_DIR  # ignored for frameworks
  12. #
  13.  
  14. #
  15. # Versioning is only supported on some platforms
  16. #
  17.  
  18. ifneq "WINDOWS" "$(OS)"
  19. ENABLE_VERSIONING = YES
  20. endif
  21.  
  22. #
  23. # Ignore this entire file if versioning is disabled
  24. #
  25.  
  26. ifeq "YES" "$(ENABLE_VERSIONING)"
  27.  
  28. #
  29. # Rules for framework projects
  30. #
  31.  
  32. ifeq "FRAMEWORK" "$(PROJTYPE)"
  33.  
  34. .PHONY: create-version-links change-current-version-link
  35. .PHONY: create-install-version-links change-current-install-version-link
  36.  
  37. BEFORE_BUILD_RECURSION += create-version-links
  38. BEFORE_PREBUILD += create-version-links
  39. BEFORE_INSTALLHDRS += create-install-version-links
  40. ifneq "NO" "$(CURRENTLY_ACTIVE_VERSION)"
  41. AFTER_BUILD += change-current-version-link
  42. AFTER_INSTALLHDRS += change-current-install-version-link
  43. endif
  44.  
  45. DYLIB_INSTALL_DIR := $(DYLIB_INSTALL_DIR)/Versions/$(VERSION_NAME)
  46. NONVERSIONED_INNER_PRODUCT := $(INNER_PRODUCT)
  47. INNER_PRODUCT := $(dir $(INNER_PRODUCT))Versions/$(VERSION_NAME)/$(notdir $(INNER_PRODUCT))
  48. NONVERSIONED_PRIVATE_HDR_DIR := $(PRIVATE_HDR_DIR)
  49. PRIVATE_HDR_DIR := $(dir $(PRIVATE_HDR_DIR))Versions/$(VERSION_NAME)/$(notdir $(PRIVATE_HDR_DIR))
  50. NONVERSIONED_PUBLIC_HDR_DIR := $(PUBLIC_HDR_DIR)
  51. PUBLIC_HDR_DIR := $(dir $(PUBLIC_HDR_DIR))Versions/$(VERSION_NAME)/$(notdir $(PUBLIC_HDR_DIR))
  52. NONVERSIONED_PRIVATE_HDR_INSTALLDIR := $(PRIVATE_HDR_INSTALLDIR)
  53. PRIVATE_HDR_INSTALLDIR := $(dir $(PRIVATE_HDR_INSTALLDIR))Versions/$(VERSION_NAME)/$(notdir $(PRIVATE_HDR_INSTALLDIR))
  54. NONVERSIONED_PUBLIC_HDR_INSTALLDIR := $(PUBLIC_HDR_INSTALLDIR)
  55. PUBLIC_HDR_INSTALLDIR := $(dir $(PUBLIC_HDR_INSTALLDIR))Versions/$(VERSION_NAME)/$(notdir $(PUBLIC_HDR_INSTALLDIR))
  56. NONVERSIONED_LOCAL_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR)
  57. LOCAL_RESOURCE_DIR := $(subst $(GLOBAL_RESOURCE_DIR),$(dir $(GLOBAL_RESOURCE_DIR))Versions/$(VERSION_NAME)/$(notdir $(GLOBAL_RESOURCE_DIR)),$(LOCAL_RESOURCE_DIR))
  58. NONVERSIONED_GLOBAL_RESOURCE_DIR := $(GLOBAL_RESOURCE_DIR)
  59. GLOBAL_RESOURCE_DIR := $(dir $(GLOBAL_RESOURCE_DIR))Versions/$(VERSION_NAME)/$(notdir $(GLOBAL_RESOURCE_DIR))
  60.  
  61. create-version-links: $(dir $(NONVERSIONED_GLOBAL_RESOURCE_DIR))Versions/Current $(NONVERSIONED_INNER_PRODUCT) $(NONVERSIONED_PRIVATE_HDR_DIR) $(NONVERSIONED_PUBLIC_HDR_DIR) $(NONVERSIONED_GLOBAL_RESOURCE_DIR)
  62.  
  63. $(dir $(NONVERSIONED_GLOBAL_RESOURCE_DIR))Versions/Current:
  64.     $(RM) -rf $@
  65.     $(MKDIRS) $(dir $@)
  66.     $(SYMLINK) $(VERSION_NAME) $@
  67.  
  68. $(NONVERSIONED_INNER_PRODUCT) $(NONVERSIONED_PRIVATE_HDR_DIR) $(NONVERSIONED_PUBLIC_HDR_DIR) $(NONVERSIONED_GLOBAL_RESOURCE_DIR) $(DSTROOT)$(NONVERSIONED_PRIVATE_HDR_INSTALLDIR) $(DSTROOT)$(NONVERSIONED_PUBLIC_HDR_INSTALLDIR):
  69.     $(RM) -rf $@
  70.     $(MKDIRS) $(dir $@)
  71.     $(SYMLINK) Versions/Current/$(notdir $@) $@
  72.  
  73. change-current-version-link:
  74.     $(RM) -rf $(dir $(NONVERSIONED_GLOBAL_RESOURCE_DIR))Versions/Current
  75.     $(MKDIRS) $(dir $(NONVERSIONED_GLOBAL_RESOURCE_DIR))Versions
  76.     $(SYMLINK) $(VERSION_NAME) $(dir $(NONVERSIONED_GLOBAL_RESOURCE_DIR))Versions/Current
  77.  
  78. create-install-version-links: $(DSTROOT)$(NONVERSIONED_PRIVATE_HDR_INSTALLDIR)\
  79.   $(DSTROOT)$(NONVERSIONED_PUBLIC_HDR_INSTALLDIR)
  80.     
  81. change-current-install-version-link:
  82.     $(RM) -rf $(DSTROOT)$(dir $(NONVERSIONED_PUBLIC_HDR_INSTALLDIR))Versions/Current
  83.     $(MKDIRS) $(DSTROOT)$(dir $(NONVERSIONED_PUBLIC_HDR_INSTALLDIR))Versions
  84.     $(SYMLINK) $(VERSION_NAME) $(DSTROOT)$(dir $(NONVERSIONED_PUBLIC_HDR_INSTALLDIR))Versions/Current
  85.  
  86. endif    # PROJTYPE == FRAMEWORK
  87.  
  88. ifeq "LIBRARY" "$(PROJTYPE)"
  89. ifneq "STATIC" "$(LIBRARY_STYLE)"
  90.  
  91. #
  92. # Rules for library projects
  93. #
  94.  
  95. .PHONY: change-current-version-link
  96.  
  97. PRODUCTS += $(NONVERSIONED_PRODUCT)
  98. BEFORE_PREBUILD += create-version-links
  99. ifneq "NO" "$(CURRENTLY_ACTIVE_VERSION)"
  100. AFTER_BUILD += change-current-version-link
  101. endif
  102.  
  103. DYLIB_INSTALL_NAME := $(subst $(NAME),$(NAME).$(VERSION_NAME),$(DYLIB_INSTALL_NAME))
  104. NONVERSIONED_PRODUCT := $(PRODUCT)
  105. PRODUCT := $(dir $(PRODUCT))$(subst $(NAME),$(NAME).$(VERSION_NAME),$(notdir $(PRODUCT)))
  106.  
  107. $(NONVERSIONED_PRODUCT) change-current-version-link:
  108.     $(RM) -rf $(NONVERSIONED_PRODUCT)
  109.     $(SYMLINK) $(notdir $(PRODUCT)) $(NONVERSIONED_PRODUCT)
  110.  
  111. endif
  112. endif
  113.  
  114. endif
  115.