home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume26 / pr2 / Makefile < prev    next >
Encoding:
Makefile  |  1992-04-10  |  3.2 KB  |  121 lines

  1. #
  2. # Makefile for $(PROG)
  3. #
  4. # Tweakables:
  5. #
  6.  
  7. # Your CC must grok ANSI C
  8. CC =        gcc
  9. #CC =        cc
  10.  
  11. CFLAGS =    -O
  12. #CFLAGS =    -g
  13.  
  14. STRIP =        strip
  15. #STRIP =    touch    # use if you don't want the
  16. #            # executable strip'd
  17.  
  18. SECTION =    n
  19.  
  20. DESTROOT =
  21. DESTSHR = $(DESTROOT)/usr/share
  22. DESTSYS = $(DESTROOT)/usr/local
  23.  
  24. BIN =        $(DESTSYS)/bin
  25. MAN =        $(DESTSHR)/man
  26.  
  27. ########### Don't change anything below this line ##########
  28.  
  29. PROG =        pr2
  30. OBJS =        pr2.o
  31. SRCS =        pr2.c
  32. MANPAGE =    $(PROG).$(SECTION)
  33. MANDIR =    $(MAN)/man$(SECTION)
  34.  
  35. all:        $(PROG) $(MANPAGE)
  36.  
  37. $(PROG):    $(OBJS)
  38.     $(CC) $(CFLAGS) -o $(PROG) $(OBJS) $(LDFLAGS) $(LIBS)
  39.     $(STRIP) $(PROG)
  40.  
  41. $(MANPAGE):    $(PROG).man sedscript
  42.     ./sedscript < $(PROG).man > $(MANPAGE)
  43.  
  44. info:
  45.     @echo
  46.     @echo '`'"make install' will install" \
  47.         "$(PROG) into $(BIN)"
  48.     @echo "and $(MANPAGE) into $(MANDIR)."
  49.     @echo
  50.  
  51. install:    $(PROG) $(MANPAGE)
  52.     -if test ! -d $(BIN) ; then mkdir $(BIN) ; fi
  53.     -if test -r $(BIN)/$(PROG) ; then \
  54.         rm -f $(BIN)/$(PROG).old ; \
  55.         mv $(BIN)/$(PROG) $(BIN)/$(PROG).old ; \
  56.     fi
  57.     cp $(PROG) $(BIN)/$(PROG)
  58.     -if test ! -d $(MAN) ; then mkdir $(MAN) ; fi
  59.     -if test ! -d $(MANDIR) ; then mkdir $(MANDIR) ; fi
  60.     -if test -r $(MANDIR)/$(MANPAGE) ; then \
  61.         rm -f $(MANDIR)/$(MANPAGE).old ; \
  62.         mv $(MANDIR)/$(MANPAGE) $(MANDIR)/$(MANPAGE).old ; \
  63.     fi
  64.     cp $(MANPAGE) $(MANDIR)/$(MANPAGE)
  65.  
  66. sedscript:    Makefile
  67.     @echo building sedscript...
  68.     @rm -f sedscript
  69.     @echo "#!/bin/sh" > sedscript
  70.     @echo 'set `date`' >> sedscript
  71.     @echo 'DATE="$$3 $$2 $$6"' >> sedscript
  72.     @echo 'set '"'"'"'"'"'`grep "^\*.*Revision" $(SRCS)`'"'"'"'"'" \
  73.         >> sedscript
  74.     @echo 'VERSION="$$3"' >> sedscript
  75.     @echo \
  76. 'sed "s/%V%/$$VERSION/g" | sed "s/%D%/$$DATE/g" | sed "s/%S%/$(SECTION)/g"' \
  77. >> sedscript
  78.     @chmod 700 sedscript
  79.  
  80. clean:
  81.         rm -f *.o $(PROG) $(MANPAGE) sedscript
  82.  
  83. verify:        $(PROG) sedscript
  84.     echo "$(PROG) test suite:  version %V%" | sedscript > test.suite
  85.     @./$(PROG) -T2 -B4 -L6 -R8 -w40 -l20 $(SRCS) > size.source ; \
  86.         wc size.source >> test.suite ; rm size.source
  87.     @./$(PROG) -T2 -B4 -L6 -R8 -w40 -l20 $(PROG).man > size.$(PROG).man ; \
  88.         wc size.$(PROG).man >> test.suite ; rm size.$(PROG).man
  89.     @./$(PROG) -T2 -B4 -L6 -R8 -w40 -l20 README > size.README ; \
  90.         wc size.README >> test.suite ; rm size.README
  91.     diff test.suite $(PROG).test.suite
  92.     rm test.suite
  93.  
  94. ############################################################
  95. #
  96. # The following are what I use to make a distribution.  They
  97. # probably won't be very helpful to you.
  98. #
  99. ############################################################
  100.  
  101. package:    $(PROG).test.suite $(SRCS) $(PROG).man Makefile \
  102.         MANIFEST CHANGES README INSTALL
  103.     @echo "Creating package..."
  104.     makekit -m
  105.  
  106. CHANGES:    $(SRCS)
  107.     sed '1,/Modification/d' $(SRCS) \
  108.         | sed '/\*\*\*\*/,$$d' \
  109.         | sed 's/^........//' > CHANGES
  110.  
  111. $(PROG).test.suite:    $(PROG) sedscript
  112.     rm -f $(PROG).test.suite
  113.     echo "$(PROG) test suite:  version %V%" \
  114.         | sedscript > $(PROG).test.suite
  115.     ./$(PROG) -T2 -B4 -L6 -R8 -w40 -l20 $(SRCS) > size.source ; \
  116.         wc size.source >> $(PROG).test.suite ; rm size.source
  117.     ./$(PROG) -T2 -B4 -L6 -R8 -w40 -l20 $(PROG).man > size.$(PROG).man ; \
  118.         wc size.$(PROG).man >> $(PROG).test.suite ; rm size.$(PROG).man
  119.     ./$(PROG) -T2 -B4 -L6 -R8 -w40 -l20 README > size.README ; \
  120.         wc size.README >> $(PROG).test.suite ; rm size.README
  121.