home *** CD-ROM | disk | FTP | other *** search
/ OpenStep (Enterprise) / OpenStepENTCD.toast / OEDEV / DEV.Z / basicrules.make < prev    next >
Encoding:
Text File  |  1996-09-08  |  7.1 KB  |  189 lines

  1. #
  2. #                               basicrules.make
  3. #
  4.  
  5. .SUFFIXES:
  6. .SUFFIXES: .o .p .C .cc .cxx .cpp .c .m .M .s .h .ym .y .lm .l .pswm .psw \
  7.            .mig .def .msg .x _svc.c _clnt.c _xdr.c .bproj .subproj .tproj \
  8.         .store .copy .strip .installsrc .installhdrs $(BUNDLE_EXTENSION) \
  9.        .depend .lproj
  10.  
  11.  
  12. LOCAL_DIR_INCLUDE_DIRECTIVE = -I.
  13.  
  14. # Compilation rules:
  15. .c.o:
  16.     $(CC) $(ALL_CFLAGS) $(LOCAL_DIR_INCLUDE_DIRECTIVE) -c $< -o $(OFILE_DIR)/$*.o
  17. .m.o:
  18.     $(CC) $(ALL_CFLAGS) $(LOCAL_DIR_INCLUDE_DIRECTIVE) -c $< -o $(OFILE_DIR)/$*.o
  19. .M.o:
  20.     @(if [ "$(DISABLE_OBJCPLUSPLUS)" != "YES" ] ; then \
  21.        cmd="$(CC) $(OBJCPLUS_FLAG) $(ALL_CFLAGS) $(C++CFLAGS) $(LOCAL_DIR_INCLUDE_DIRECTIVE) -c $< -o $(OFILE_DIR)/$*.o" ;\
  22.        $(ECHO) $$cmd ; $$cmd ; \
  23.     else \
  24.        $(ECHO) Sorry, Objective-C++ compilation of $*.M not supported. ;\
  25.        $(TOUCH) $(SYM_DIR)/$*.m ; \
  26.        $(CC) -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o ; \
  27.        $(RM) -f $(SYM_DIR)/$*.m ; \
  28.     fi)
  29.  
  30. .C.o:
  31.     @(if [ "$(DISABLE_OBJCPLUSPLUS)" != "YES" ] ; then \
  32.        cmd="$(CC) $(OBJCPLUS_FLAG) $(ALL_CFLAGS) $(C++CFLAGS) $(LOCAL_DIR_INCLUDE_DIRECTIVE) -c $< -o $(OFILE_DIR)/$*.o" ;\
  33.        $(ECHO) $$cmd ; $$cmd ; \
  34.     else \
  35.        $(ECHO) Sorry, Objective-C++ compilation of $*.C not supported. ;\
  36.        $(TOUCH) $(SYM_DIR)/$*.m ; \
  37.        $(CC) -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o ; \
  38.        $(RM) -f $(SYM_DIR)/$*.m ; \
  39.     fi)
  40.  
  41. .cc.o:
  42.     $(CC) $(OBJCPLUS_FLAG) $(ALL_CFLAGS) $(C++CFLAGS) $(LOCAL_DIR_INCLUDE_DIRECTIVE) -c $< -o $(OFILE_DIR)/$*.o
  43. .cxx.o:
  44.     $(CC) $(OBJCPLUS_FLAG) $(ALL_CFLAGS) $(C++CFLAGS) $(LOCAL_DIR_INCLUDE_DIRECTIVE) -c $< -o $(OFILE_DIR)/$*.o
  45. .cpp.o:
  46.     $(CC) $(OBJCPLUS_FLAG) $(ALL_CFLAGS) $(C++CFLAGS) $(LOCAL_DIR_INCLUDE_DIRECTIVE) -c $< -o $(OFILE_DIR)/$*.o
  47. .s.o:
  48.     $(CC) $(ALL_CFLAGS) $(LOCAL_DIR_INCLUDE_DIRECTIVE) -c $< -o $(OFILE_DIR)/$*.o
  49. .h.p:
  50.     -$(CC) -precomp $(ALL_PRECOMP_CFLAGS) $*.h -o $*.p
  51.         # Note that because precomps must go in the same directory as the .h
  52.         # we may not be able to write the precomp, so use a '-'
  53.  
  54. refresh_precomps:
  55.     @(if [ -z "$(DISABLE_PRECOMPS)" -a -n "$(ALL_PRECOMPS)" ] ; then \
  56.         cmd="$(FIXPRECOMPS) -precomps $(ALL_PRECOMPS) -update $(ALL_PRECOMP_CFLAGS)"; \
  57.         $$cmd ; \
  58.     fi)
  59.  
  60. $(VERS_OFILE): $(VERS_FILE)
  61.     $(CC) $(ALL_CFLAGS) -c $(VERS_FILE) -o $@
  62.     
  63. # pswrap-related rules:
  64. ALL_PSWFLAGS = $(PSWFLAGS) -H AppKit
  65. .psw.h: 
  66.     $(PSWRAP) $(ALL_PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $<
  67. .psw.c:
  68.     $(PSWRAP) $(ALL_PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $<
  69. .psw.o:
  70.     $(PSWRAP) $(ALL_PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.c $<
  71.     $(CC) $(ALL_CFLAGS) -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o
  72. .pswm.h:
  73.     $(PSWRAP) $(ALL_PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $<
  74. .pswm.m:
  75.     $(PSWRAP) $(ALL_PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $<
  76. .pswm.o:
  77.     $(PSWRAP) $(ALL_PSWFLAGS) -a -h $(SYM_DIR)/$*.h -o $(SYM_DIR)/$*.m $<
  78.     $(CC) $(ALL_CFLAGS) -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o
  79.  
  80.  
  81. # yacc and lex-related rules
  82. .y.o:
  83.     @(initdir=`pwd`;                                                \
  84.     cd $(SYM_DIR);                                                  \
  85.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.y" ; echo $$cmd; $$cmd ;    \
  86.     cd $$initdir ;                             \
  87.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/y.tab.c $(SYM_DIR)/$*.c" ; echo $$cmd; $$cmd ;    \
  88.     cmd="$(CP) $(MVFLAGS) $(SYM_DIR)/y.tab.h $(SYM_DIR)/$*.h" ; echo $$cmd; $$cmd ;    \
  89.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o" ; \
  90.     echo $$cmd ; $$cmd )
  91.  
  92. .y.c .y.h:
  93.     @(initdir=`pwd`;                                                \
  94.     cd $(SYM_DIR);                                                  \
  95.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.y" ; echo $$cmd; $$cmd ;    \
  96.     cd $$initdir ;                             \
  97.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/y.tab.c $(SYM_DIR)/$*.c" ; echo $$cmd; $$cmd ;    \
  98.     cmd="$(CP) $(CPFLAGS) $(SYM_DIR)/y.tab.h $(SYM_DIR)/$*.h" ; echo $$cmd; $$cmd )
  99.  
  100. .ym.o:
  101.     @(initdir=`pwd`;                                                 \
  102.     cd $(SYM_DIR);                                                  \
  103.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.ym" ; echo $$cmd; $$cmd ;    \
  104.     cd $$initdir ;                             \
  105.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/y.tab.c $(SYM_DIR)/$*.m" ; echo $$cmd; $$cmd ;    \
  106.     cmd="$(CP) $(CPFLAGS) $(SYM_DIR)/y.tab.h $(SYM_DIR)/$*.h" ; echo $$cmd; $$cmd ;    \
  107.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o" ; \
  108.     echo $$cmd ; $$cmd )
  109.  
  110. .ym.m .ym.h:
  111.     @(initdir=`pwd`;                                                 \
  112.     cd $(SYM_DIR);                                                  \
  113.       cmd="$(YACC) $(YFLAGS) $$initdir/$*.ym" ; echo $$cmd; $$cmd ;    \
  114.     cd $$initdir ;                             \
  115.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/y.tab.c $(SYM_DIR)/$*.m" ; echo $$cmd; $$cmd ;    \
  116.     cmd="$(CP) $(CPFLAGS) $(SYM_DIR)/y.tab.h $(SYM_DIR)/$*.h" ; echo $$cmd; $$cmd )
  117.  
  118. .l.o:
  119.     @(initdir=`pwd`;                                              \
  120.     cd $(SYM_DIR);                                         \
  121.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.l" ; echo $$cmd; $$cmd ;    \
  122.     cd $$initdir ;                             \
  123.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/lex.yy.c $(SYM_DIR)/$*.c" ; echo $$cmd; $$cmd ;    \
  124.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.c -o $(OFILE_DIR)/$*.o" ; \
  125.     echo $$cmd ; $$cmd )
  126.  
  127. .l.c:
  128.     @(initdir=`pwd`;                                              \
  129.     cd $(SYM_DIR);                                         \
  130.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.l" ; echo $$cmd; $$cmd ;    \
  131.     cd $$initdir ;                             \
  132.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/lex.yy.c $(SYM_DIR)/$*.c" ; echo $$cmd; $$cmd )
  133.  
  134. .lm.o:
  135.     @(initdir=`pwd`;                                              \
  136.     cd $(SYM_DIR);                                         \
  137.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.lm" ; echo $$cmd; $$cmd ;    \
  138.     cd $$initdir ;                             \
  139.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/lex.yy.c $(SYM_DIR)/$*.m" ; echo $$cmd; $$cmd ;    \
  140.     cmd="$(CC) $(ALL_CFLAGS) -I$$initdir -c $(SYM_DIR)/$*.m -o $(OFILE_DIR)/$*.o" ; \
  141.     echo $$cmd ; $$cmd )
  142.  
  143. .lm.m:
  144.     @(initdir=`pwd`;                                              \
  145.     cd $(SYM_DIR);                                         \
  146.       cmd="$(LEX) $(LFLAGS) $$initdir/$*.lm" ; echo $$cmd; $$cmd ;    \
  147.     cd $$initdir ;                             \
  148.     cmd="$(MV) $(MVFLAGS) $(SYM_DIR)/lex.yy.c $(SYM_DIR)/$*.m" ; echo $$cmd; $$cmd )
  149.  
  150.  
  151. # 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.
  152.  
  153. $(MSGDERIVEDMFILES): $(MSGFILES) $(OTHER_MSG_DEPENDS)
  154.     @(if [ "$(MSGFILES)" != "" ] ; then \
  155.             $(MKDIRS) $(SYM_DIR) ; \
  156.         $(CP) $(MSGFILES) $(SYM_DIR) ; \
  157.         cd $(SYM_DIR) ; \
  158.         for msgfile in $(MSGFILES) ; do \
  159.             cmd="$(MSGWRAP) $$msgfile" ; \
  160.             echo $$cmd ; $$cmd ; \
  161.         done ; \
  162.         $(RM) -f $(MSGFILES) ; \
  163.     fi)
  164.  
  165. # mig-related rules
  166.  
  167. $(ALLMIGDERIVEDSRCFILES): $(ALLMIGFILES) $(OTHER_MIG_DEPENDS)
  168.     @(if [ -n "$(ALLMIGFILES)" ] ; then \
  169.             $(MKDIRS) $(SYM_DIR) ; \
  170.         $(CP) $(ALLMIGFILES) $(SYM_DIR) ; \
  171.         cd $(SYM_DIR) ; \
  172.         for migfile in $(ALLMIGFILES) ; do \
  173.             cmd="$(MIG) $(MIGFLAGS) $$migfile" ; \
  174.             echo $$cmd ; $$cmd ; \
  175.         done ; \
  176.         $(RM) -f $(ALLMIGFILES) ; \
  177.     fi)
  178.  
  179. # rpcgen-related rules
  180.  
  181. .x.h:
  182.     $(RPCGEN) $(RPCFLAGS) -h -o $(SYM_DIR)/$*.h $*.x
  183. .x_svc.c:
  184.     $(RPCGEN) $(RPCFLAGS) -s udp -s tcp -o $(SYM_DIR)/$*_svc.c $*.x
  185. .x_clnt.c:
  186.     $(RPCGEN) $(RPCFLAGS) -l -o $(SYM_DIR)/$*_clnt.c $*.x
  187. .x_xdr.c:
  188.     $(RPCGEN) $(RPCFLAGS) -c -o $(SYM_DIR)/$*_xdr.c $*.x
  189.