home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / MiscKit1.7.1 / MiscKit / Makefiles / tool.make < prev    next >
Encoding:
Text File  |  1994-10-16  |  6.8 KB  |  207 lines

  1. #
  2. #                                  tool.make
  3. #
  4. # This may help you if you use a pre-3.2 system, but I can't
  5. # promise you it really will...
  6.  
  7. PRODUCT =  $(PRODUCT_ROOT)/$(NAME:.tproj=)
  8.  
  9. $(PRODUCT_ROOT):
  10.     @$(MKDIRS)  $(PRODUCT_ROOT)
  11.     
  12. APP_MAKEFILE_DIR =  /NextDeveloper/Makefiles/app
  13. include $(APP_MAKEFILE_DIR)/common.make
  14.  
  15.  
  16. all:: tool
  17.  
  18. app:: tool
  19.  
  20. tool::
  21.     @($(MKDIRS) $(SYMROOT) ;  \
  22.      $(process_target_archs)_obj ;  \
  23.     $(set_bundle_ext) ;  
  24.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then  \
  25.         language_cflags="" ;  \
  26.         libs="$(LIBS)" ; \
  27.         other_libs="$(OTHER_LIBS)" ;  \
  28.     else  \
  29.         language_cflags="-DKANJI" ;  \
  30.         libs="$(LIBS:lNeXT_s=lNeXTJ_s)" ;  \
  31.         other_libs="$(OTHER_LIBS:lNeXT_s=lNeXTJ_s)" ;  \
  32.     fi ;  \
  33.     $(MAKE) project  \
  34.         "PRODUCT_ROOT = $(SYMROOT)"  \
  35.         "PRODUCT = $(SYMROOT)/$(NAME)"  \
  36.         "OFILE_DIR = $(OBJROOT)/$$obj_dir"  \
  37.         "PROJ_CFLAGS = $(NORMAL_CFLAGS) $$language_cflags"  \
  38.         "LIBS = $$libs"  \
  39.         "OTHER_LIBS = $$other_libs"  \
  40.         "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)"  \
  41.         "BUNDLE_EXTENSION = $$bundle_ext" \
  42.         "RC_CFLAGS = $$arch_cflags"  \
  43.         "RC_ARCHS = $$archs"  \
  44.         "SRCROOT = $(SRCROOT)"  \
  45.         "OBJROOT = $(OBJROOT)"  \
  46.         "SYMROOT = $(SYMROOT)/sym"  \
  47.         "SYM_DIR = $(SYMROOT)/sym"  )
  48.  
  49. debug::
  50.     @($(MKDIRS) $(SYMROOT) ;  \
  51.      $(process_target_archs)_debug_obj ;  \
  52.     $(set_bundle_ext) ;  \
  53.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then  \
  54.         language_cflags="" ;  \
  55.         libs="$(DEBUG_LIBS)" ;  \
  56.         other_libs="$(OTHER_DEBUG_LIBS)" ;  \
  57.         other_japanese_libs="" ;  \
  58.     else \
  59.         language_cflags="-DKANJI" ;  \
  60.         libs="$(DEBUG_LIBS:lNeXT_s=lNeXTJ_s)" ;  \
  61.         other_libs="$(OTHER_DEBUG_LIBS:lNeXT_s=lNeXTJ_s)" ;  \
  62.         other_japanese_libs="$(OTHER_JAPANESE_DEBUG_LIBS)" ;  \
  63.     fi ;  \
  64.     $(MAKE) project  \
  65.         "PRODUCT_ROOT = $(SYMROOT)"  \
  66.         "PRODUCT = $(SYMROOT)/$(NAME)"  \
  67.         "OFILE_DIR = $(OBJROOT)/$$obj_dir"  \
  68.         "PROJ_CFLAGS = $(DEBUG_CFLAGS) $$language_cflags"  \
  69.         "LIBS = $$libs" "OTHER_LIBS = $$other_libs"  \
  70.         "OTHER_JAPANESE_LIBS = $$other_japanese_libs"  \
  71.         "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)"  \
  72.         "BUNDLE_EXTENSION = $$bundle_ext"  \
  73.         "RC_CFLAGS = $$arch_cflags"  \
  74.         "RC_ARCHS = $$archs"  \
  75.         "SRCROOT = $(SRCROOT)"  \
  76.         "OBJROOT = $(OBJROOT)"  \
  77.         "SYMROOT = $(SYMROOT)/sym"  \
  78.         "SYM_DIR = $(SYMROOT)/sym"  )
  79.  
  80. profile::
  81.     @($(MKDIRS) $(SYMROOT) ;  \
  82.      $(process_target_archs)_profile_obj ;  \
  83.     $(set_bundle_ext) ;  \
  84.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then  \
  85.         language_cflags="" ;  \
  86.         libs="$(PROF_LIBS)" ;  \
  87.         other_libs="$(OTHER_PROF_LIBS)" ;  \
  88.         other_japanese_libs="" ;  \
  89.     else  \
  90.         language_cflags="-DKANJI" ;  \
  91.         libs="$(PROF_LIBS:lNeXT_s=lNeXTJ_s)" ;  \
  92.         other_libs="$(OTHER_PROF_LIBS:lNeXT_s=lNeXTJ_s)" ;  \
  93.         other_japanese_libs="$(OTHER_JAPANESE_PROF_LIBS)" ;  \
  94.     fi ;  \
  95.     $(MAKE) project  \
  96.         "PRODUCT_ROOT = $(SYMROOT)"  \
  97.         "PRODUCT = $(SYMROOT)/$(NAME)"  \
  98.         "OFILE_DIR = $(OBJROOT)/$$obj_dir"  \
  99.         "PROJ_CFLAGS = $(PROFILE_CFLAGS) $$language_cflags"  \
  100.         "LIBS = $$libs" "OTHER_LIBS = $$other_libs"  \
  101.         "OTHER_JAPANESE_LIBS = $$other_japanese_libs"  \
  102.         "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)"  \
  103.         "BUNDLE_EXTENSION = $$bundle_ext"  \
  104.         "RC_CFLAGS = $$arch_cflags"  \
  105.         "RC_ARCHS = $$archs"  \
  106.         "SRCROOT = $(SRCROOT)"  \
  107.         "OBJROOT = $(OBJROOT)"  \
  108.         "SYMROOT = $(SYMROOT)/sym"  \
  109.         "SYM_DIR = $(SYMROOT)/sym"  )
  110.  
  111.  
  112.  
  113. depend:: Makefile.dependencies $(SUBPROJECTS:.subproj=.depend)
  114. project:: $(INITIAL_TARGETS) toplevel_subcomponents resources $(PRODUCT)
  115.  
  116. toplevel_subcomponents:: $(PRODUCT_ROOT) subprojs
  117.     -@($(RM) -f $(PRODUCT_ROOT)/$(CHANGES_FILE) ;  \
  118.     $(ECHO)  "$(OFILE_DIR)" > $(PRODUCT_ROOT)/$(CHANGES_FILE))
  119.  
  120. $(PRODUCT): $(PRODUCT_DEPENDS) $(OTHER_PRODUCT_DEPENDS)
  121.     @(adaptors="" ;  \
  122.     for adaptor in $(OTHERRELOCATABLES) none ; do  \
  123.         if [ $$adaptor = "none" ] ; then break; fi ;  \
  124.         for path in $(ADAPTOR_SEARCH_PATH) none ; do  \
  125.             if [ $$path = "none" ] ; then break; fi ;  \
  126.             if [ -r $$path/$$adaptor ] ; then  \
  127.             adaptors="$$adaptors $$path/$$adaptor" ;  \
  128.             break ;  \
  129.         fi ;  \
  130.         done ;  \
  131.     done ;  \
  132.     if [ "`$(ECHO) $(OFILES) $(OTHER_OFILES) | wc -w`" != "       0" ] ; then \
  133.         if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then  \
  134.             other_japanese_libs="";  \
  135.         else  \
  136.             other_japanese_libs="$(OTHER_JAPANESE_LIBS)" ;  \
  137.         fi ;  \
  138.           cmd="$(CC) $(ALL_CFLAGS) $(OBJCFLAG) $(LDFLAGS) $(OTHER_LDFLAGS)  \
  139.                -o $(PRODUCT) $(OFILES) $(OTHER_OFILES)  \
  140.            $$adaptors $$other_japanese_libs $(OTHER_LIBS) $(LIBS)";  \
  141.        echo $$cmd ;  \
  142.        $$cmd ;  \
  143.         fi   )
  144.     
  145.  
  146. $(DSTROOT)$(INSTALLDIR):
  147.     $(MKDIRS)  $(DSTROOT)$(INSTALLDIR)
  148.  
  149. strip_myself::
  150.     $(STRIP)  $(TOOL_STRIP_OPTS) $(DSTROOT)/$(PARENT_DIR)/$(NAME)
  151.  
  152. before_install:: $(DSTROOT)$(INSTALLDIR)
  153.     $(RM) -rf  $(DSTROOT)$(INSTALLDIR)/$(NAME)
  154.  
  155. after_install::
  156.  
  157. install:: tool before_install installhdrs $(OTHER_INSTALL_DEPENDS)
  158.     (cd $(SYMROOT); $(TAR) chf - $(NAME)) | (cd $(DSTROOT)$(INSTALLDIR); $(TAR) xf -)
  159.     $(STRIP)  $(APP_STRIP_OPTS) $(DSTROOT)$(INSTALLDIR)/$(NAME) 
  160.     -$(CHOWN) -Rf  $(INSTALL_AS_USER).$(INSTALL_AS_GROUP)  \
  161.         $(DSTROOT)$(INSTALLDIR)/$(NAME)
  162.     -$(CHMOD) -Rf go-w  $(DSTROOT)$(INSTALLDIR)/$(NAME)
  163.     @(if [ "$(INSTALL_PERMISSIONS)" != "" ] ; then  \
  164.         $(ECHO) $(CHMOD) -f $(INSTALL_PERMISSIONS)  \
  165.             $(DSTROOT)$(INSTALLDIR)/$(NAME);  \
  166.         $(CHMOD) -f $(INSTALL_PERMISSIONS)  \
  167.             $(DSTROOT)$(INSTALLDIR)/$(NAME);  \
  168.     fi  )
  169.     @($(process_target_archs)_obj ;  \
  170.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then  \
  171.         language_cflags="" ;  \
  172.     else  \
  173.         language_cflags="-DKANJI" ;  \
  174.     fi ;  \
  175.     $(MAKE) after_install     "DSTROOT=$(DSTROOT)"  \
  176.                 "OBJROOT=$(OBJROOT)"  \
  177.                 "SYMROOT = $(SYMROOT)/sym"  \
  178.                 "SYM_DIR = $(SYMROOT)/sym"  \
  179.                 "PRODUCT_ROOT = $(PRODUCT_ROOT)"  \
  180.                 "PRODUCT = $(PRODUCT_ROOT)/$(NAME)"  \
  181.                 "OFILE_DIR = $(OBJROOT)/$$obj_dir"  \
  182.                 "PROJ_CFLAGS = $(NORMAL_CFLAGS) $$language_cflags"  \
  183.                 "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)"  \
  184.                 "RC_CFLAGS = $$arch_cflags"  \
  185.                 "RC_ARCHS = $$archs"  )
  186.  
  187. #.DEFAULT 
  188.  
  189. help:
  190.     @if (test "$<"); then  \
  191.         $(ECHO) 'ERROR: Unrecognized Makefile target "$<"';     \
  192.     fi
  193.     @$(ECHO) 'The following targets are available:'
  194.     @$(ECHO) 
  195.     @$(ECHO) ' all         Makes the tool target (below).  The default target.'
  196.     @$(ECHO) ' tool        Build an optimized, debuggable, ready to install version.'
  197.     @$(ECHO) ' debug       Build with all warnings and -DDEBUG on into <ProjectName>_d.' 
  198.     @$(ECHO) ' profile     Build with all warnings and -DPROFILE on into <ProjectName>_p'
  199.     @$(ECHO) '             that will, when run, generate a gprof report.'
  200.     @$(ECHO) ' depend      Generates a Makefile.dependencies file.'
  201.     @$(ECHO) ' install     Builds and installs <ProjectName>.'
  202.     @$(ECHO) ' clean       Removes all derived files in the project.'
  203.     @$(ECHO) ' help        Lists these targets with their descriptions.'
  204.     @$(ECHO) 
  205.     @$(ECHO) 'For more details, see the comments in /NextDeveloper/Makefiles/app/*.make.'
  206.  
  207.