home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Makefiles / app / palette.make < prev    next >
Text File  |  1994-09-16  |  6KB  |  167 lines

  1. #
  2. #                               palette.make
  3. #
  4. # Inputs from Makefile.preamble (no defaults):
  5. #    OTHER_CFLAGS - Flags passed to compiler (in addition to -g, -O, etc.)
  6. #    PALETTELDFLAGS - Additional flags passed to ld when linking palettes
  7. #    OTHER_OFILES - Additional relocatables that may be linked in
  8. #    OTHER_PRODUCT_DEPENDS - Other dependencies of this project
  9. #    OTHER_SOURCEFILES - Other source files maintained by .pre/postamble
  10. #    OTHER_GARBAGE - Additional files to be removed by make 'clean' 
  11. #    PRECOMPS - Precompiled headers that should be built before compilation 
  12. #    OTHER_INITIAL_TARGETS - Targets to be built before subprojects, etc.
  13. #
  14. #    MSGFILES - .msg files that should have msgwrap run on them
  15. #    DEFSFILES - .defs files that should have mig run on them
  16. #    MIGFILES - .mig files (no .defs files) that should have mig run on them
  17. #
  18. #    DSTROOT - Virtual root directory prepended to $(INSTALLDIR)
  19. #
  20. # Inputs from Makefile.preamble (with defaults set here or in common.make):
  21. #    NORMAL_CFLAGS - Flags passed to compiler in normal compiles
  22. #    MAKEFILES - Makefiles this project depends on (default = Makefile)
  23. #    DEFAULT_CFLAGS - All compiler flags for this level (default set below)
  24. #
  25. # Inputs from Makefile (avoid setting these, ProjectBuilder controls them):
  26. #    NAME - name of application
  27. #    LANGUAGE - langage in which the project is written (default "English")
  28. #    LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project
  29. #    GLOBAL_RESOURCES - non-localized resources of project
  30. #
  31. #    CLASSES - Class implementation files in project.
  32. #    HFILES - Header files in project.
  33. #    MFILES - Other Objective-C source files in project. 
  34. #    CFILES - Other C source files in project. 
  35. #    PSWFILES - .psw files in the project
  36. #    PSWMFILES - .pswm files in the project
  37. #    SUBPROJECTS - Subprojects of this project
  38. #    BUNDLES - Bundle subprojects of this project
  39. #    OTHERSRCS - Other miscellaneous sources of this project
  40. #    OTHERLINKED - Source files not matching a standard source extention
  41. #    OTHERLINKEDOFILES - Other relocatable files to (always) link in.
  42. #    APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles
  43. #    MAKEFILEDIR - Directory in which to find $(MAKEFILE)
  44. #    MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make)
  45.  
  46.  
  47.  
  48. APP_MAKEFILE_DIR = /NextDeveloper/Makefiles/app
  49. include $(APP_MAKEFILE_DIR)/common.make
  50. include $(APP_MAKEFILE_DIR)/specialrules.make
  51.  
  52. PRODUCT_ROOT = $(SYMROOT)/$(NAME).palette
  53.  
  54. all palette:: 
  55.     @($(MKDIRS) $(PRODUCT_ROOT) ; \
  56.     $(process_target_archs)_obj ; \
  57.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \
  58.         language_cflags='' ; \
  59.     else \
  60.         language_cflags='-DKANJI' ; \
  61.     fi ; \
  62.     $(MAKE) project \
  63.         "PRODUCT_ROOT = $(PRODUCT_ROOT)" \
  64.         "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  65.         "PROJ_CFLAGS = $(NORMAL_CFLAGS) $$language_cflags" \
  66.         "MAKEFILEDIR = $(MAKEFILEDIR)" \
  67.         "DEVROOT = $(DEVROOT)" \
  68.         "RC_CFLAGS = $$arch_cflags" \
  69.         "RC_ARCHS = $$archs" \
  70.         "SRCROOT = $(SRCROOT)" \
  71.         "OBJROOT = $(OBJROOT)" \
  72.         "SYMROOT = $(SYMROOT)/sym" \
  73.         "SYM_DIR = $(SYMROOT)/sym" )
  74.  
  75. debug::
  76.     @($(MKDIRS) $(PRODUCT_ROOT) ; \
  77.     $(process_target_archs)_debug_obj ; \
  78.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \
  79.         language_cflags='' ; \
  80.     else \
  81.         language_cflags='-DKANJI' ; \
  82.     fi ; \
  83.     $(MAKE) project \
  84.         "PRODUCT_ROOT = $(PRODUCT_ROOT)" \
  85.         "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  86.         "PROJ_CFLAGS = $(DEBUG_CFLAGS) $$language_cflags" \
  87.         "MAKEFILEDIR = $(MAKEFILEDIR)" \
  88.         "DEVROOT = $(DEVROOT)" \
  89.         "RC_CFLAGS = $$arch_cflags" \
  90.         "RC_ARCHS = $$archs" \
  91.         "SRCROOT = $(SRCROOT)" \
  92.         "OBJROOT = $(OBJROOT)" \
  93.         "SYMROOT = $(SYMROOT)/sym" \
  94.         "SYM_DIR = $(SYMROOT)/sym" )
  95.  
  96. profile::
  97.     @($(MKDIRS) $(PRODUCT_ROOT) ; \
  98.     $(process_target_archs)_profile_obj ; \
  99.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \
  100.         language_cflags='' ; \
  101.     else \
  102.         language_cflags='-DKANJI' ; \
  103.     fi ; \
  104.     $(MAKE) project \
  105.         "PRODUCT_ROOT = $(PRODUCT_ROOT)" \
  106.         "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  107.         "PROJ_CFLAGS = $(PROFILE_CFLAGS) $$language_cflags" \
  108.         "MAKEFILEDIR = $(MAKEFILEDIR)" \
  109.         "DEVROOT = $(DEVROOT)" \
  110.         "RC_CFLAGS = $$arch_cflags" \
  111.         "RC_ARCHS = $$archs" \
  112.         "SRCROOT = $(SRCROOT)" \
  113.         "OBJROOT = $(OBJROOT)" \
  114.         "SYMROOT = $(SYMROOT)/sym" \
  115.         "SYM_DIR = $(SYMROOT)/sym" )
  116.  
  117. project:: $(INITIAL_TARGETS) subprojs bundles tools \
  118.     resources $(PRODUCT_ROOT)/$(NAME)
  119.     
  120. $(PRODUCT_ROOT):
  121.     @$(MKDIRS) $(PRODUCT_ROOT)
  122.  
  123. TEMP_C_FILE = $(SYM_DIR)/$(NAME).c 
  124.  
  125. $(PRODUCT_ROOT)/$(NAME): $(OFILE_DIR) $(PRODUCT_DEPENDS) $(PRODUCT_ROOT)
  126.     @(if [ "`$(ECHO) $(OFILES) $(OTHER_OFILES) | wc -w`" != "       0" ] ; \
  127.     then \
  128.         cmd="$(CC) -nostdlib $(ALL_CFLAGS) $(OBJCFLAG) -r $(PALETTELDFLAGS) $(ALL_LDFLAGS) -o $(PRODUCT_ROOT)/$(NAME) $(OFILES) $(OTHER_OFILES) $(OTHER_LIBS)" ; \
  129.         echo $$cmd ; $$cmd ; \
  130.     else \
  131.        $(ECHO) Warning: Building empty palette. ; \
  132.        $(RM) -f $(TEMP_C_FILE) ; \
  133.        $(TOUCH) $(TEMP_C_FILE) ; \
  134.        $(CC) $(CFLAGS) $(OTHER_CFLAGS) $(RC_CFLAGS) -c $(TEMP_C_FILE) -o $(PRODUCT_ROOT)/$(NAME) ; \
  135.        $(RM) -f $(TEMP_C_FILE) ; \
  136.     fi ; \
  137.     $(CHMOD) a+x $(PRODUCT_ROOT)/$(NAME) )
  138.  
  139. $(DSTROOT)$(INSTALLDIR):
  140.     @$(MKDIRS) $(DSTROOT)$(INSTALLDIR)
  141.  
  142. before_install:: $(DSTROOT)$(INSTALLDIR)
  143.     $(RM) -rf $(DSTROOT)$(INSTALLDIR)/$(NAME).palette
  144.  
  145. after_install::
  146.  
  147. install:: palette before_install installhdrs $(OTHER_INSTALL_DEPENDS)
  148.     (cd $(SYMROOT); $(TAR) chf - $(NAME).palette) | (cd $(DSTROOT)$(INSTALLDIR); $(TAR) xf -)    
  149.     $(STRIP) $(RELOCATABLE_STRIP_OPTS) $(DSTROOT)$(INSTALLDIR)/$(NAME).palette/$(NAME)
  150.     @($(process_target_archs)_obj ; \
  151.     $(MAKE) after_install     "DSTROOT=$(DSTROOT)" \
  152.                        "OBJROOT=$(OBJROOT)" \
  153.                        "SYMROOT=$(SYMROOT)" \
  154.                 "DEVROOT = $(DEVROOT)" \
  155.                 "INSTALLDIR = $(INSTALLDIR)" \
  156.                 "PRODUCT_ROOT = $(SYMROOT)/$(NAME).palette" \
  157.                 "SYM_DIR = $(SYMROOT)/sym" \
  158.                 "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  159.                 "PROJ_CFLAGS = $(NORMAL_CFLAGS)" \
  160.                 "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)" \
  161.                 "RC_CFLAGS = $$arch_cflags" \
  162.                 "RC_ARCHS = $$archs" )
  163.  
  164.  
  165. depend:: Makefile.dependencies $(SUBPROJECTS:.subproj=.depend) $(BUNDLES:.bproj=.depend) $(TOOLS:.tproj=.depend)
  166.  
  167.