home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / C / CXREF.ZIP / MAKEFILE < prev    next >
Encoding:
Text File  |  1988-06-01  |  3.3 KB  |  156 lines

  1. #  PROG.MAK
  2. .SUFFIXES : .exe .obj .c .for .asm .y .l
  3. VPATH     = .;\msc\include
  4. HPATH     =
  5.  
  6. # Macros for compilers and assemblers.
  7. AS        = masm
  8. LEX       = lex
  9. YACC      = yacc
  10. DEBUG     = -Zi -Od
  11. BIN       =
  12. ECHO      = >stdout
  13. CFLAGS    = -A$(MODEL) -J -DLINT_ARGS $(DEBUG) $(HPATH)
  14. MODEL     = S
  15. VARSTK    = $(LIB)$(MODEL)VARSTK
  16. SETARGV   = $(LIB)$(MODEL)SETARGV
  17. HOMEDIR   = .
  18. DEST      = $(HOMEDIR)
  19. EXTHDRS   =
  20. HDRS      =
  21. LDFLAGS   =
  22. LIBS      =
  23. LINKER    = link
  24. LINKFLAGS = /CO
  25. LINTFLAGS = -m$(MODEL) -EM -c
  26. LINTLIST  = lintlist
  27. MAKEFILE  = makefile
  28. OBJS      = CXREF.OBJ \
  29.         GOTOXY.OBJ \
  30.         STRICMP.OBJ \
  31.         WHEREY.OBJ
  32. PRINT     = cpr -n
  33. PROGRAM   = cxref.exe
  34. SRCS      = CXREF.C \
  35.         GOTOXY.C \
  36.         STRICMP.C \
  37.         WHEREY.C
  38. VERSION   = msc
  39. BIN       =
  40. LFLAGS    = /CO
  41. CC        = cl
  42.  
  43. all:  $(PROGRAM)
  44.  
  45. $(PROGRAM):     $(OBJS) $(LIBS)
  46.         @echo "Loading $(PROGRAM) ... "
  47.         @$(LINKER) $(OBJS) $(SETARGV),  $(PROGRAM), $(LIBS) $(LINKFLAGS);
  48.         @echo "done"
  49.  
  50. co:;  @co -r$(VERSION) $(HDRS) $(SRCS)
  51.  
  52. depend:;    @mkmf -f $(MAKEFILE) PROGRAM=$(PROGRAM) \
  53.         'DEST=$$(HOMEDIR)' HOMEDIR=`echo $$HOME`
  54.  
  55. diff:;   @vdiff -r$(VERSION) $(HDRS) $(SRCS)
  56.  
  57. index:;        @ctags -wx $(HDRS) $(SRCS)
  58.  
  59. install:    $(PROGRAM)
  60.         @echo Installing $(PROGRAM) in $(DEST)
  61.         @install $(IFLAGS) $(PROGRAM) $(DEST)
  62.  
  63. lint:;   @prec $(LINTFLAGS) $(SRCS) >$(LINTLIST)
  64.  
  65. print: $(HDRS) $(SRCS)
  66.    @del list
  67.    !@$(PRINT) $? >>list
  68.  
  69. vcs:  $(HDRS) $(SRCS)
  70.    !put -b ($?)
  71.    touch vcs
  72.  
  73. program: $(PROGRAM)
  74.  
  75. tags: $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS)
  76.  
  77. update:  $(DEST)/$(PROGRAM)
  78.  
  79. $(DEST)/$(PROGRAM):  $(SRCS) $(LIBS) $(HDRS) $(EXTHDRS)
  80.         @make -f $(MAKEFILE) DEST=$(DEST) install tags
  81.  
  82. # DEFAULT RULES
  83. #
  84. #    ASM -> OBJ using MASM.
  85. .asm.obj:
  86.     ${AS} $<;
  87.  
  88. #    C -> OBJ using Microsoft C. 
  89. .c.obj:
  90.     ${CC} ${CFLAGS} -c $<
  91.  
  92. #    FOR -> OBJ using Microsoft Fortran.
  93. .for.obj:
  94.     for1 $<;
  95.     pas2
  96.  
  97. #     Y -> C, for YACC
  98. .y.c:
  99.     $(YACC) $(YFLAGS) $<
  100.     rename ytab.c $@
  101.  
  102. #    L -> C, for LEX
  103. .l.c:
  104.     $(LEX) $(LFLAGS) $<
  105.     mv lex.yy.c $@
  106.  
  107.  
  108. # To produce a `.exe' file from an `.obj' file.  Note that there is a
  109. # problem because LIBS may be different for linking `.obj' files
  110. # produced by different compilers (C, FORTRAN, PASCAL, etc).  To avoid
  111. # this problem you may want to have the C compiler produce `.cbj' files,
  112. # the FORTRAN compiler produce `.fbj' files, etc.  Then you could write
  113. # specific rules for `.cbj.exe' and `.fbj.exe' which would use the correct
  114. # libraries.
  115. .obj.exe:
  116.     link $< $(SETARGV), $@,, $(LIBS) $(LINKFLAGS);
  117.  
  118. # To produce a `.exe' file from a `.asm' file.
  119. .asm.exe:
  120.     ${AS} $<;
  121.     link $*.obj, $@,, $(LIBS)
  122.     erase $*.obj
  123.  
  124. # To produce a `.exe' file from a `.c' file.
  125. .c.exe:
  126.     ${CC} $(CFLAGS) -c $<
  127.     link $*.obj $(SETARGV), $@,, $(LIBS) $(LINKFLAGS);
  128.     erase $*.obj
  129.  
  130. # To produce a `.exe' file from a `.for' file.
  131. .for.exe:
  132.     for1 $<;
  133.     pas2
  134.     link $*.obj, $@,, $(LIB)\FORTRAN
  135.     erase $*.obj
  136.  
  137. # A universally useful target so "make clean" always works.
  138. clean:
  139.     -(erase *.bak; erase *.map)
  140.  
  141. large:
  142.     (if exist \bin\c3s.exe do goto end; \
  143.      rename \bin\c3.exe c3s.exe; \
  144.      rename \bin\c3l.exe c3.exe; \
  145.      :end)
  146. small:
  147.     (if exist \bin\c3s.exe do goto end; \
  148.      rename \bin\c3.exe c3l.exe; \
  149.      rename \bin\c3s.exe c3.exe; \
  150.      :end)
  151.  
  152. chkdsk:
  153.     chkdsk d:
  154.  
  155. ###
  156.