home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / new / amigalib.mk < prev    next >
Makefile  |  1995-01-31  |  4KB  |  115 lines

  1. # Amiga Library Services - CD Administration Makefile
  2. #
  3. # This makefile is responsible for doing such things as:
  4. #
  5. # (1)    Build an accumulated CONTENTS file for all material in this tree.
  6. #    This is a comprehensive listing of the material that includes
  7. #    much of the relevant information from the product info file,
  8. #    such as name, version, short description, long description, author,
  9. #    and path to the material.
  10. #
  11. # (2)    Build an INDEX file for all material in this tree.  This is a
  12. #    quick reference file that lists the program name, version, and
  13. #    short description of the material.
  14. #
  15. # (3)    Build a LOCATE file for all material in this tree.  This is a
  16. #    quick reference file that lists the program name, version, and
  17. #    and the path to the material.
  18. #
  19. # (4)    Build archives for the material in this tree on a "per submission"
  20. #    basis, and install them in the BBS tree on this CD, along with
  21. #    appropriate product info files.
  22. #
  23.  
  24. CONTENTS_FORMAT = "==========\n\n%N    %V    %S\n\n%d\n\nAuthor: %a\nPath: %P\n\n"
  25. INDEX_FORMAT =    "%-16.16N  %8.8V   %-S\n"
  26. LOCATE_FORMAT =    "%-16.16N  %8.8V   %P\n"
  27.  
  28. SHELL =        /bin/sh
  29.  
  30. # The "base name" of this CD set.  Supply a default value here that is
  31. # typically overridden by an upper level make, or else passed as a command
  32. # line arg.
  33.  
  34. CDNAME =    FreshFish-Vol8
  35.  
  36. # This is the root directory for the BBS tree.  Typically it is assigned
  37. # a value like "FreshFish-Vol8-2:BBS" via a command line arg to Make, or
  38. # else is passed in by an upper level make.
  39.  
  40. BBSROOT =    $(CDNAME)-2:BBS
  41.  
  42. # This is the default thing to do.
  43.  
  44. all:        CONTENTS.guide CONTENTS INDEX LOCATE AllList
  45.  
  46.  
  47. # Generate a summary file called "CONTENTS".  Note that the entries in the
  48. # contents are generated in pathname sorted, case independent, order.
  49.  
  50. CONTENTS: AllList
  51.     @echo >$@ "This file is generated automatically from the product info files"
  52.     @echo >>$@ "included in this tree."
  53.     @echo >>$@ ""
  54.     egrep "/Product-Info$$|\.pi$$" <AllList | \
  55.         pitool -f - -b -F $(CONTENTS_FORMAT) - >>$@
  56.     @if test  -f $@.info; then true; else echo "WARNING - missing $@.info"; fi
  57.  
  58.  
  59. # Generate an AmigaGuide format summary file called "CONTENTS.guide".
  60.  
  61. CONTENTS.guide: AllList CONTENTS-header
  62.     $(SHELL) GenCONTENTS.sh AllList >$@
  63.     @if test  -f $@.info; then true; else echo "WARNING - missing $@.info"; fi
  64.  
  65.  
  66. # Generate a quick reference file, which contains the name of the product,
  67. # the version number, and the short description; one product per line.
  68.  
  69. INDEX: AllList
  70.     @echo >$@ "This file is generated automatically from the product info files"
  71.     @echo >>$@ "included in this tree.  See the 'CONTENTS' file for additional"
  72.     @echo >>$@ "information about each item."
  73.     @echo >>$@ ""
  74.     egrep "/Product-Info$$|\.pi$$" <AllList | \
  75.         pitool -b -F $(INDEX_FORMAT) -f - - | sort -f | uniq >>$@
  76.     @if test -f $@.info; then true; else echo "WARNING - missing $@.info"; fi
  77.  
  78. # Generate a quick reference file, which contains the name of the product,
  79. # the version number, and the short description; one product per line.
  80.  
  81. LOCATE: AllList
  82.     @echo >$@ "This file is generated automatically from the product info files"
  83.     @echo >>$@ "included in this tree.  See the 'CONTENTS' file for additional"
  84.     @echo >>$@ "information about each item."
  85.     @echo >>$@ ""
  86.     egrep "/Product-Info$$|\.pi$$" <AllList | \
  87.         pitool -b -F $(LOCATE_FORMAT) -f - - | sort -f | uniq >>$@
  88.     @if test -f $@.info; then true; else echo "WARNING - missing $@.info"; fi
  89.  
  90. # Generate a list of all files and directories rooted at this point in the
  91. # file tree.  This target is only rebuilt when it does not exist, so the only
  92. # way to get rid of it is to either make "clobber" or manually delete it.
  93.  
  94. AllList:
  95.     find . -print | sort -f | sed "s:^./::" >/tmp/all.tmp
  96.     cp /tmp/all.tmp $@
  97.  
  98. # Feed the list of files and directories to the Pack.sh script, which picks
  99. # out all names of files or directories that are 3 levels deep and examines
  100. # them as potential candidates from which to generate archives in the BBS
  101. # tree.
  102.  
  103. BBS:    AllList
  104.     $(SHELL) Pack.sh AllList $(BBSROOT)
  105.  
  106. # Clean up files that are trash.
  107.  
  108. clean:
  109.     rm -f *! *~
  110.  
  111. # Remove all automatically generated files.
  112.  
  113. clobber: clean
  114.     rm -f CONTENTS.guide CONTENTS INDEX LOCATE AllList
  115.