home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / amigalib.mk < prev    next >
Makefile  |  1995-10-24  |  4KB  |  121 lines

  1. # Amiga Library Services - CD Administration Makefile
  2. #
  3. # This Makefile goes in the root directory of the CD-ROM master file
  4. # tree and is responsible for doing such things as:
  5. #
  6. #   *    Building the automatically generated files for the release.
  7. #
  8. #   *    "Cleaning up" the file tree.
  9.  
  10. # The following things will probably need to be changed with each CD
  11. # release or whenever the host system changes configuration.
  12.  
  13. CDNAME =    GoldFish-Vol3
  14. VOLNAME =    $(CDNAME)
  15. IMAGE =        ISO:$(VOLNAME).iso
  16. SCRATCHDIR =    /iso/scratch
  17.  
  18. # These things will probably remain constant across CD releases.
  19.  
  20. PUBLISHER =    "Amiga Library Services - (602) 491-0442"
  21. PREPARER =    "Fred Fish"
  22.  
  23. MAKE =        make
  24. MAKEFILE =    AmigaLib.mk
  25. SHELL =        /bin/sh
  26.  
  27. # Macros which are composites of other macros.
  28.  
  29. FLAGS_TO_PASS = \
  30.         "MAKE=$(MAKE)" \
  31.         "MAKEFILE=$(MAKEFILE)" \
  32.         "CDNAME=$(CDNAME)" \
  33.         "SCRATCHDIR=$(SCRATCHDIR)"
  34.  
  35. # The default thing to do is nothing, except to suggest things that
  36. # can be done.        
  37.  
  38. all:
  39.     @echo "rerun make with one of:"
  40.     @echo "  [iso, rebuild, FileList, CRCList, CONTENTS.guide]"
  41.  
  42. # This target will rebuild all the machine generated files, after doing
  43. # a "make clobber".
  44.  
  45. rebuild: DirList FileList CRCList
  46.  
  47. # -a    Include all files
  48. # -A    Map filenames to ISO compliant file names.
  49. # -c    Do not convert filenames
  50. # -e    Sort file extents by common extensions.
  51. # -r    Inhibit relocation of directories.
  52. # -R    Enable RockRidge extensions.
  53. # -T    Generate a file TRANS.TBL to make ISO names to original names.
  54.  
  55. iso:    CRCList
  56.     mkisofs -a -c -e -r -o $(IMAGE) -P $(PUBLISHER) -p $(PREPARER) \
  57.       -V $(VOLNAME) $(VOLNAME):
  58.  
  59. # Build the DirList, FileList and CRCList files.  Note that we ensure
  60. # that a FileList and CRCList file exist by touching them before building
  61. # the updated FileList, and then removing the CRCList file (even a
  62. # previously existing one) after building the new FileList, since the
  63. # CRCList needs to be rebuilt anyway if the FileList is touched.  However
  64. # since we can't compute a CRC for the CRC file itself without major
  65. # trickery, the CRCList is generated using a copy of FileList that has
  66. # had the CRCList line removed.  All these gyrations ensure that the
  67. # FileList file includes entries for both itself and the CRCList file,
  68. # while the CRCList file contains no entry for itself.
  69. #
  70. # Also note that the output is stored in a temporary file on a different
  71. # volume, so as to avoid problems on the Amiga with "find" trying to
  72. # lock CRCList while it is open for write.
  73.  
  74. DirList:
  75.     find . -type d -print | sort | sed -e "s:^./::" -e "/^\.$$/d" >/tmp/DirList
  76.     cp /tmp/DirList $@
  77.     rm -f /tmp/DirList
  78.  
  79. FileList: DirList
  80.     touch $@ CRCList All.api CONTENTS.guide PIList
  81.     find . -type f -print | sort | sed "s:^./::" >/tmp/FileList
  82.     cp /tmp/FileList $@
  83.     rm -f /tmp/FileList CRCList All.api CONTENTS.guide PIList
  84.  
  85. CRCList: All.api CONTENTS.guide
  86.     sed "/^CRCList$$/d" <FileList >/tmp/FileList
  87.     brik -Gvbf /tmp/FileList >$@
  88.  
  89. # Generate a list of all product-info files in this tree, sorted by the
  90. # actual name of the product as recorded in the ".name" field and list
  91. # with fully qualified pathnames (not relative names).
  92. # Note that the sed command assumes that pwd returns the
  93. # unix style name "/FreshFish-Vol10/..."
  94.  
  95. PIList:    FileList
  96.     egrep -i <$? "Product-Info$$|\.pi$$" \
  97.       | sed -e "s:^:`pwd`/:" -e "s:^/::" -e "s@/@:@" \
  98.       | pitool -b -F "@%N@%i\n" -f - - \
  99.       | sort -f \
  100.       | sed -e "s:@.*@::" >$@
  101.  
  102. # Generate an accumulated product info file to use for searches.
  103.  
  104. All.api: PIList
  105.     pitool -s - <$? >$@
  106.  
  107. # Build an amigaguide file CONTENTS.guide that directly accesses all
  108. # material on this disk that has a product info file.
  109.  
  110. CONTENTS.guide: PIList GenCONTENTS.sh
  111.     if [ -f $@ ]; then mv $@ $@.bak; else true; fi
  112.     $(SHELL) GenCONTENTS.sh PIList >$@
  113.  
  114. # Clean out the machine generated files in preparation for rebuilding them.
  115.  
  116. clobber: clean
  117.     rm -f DirList FileList CRCList PIList All.api CONTENTS.guide
  118.  
  119. clean:
  120.     rm -f *! *~ *.bak
  121.