home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Makefiles / pb_makefiles / aggregate.make next >
Text File  |  1997-03-17  |  2KB  |  79 lines

  1. #
  2. # aggregate.make
  3. #
  4. # Variable definitions and rules for building aggregate projects.  An
  5. # aggregate is a project which does not itself contain any code or
  6. # resources, but instead contains a number of related subprojects.  For
  7. # example, if you have a framework, a palette which palettizes the framework
  8. # classes, and some applications which use the palette, then you would
  9. # create an aggregate which contains all of them.
  10. #
  11. # PUBLIC TARGETS
  12. #    aggregate: synonymous with all
  13. #
  14. # IMPORTED VARIABLES
  15. #    none
  16. #
  17. # EXPORTED VARIABLES
  18. #    none
  19. #
  20.  
  21. .PHONY: aggregate all
  22. aggregate: all
  23. PROJTYPE = AGGREGATE
  24.  
  25. include $(MAKEFILEDIR)/common.make
  26.  
  27. -include $(LOCAL_MAKEFILEDIR)/aggregate.make.preamble
  28.  
  29. #
  30. # ensure that subprojects will have access to each other's products
  31. #
  32.  
  33. RECURSIVE_CFLAGS += -I$(SYMROOT)/Headers -I$(SYMROOT)/PrivateHeaders -F$(SYMROOT)
  34. RECURSIVE_LDFLAGS += -F$(SYMROOT) -L$(SYMROOT)
  35.  
  36. #
  37. # unlike most project types, the aggregate does no processing on its
  38. # own and simply recursively invokes the given target on all subprojects
  39. #
  40.  
  41. all: banner-for-all $(RECURSABLE_DIRS:%=all@%)
  42. clean: banner-for-clean $(RECURSABLE_DIRS:%=clean@%)
  43. mostlyclean: banner-for-mostlyclean $(RECURSABLE_DIRS:%=mostlyclean@%)
  44. prebuild: banner-for-prebuild $(RECURSABLE_DIRS:%=prebuild@%)
  45. build: banner-for-build $(RECURSABLE_DIRS:%=build@%)
  46. installhdrs: banner-for-installhdrs $(RECURSABLE_DIRS:%=installhdrs@%)
  47. ifeq ($(OS)-$(REINSTALLING)-$(STRIP_ON_INSTALL), WINDOWS--YES)
  48. install: all
  49.     $(MAKE) reinstall-stripped REINSTALLING=YES
  50. else
  51. install: banner-for-install $(BEFORE_INSTALL) $(RECURSABLE_DIRS:%=install@%) $(AFTER_INSTALL)
  52. endif
  53.  
  54.  
  55. $(RECURSABLE_DIRS:%=all@%): banner-for-all
  56. $(RECURSABLE_DIRS:%=clean@%): banner-for-clean
  57. $(RECURSABLE_DIRS:%=mostlyclean@%): banner-for-mostlyclean
  58. $(RECURSABLE_DIRS:%=prebuild@%): banner-for-prebuild
  59. $(RECURSABLE_DIRS:%=build@%): banner-for-build
  60. $(RECURSABLE_DIRS:%=installhdrs@%): banner-for-installhdrs
  61. $(RECURSABLE_DIRS:%=install@%): banner-for-install
  62.  
  63. BANNER_TARGET = $(subst banner-for-,,$@)
  64. banner-for-%:
  65.     $(SILENT) $(ECHO) == Making $(BANNER_TARGET) for $(TARGET_ARCHS) in $(ALL_SUBPROJECTS) ==
  66.  
  67. # Special rules for making stripped targets on NT
  68. # Note that this section is duplicated in install.make, and any
  69. # changes made here must be reflected there.  
  70. #
  71.  
  72. ifeq "$(OS)" "WINDOWS"
  73. include $(MAKEFILEDIR)/reinstall.make
  74. endif
  75.  
  76. -include $(LOCAL_MAKEFILEDIR)/aggregate.make.postamble
  77.  
  78.