home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Makefiles / app / basicrules.make < prev    next >
Text File  |  1994-09-16  |  7KB  |  183 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 .installhdrs .writable .clean $(BUNDLE_EXTENSION) \
  14.        .depend .lproj .dbmodel .dbmodela
  15.  
  16.  
  17. # Compilation rules:
  18. .c.o:
  19.     $(CC) $(ALL_CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  20. .m.o:
  21.     $(CC) $(ALL_CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  22. .M.o:
  23.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  24. .C.o:
  25.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  26. .cc.o:
  27.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  28. .cxx.o:
  29.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  30. .cpp.o:
  31.     $(CC) -ObjC++ $(ALL_CFLAGS) $(C++CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  32.  
  33. .h.p:
  34.     -$(CC) -precomp $(ALL_CFLAGS) $*.h -o $*.p
  35.         # Note that because precomps must go in the same directory as the .h
  36.         # we may not be able to write the precomp, so use a '-'
  37.  
  38. .s.o:
  39.     $(CC) $(ALL_CFLAGS) -I. -c $< -o $(OFILE_DIR)/$*.o
  40.     
  41. # pswrap-related rules:
  42. .psw.h: 
  43.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $*.psw
  44. .psw.c:
  45.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $*.psw
  46. .psw.o:
  47.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $*.psw
  48.     $(CC) $(ALL_CFLAGS) -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o
  49. .pswm.h:
  50.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $*.pswm
  51. .pswm.m:
  52.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $*.pswm
  53. .pswm.o:
  54.     $(PSWRAP) $(PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $*.pswm
  55.     $(CC) $(ALL_CFLAGS) -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o
  56.  
  57.  
  58. # yacc and lex-related rules
  59. .y.o:
  60.     @(initdir=`pwd`;                                                \
  61.     cd $(SYM_DIR);                                                  \
  62.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.y" ; echo $$cmd; $$cmd ;    \
  63.     cd $$initdir ;                             \
  64.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/y.tab.c $(SYM_DIR)/$*.c" ; echo $$cmd; $$cmd ;    \
  65.     cmd="$(CP) $(MVFLAGS) $(SYM_DIR)/y.tab.h $(SYM_DIR)/$*.h" ; echo $$cmd; $$cmd ;    \
  66.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o" ; \
  67.     echo $$cmd ; $$cmd )
  68.  
  69. .y.c .y.h:
  70.     @(initdir=`pwd`;                                                \
  71.     cd $(SYM_DIR);                                                  \
  72.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.y" ; echo $$cmd; $$cmd ;    \
  73.     cd $$initdir ;                             \
  74.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/y.tab.c $(SYM_DIR)/$*.c" ; echo $$cmd; $$cmd ;    \
  75.     cmd="$(CP) $(MVFLAGS) $(SYM_DIR)/y.tab.h $(SYM_DIR)/$*.h" ; echo $$cmd; $$cmd )
  76.  
  77. .ym.o:
  78.     @(initdir=`pwd`;                                                 \
  79.     cd $(SYM_DIR);                                                  \
  80.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.ym" ; echo $$cmd; $$cmd ;    \
  81.     cd $$initdir ;                             \
  82.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/y.tab.c $(SYM_DIR)/$*.m" ; echo $$cmd; $$cmd ;    \
  83.     cmd="$(CP) $(MVFLAGS) $(SYM_DIR)/y.tab.h $(SYM_DIR)/$*.h" ; echo $$cmd; $$cmd ;    \
  84.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o" ; \
  85.     echo $$cmd ; $$cmd )
  86.  
  87. .ym.m .ym.h:
  88.     @(initdir=`pwd`;                                                 \
  89.     cd $(SYM_DIR);                                                  \
  90.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.ym" ; echo $$cmd; $$cmd ;    \
  91.     cd $$initdir ;                             \
  92.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/y.tab.c $(SYM_DIR)/$*.m" ; echo $$cmd; $$cmd ;    \
  93.     cmd="$(CP) $(MVFLAGS) $(SYM_DIR)/y.tab.h $(SYM_DIR)/$*.h" ; echo $$cmd; $$cmd )
  94.  
  95. .l.o:
  96.     @(initdir=`pwd`;                                              \
  97.     cd $(SYM_DIR);                                         \
  98.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.l" ; echo $$cmd; $$cmd ;    \
  99.     cd $$initdir ;                             \
  100.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/lex.yy.c $(SYM_DIR)/$*.c" ; echo $$cmd; $$cmd ;    \
  101.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o" ; \
  102.     echo $$cmd ; $$cmd )
  103.  
  104. .l.c:
  105.     @(initdir=`pwd`;                                              \
  106.     cd $(SYM_DIR);                                         \
  107.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.l" ; echo $$cmd; $$cmd ;    \
  108.     cd $$initdir ;                             \
  109.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/lex.yy.c $(SYM_DIR)/$*.c" ; echo $$cmd; $$cmd )
  110.  
  111. .lm.o:
  112.     @(initdir=`pwd`;                                              \
  113.     cd $(SYM_DIR);                                         \
  114.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.lm" ; echo $$cmd; $$cmd ;    \
  115.     cd $$initdir ;                             \
  116.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/lex.yy.c $(SYM_DIR)/$*.m" ; echo $$cmd; $$cmd ;    \
  117.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o" ; \
  118.     echo $$cmd ; $$cmd )
  119.  
  120. .lm.m:
  121.     @(initdir=`pwd`;                                              \
  122.     cd $(SYM_DIR);                                         \
  123.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.lm" ; echo $$cmd; $$cmd ;    \
  124.     cd $$initdir ;                             \
  125.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/lex.yy.c $(SYM_DIR)/$*.m" ; echo $$cmd; $$cmd )
  126.  
  127.  
  128. # dbcompiler relate rules:
  129. .dbmodela.dbmodel:
  130.     $(DBC) $*.dbmodela $(PRODUCT_ROOT)/$*.dbmodel
  131.  
  132. # 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.
  133.  
  134.  
  135. # msgwrap-related rules 
  136.  
  137. $(MSGDERIVEDMFILES): $(MSGFILES)
  138.     @(if [ "$(MSGFILES)" != "" ] ; then \
  139.             $(MKDIRS) $(SYM_DIR) ; \
  140.         $(CP) $(MSGFILES) $(SYM_DIR) ; \
  141.         cd $(SYM_DIR) ; \
  142.         for msgfile in $(MSGFILES) ; do \
  143.             cmd="$(MSGWRAP) $$msgfile" ; \
  144.             echo $$cmd ; $$cmd ; \
  145.         done ; \
  146.         $(RM) -f $(MSGFILES) ; \
  147.     fi)
  148.  
  149. # mig-related rules - old and  should be updated
  150.  
  151. $(ALLMIGDERIVEDCFILES): $(ALLMIGFILES)
  152.     @(if [ "$(ALLMIGFILES)" != "" ] ; then \
  153.             $(MKDIRS) $(SYM_DIR) ; \
  154.         $(CP) $(ALLMIGFILES) $(SYM_DIR) ; \
  155.         cd $(SYM_DIR) ; \
  156.         for migfile in $(ALLMIGFILES) ; do \
  157.             cmd="$(MIG) $$migfile" ; \
  158.             echo $$cmd ; $$cmd ; \
  159.         done ; \
  160.         $(RM) -f $(ALLMIGFILES) ; \
  161.     fi)
  162.  
  163. # compresshelp-related rules:
  164.  
  165. $(HELP_STORES): $(HELP_DIRS) $(OTHER_HELP_DIRS)
  166.     @(for each in $(HELP_DIRS) $(OTHER_HELP_DIRS) ; do \
  167.        if [ -d $$each ] ; then \
  168.            $(MKDIRS) $(PRODUCT_ROOT)/$(LANGUAGE).lproj ; \
  169.            cmd="$(COMPRESSHELP) $$each -o $(PRODUCT_ROOT)/$$each.store" ; \
  170.            echo $$cmd ; $$cmd ; \
  171.         fi; \
  172.     done )
  173.  
  174. # in case the default Help directory does not yet exist
  175. $(HELP_DIRS):
  176.  
  177. # Nullify .m and .c single suffix rules so Help.c and Help.m can exist
  178. .m :
  179.  
  180. .c :
  181.  
  182.  
  183.