home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 June / SIMTEL_0692.cdr / msdos / gnuish / grep15.arc / makefile < prev    next >
Makefile  |  1990-09-21  |  4KB  |  152 lines

  1. # Makefile for GNU e?grep
  2. # Copyright (C) 1988 Free Software Foundation, Inc.
  3. # MS-DOS port (c) 1990 by Thorsten Ohl <td12@ddagsi3.bitnet>
  4.  
  5. # This program is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation; either version 1, or (at your option)
  8. # any later version.
  9.  
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. # GNU General Public License for more details.
  14.  
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program; if not, write to the Free Software
  17. # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  18.  
  19. # $Header: e:/gnu/grep/RCS/makefile 1.5.0.9 90/09/21 12:07:41 tho Exp $
  20.  
  21. # Where the executables go
  22. BINDIR    = c:/bin
  23.  
  24. # Where the gnulib lives on your system
  25. VPATH    = d:/usr/include;d:/usr/lib
  26.  
  27. # main entry points:
  28. .PHONY: all regress install zip disk clean veryclean dist
  29.  
  30. DEFINES    = -DUSG -DSTDC_HEADERS -DSMART_SHELL
  31.  
  32. # Define MSC51, if your compiler is Microsoft C v5.1
  33.  
  34. ifeq ($(COMPILER),MSC51)
  35. MODEL    = L
  36. model    = l
  37. CFLAGS    = -A$(MODEL) -Ox -W3 -Za $(DEFINES)
  38. CRIPPLED_CFLAGS = -A$(MODEL) -Oilt -Gs -W3 -Za $(DEFINES)
  39. else
  40. MODEL    = C
  41. model    = c
  42. CFLAGS    = -A$(MODEL) -Ox -W4 -Za $(DEFINES)
  43. CRIPPLED_CFLAGS = -A$(MODEL) -Ocit -Gs -W4 -Za $(DEFINES)
  44. endif
  45.  
  46. LDFLAGS = /e/noe/far/packcode/st:0x8000 setargv
  47. LOADLIBES = gnulib_$(model)
  48.  
  49. INSTALL = cp -v
  50. DISK    = b:
  51. ZIPFILE = grep.zip
  52.  
  53. # Files:
  54.  
  55. VERSION    = 1.5
  56.  
  57. # The common object modules:
  58. OBJS = dfa.obj _cwild.obj
  59.  
  60. SRCS = grep.c dfa.c
  61. INCS = dfa.h
  62.  
  63. CMDS    = egrep.exe grep.exe
  64.  
  65. RCSFILES= $(addprefix RCS/, $(SRCS) $(INCS) makefile)
  66. MISC    = readme copying changelo
  67.  
  68. all: $(CMDS)
  69.  
  70. # Linking:
  71.  
  72. $(CMDS): $(OBJS)
  73.  
  74. # This is for old versions of make, where this rule wasn't default
  75. %.exe: %.obj
  76.     $(LINK) $(LDFLAGS) $^, $@, nul, $(LOADLIBES),
  77.  
  78. # Perform some tests
  79.  
  80. regress: egrep.exe
  81.     cd tests
  82.     regress
  83.     cd ..
  84.  
  85. # Compilation:
  86.  
  87. egrep.obj: grep.c
  88.     $(CC) $(CFLAGS) -DEGREP -Fo$@ -c $<
  89.  
  90. # --- MSC 5.1 generates incorrect code with relaxed alias checking `-Oa'
  91. #     (this code fails some of the Spencer tests).
  92. # --- MSC 6.0 generates incorrect code with `-Ol' and/or `-Oa'
  93. #     (this code has memory leaks...).
  94. dfa.obj: dfa.c dfa.h
  95.     $(CC) $(CRIPPLED_CFLAGS) -c $<
  96.  
  97. dfa.obj egrep.obj grep.obj: dfa.h
  98.  
  99. # --- utils:
  100.  
  101. install: $(addprefix $(BINDIR)/, $(CMDS))
  102.  
  103. $(BINDIR)/%: %
  104.     $(INSTALL) $< $@
  105.  
  106. zip: $(ZIPFILE)
  107. disk: $(DISK)/$(ZIPFILE)
  108.  
  109. $(ZIPFILE): $(RCSFILES) $(MISC)
  110.     pkzip -P -r- $@ $?
  111.  
  112. $(DISK)/$(ZIPFILE): $(ZIPFILE)
  113.     cp $< $@
  114.     pkunzip -t $@ | grep -vw OK
  115.  
  116. tags: $(SRCS) $(INCS)
  117.     etags -t *.h *.c
  118.  
  119. clean:
  120.     rm -f *.obj tests/tmp.bat tests/khadafy.out patches *.tar
  121.  
  122. veryclean: clean
  123.     rm -f *.exe *.uue errs tags
  124.     rcsclean *.c *.h makefile
  125.  
  126. dist: grep.uue grep-b.uue egrep-b.uue
  127.  
  128. %.uue: %.tar
  129.     compress < $< | uuencode $<.Z > $@
  130.  
  131. %.tar:
  132.     tar -cf $@ $^
  133.  
  134. grep.tar: readme copying makefile patches
  135. grep-b.tar: readme copying grep.exe
  136. egrep-b.tar: readme copying egrep.exe
  137.  
  138.  
  139. patches: $(SRCS) $(INCS) $(RCSFILES)
  140.     rcsdiff -c -r$(VERSION) *.[ch] > $@
  141.  
  142. .PHONY: test-dist
  143. test-dist: grep.uue $(RCSFILES)
  144.     $(CO) -f -r$(VERSION) $(SRCS) $(INCS)
  145.     sed /\.tar\.Z/s//.Z/ grep.uue | uudecode
  146.     compress -d < grep.Z | tar -xOf -  patches | patch -s
  147.     rcsdiff -q $(SRCS) $(INCS)
  148.  
  149. .PHONY: cheat
  150. cheat:
  151.     $(INSTALL) $(addprefix $(BINDIR)/, $(CMDS)) .
  152.