home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.2 (Developer) / NS_dev_3.2.iso / NextDeveloper / Makefiles / app / basicrules.make < prev    next >
Encoding:
Text File  |  1993-07-14  |  6.2 KB  |  177 lines

  1. ###############################################################################
  2. #  NeXT basicrules.make
  3. #  Copyright 1992, NeXT Computer, Inc.
  4. #
  5. #  This makefile provides a generically useful set of rules for building
  6. #  derived files within the framework of app makefiles.  
  7. #  
  8. ###############################################################################
  9.  
  10. .SUFFIXES:
  11. .SUFFIXES: .o .p .C .cc .cxx .cpp .c .m .M .s .h .ym .y .lm .l .pswm .psw \
  12.            .mig .def .msg .bproj .subproj .tproj .store .copy .strip \
  13.        .installsrc .writable .clean $(BUNDLE_EXTENSION) .depend \
  14.        .lproj .dbmodel .dbmodela
  15.  
  16. ALL_CFLAGS = $(CFLAGS) $(PROJ_CFLAGS) -I$(SYM_DIR) $(OTHER_CFLAGS) $(RC_CFLAGS)
  17.  
  18. # Compilation rules:
  19. .c.o:
  20.     $(CC) $(ALL_CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  21. .m.o:
  22.     $(CC) $(ALL_CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  23. .M.o:
  24.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  25. .C.o:
  26.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  27. .cc.o:
  28.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  29. .cxx.o:
  30.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  31. .cpp.o:
  32.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  33.  
  34. .h.p:
  35.     -$(CC) -precomp $(ALL_CFLAGS) $*.h -o $*.p
  36.         # Note that because precomps must go in the same directory as the .h
  37.         # we may not be able to write the precomp, so use a '-'
  38.     
  39. # pswrap-related rules:
  40. .psw.h: 
  41.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $*.psw
  42. .psw.c:
  43.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $*.psw
  44. .psw.o:
  45.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $*.psw
  46.     $(CC) $(ALL_CFLAGS) -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o
  47. .pswm.h:
  48.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $*.pswm
  49. .pswm.m:
  50.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $*.pswm
  51. .pswm.o:
  52.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $*.pswm
  53.     $(CC) $(ALL_CFLAGS) -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o
  54.  
  55.  
  56. # yacc and lex-related rules
  57. .y.o:
  58.     @(initdir=`pwd`;                                                \
  59.     cd $(SYM_DIR);                                                  \
  60.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.y" ; echo $$cmd; $$cmd ;    \
  61.       cmd="$(MV) $(MVFLAGS) y.tab.c $*.c" ; echo $$cmd; $$cmd ;    \
  62.       cmd="$(CP) $(MVFLAGS) y.tab.h $*.h" ; echo $$cmd; $$cmd ;    \
  63.     cd $$initdir ;                             \
  64.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o" ; \
  65.     echo $$cmd ; $$cmd )
  66.  
  67. .y.c .y.h:
  68.     @(initdir=`pwd`;                                                \
  69.     cd $(SYM_DIR);                                                  \
  70.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.y" ; echo $$cmd; $$cmd ;    \
  71.       cmd="$(MV) $(MVFLAGS) y.tab.c $*.c" ; echo $$cmd; $$cmd ;    \
  72.       cmd="$(CP) $(MVFLAGS) y.tab.h $*.h" ; echo $$cmd; $$cmd )
  73.  
  74. .ym.o:
  75.     @(initdir=`pwd`;                                                 \
  76.     cd $(SYM_DIR);                                                  \
  77.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.ym" ; echo $$cmd; $$cmd ;    \
  78.       cmd="$(MV) $(MVFLAGS) y.tab.c $*.m" ; echo $$cmd; $$cmd ;    \
  79.       cmd="$(CP) $(MVFLAGS) y.tab.h $*.h" ; echo $$cmd; $$cmd ;    \
  80.     cd $$initdir ;                             \
  81.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o" ; \
  82.     echo $$cmd ; $$cmd )
  83.  
  84. .ym.m .ym.h:
  85.     @(initdir=`pwd`;                                                 \
  86.     cd $(SYM_DIR);                                                  \
  87.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.ym" ; echo $$cmd; $$cmd ;    \
  88.       cmd="$(MV) $(MVFLAGS) y.tab.c $*.m" ; echo $$cmd; $$cmd ;    \
  89.       cmd="$(CP) $(MVFLAGS) y.tab.h $*.h" ; echo $$cmd; $$cmd )
  90.  
  91. .l.o:
  92.     @(initdir=`pwd`;                                              \
  93.     cd $(SYM_DIR);                                         \
  94.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.l" ; echo $$cmd; $$cmd ;    \
  95.       cmd="$(MV) $(MVFLAGS) lex.yy.c $*.c" ; echo $$cmd; $$cmd ;    \
  96.     cd $$initdir ;                             \
  97.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o" ; \
  98.     echo $$cmd ; $$cmd )
  99.  
  100. .l.c:
  101.     @(initdir=`pwd`;                                              \
  102.     cd $(SYM_DIR);                                         \
  103.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.l" ; echo $$cmd; $$cmd ;    \
  104.       cmd="$(MV) $(MVFLAGS) lex.yy.c $*.c" ; echo $$cmd; $$cmd )
  105.  
  106. .lm.o:
  107.     @(initdir=`pwd`;                                              \
  108.     cd $(SYM_DIR);                                         \
  109.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.lm" ; echo $$cmd; $$cmd ;    \
  110.       cmd="$(MV) $(MVFLAGS) lex.yy.c $*.m" ; echo $$cmd; $$cmd ;    \
  111.     cd $$initdir ;                             \
  112.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o" ; \
  113.     echo $$cmd ; $$cmd )
  114.  
  115. .lm.m:
  116.     @(initdir=`pwd`;                                              \
  117.     cd $(SYM_DIR);                                         \
  118.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.lm" ; echo $$cmd; $$cmd ;    \
  119.       cmd="$(MV) $(MVFLAGS) lex.yy.c $*.m" ; echo $$cmd; $$cmd )
  120.  
  121.  
  122. # dbcompiler relate rules:
  123. .dbmodela.dbmodel:
  124.     $(DBC) $*.dbmodela $(PRODUCT_ROOT)/$*.dbmodel
  125.  
  126. # msgwrap-related rules - note that suffix rules will not work because the basename changes and there is no one-to-one mapping from .msg's to .o's.
  127.  
  128.  
  129. # msgwrap-related rules 
  130.  
  131. $(MSGDERIVEDMFILES): $(MSGFILES)
  132.     @(if [ "$(MSGFILES)" != "" ] ; then \
  133.             $(MKDIRS) $(SYM_DIR) ; \
  134.         $(CP) $(MSGFILES) $(SYM_DIR) ; \
  135.         cd $(SYM_DIR) ; \
  136.         for msgfile in $(MSGFILES) ; do \
  137.             cmd="$(MSGWRAP) $$msgfile" ; \
  138.             echo $$cmd ; $$cmd ; \
  139.         done ; \
  140.         $(RM) -f $(MSGFILES) ; \
  141.     fi)
  142.  
  143. # mig-related rules - old and  should be updated
  144.  
  145. $(ALLMIGDERIVEDCFILES): $(ALLMIGFILES)
  146.     @(if [ "$(ALLMIGFILES)" != "" ] ; then \
  147.             $(MKDIRS) $(SYM_DIR) ; \
  148.         $(CP) $(ALLMIGFILES) $(SYM_DIR) ; \
  149.         cd $(SYM_DIR) ; \
  150.         for migfile in $(ALLMIGFILES) ; do \
  151.             cmd="$(MIG) $$migfile" ; \
  152.             echo $$cmd ; $$cmd ; \
  153.         done ; \
  154.         $(RM) -f $(ALLMIGFILES) ; \
  155.     fi)
  156.  
  157. # compresshelp-related rules:
  158.  
  159. $(HELP_STORES): $(HELP_DIRS) $(OTHER_HELP_DIRS)
  160.     @(for each in $(HELP_DIRS) $(OTHER_HELP_DIRS) ; do \
  161.        if [ -d $$each ] ; then \
  162.            $(MKDIRS) $(PRODUCT_ROOT)/$(LANGUAGE).lproj ; \
  163.            cmd="$(COMPRESSHELP) $$each -o $(PRODUCT_ROOT)/$$each.store" ; \
  164.            echo $$cmd ; $$cmd ; \
  165.         fi; \
  166.     done )
  167.  
  168. # in case the default Help directory does not yet exist
  169. $(HELP_DIRS):
  170.  
  171. # Nullify .m and .c single suffix rules so Help.c and Help.m can exist
  172. .m :
  173.  
  174. .c :
  175.  
  176.  
  177.