home *** CD-ROM | disk | FTP | other *** search
/ Eric Schwartz Productions CD Archive / EricSchwartzProductionsArchive.iso / amigalib.mk < prev    next >
Makefile  |  1995-10-25  |  3KB  |  98 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. #
  11.  
  12. # These things will probably need to be changed with each CD release
  13. # or whenever the host system changes configuration.
  14.  
  15. CDNAME =    ES_Archives
  16. VOLNAME =    $(CDNAME)
  17. IMAGE =        ISO:$(VOLNAME).iso
  18. SCRATCHDIR =    /iso/scratch
  19.  
  20. # These things will probably remain constant across CD releases.
  21.  
  22. PUBLISHER =    "Amiga Library Services - (602) 491-0442"
  23. PREPARER =    "Fred Fish"
  24.  
  25. MAKE =        make
  26. MAKEFILE =    AmigaLib.mk
  27. SHELL =        /bin/sh
  28.  
  29. # Macros which are composites of other macros.
  30.  
  31. FLAGS_TO_PASS = \
  32.         "MAKE=$(MAKE)" \
  33.         "MAKEFILE=$(MAKEFILE)" \
  34.         "CDNAME=$(CDNAME)" \
  35.         "SCRATCHDIR=$(SCRATCHDIR)"
  36.  
  37. # The default thing to do is nothing, except to suggest things that
  38. # can be done.        
  39.  
  40. all:
  41.     @echo "rerun make with one of:"
  42.     @echo "  [iso, rebuild, FileList, CRCList, CONTENTS.guide]"
  43.  
  44. # This target will rebuild all the machine generated files, after doing
  45. # a "make clobber".
  46.  
  47. rebuild: DirList FileList CRCList
  48.  
  49. # -a    Include all files
  50. # -A    Map filenames to ISO compliant file names.
  51. # -c    Do not convert filenames
  52. # -e    Sort file extents by common extensions.
  53. # -r    Inhibit relocation of directories.
  54. # -R    Enable RockRidge extensions.
  55. # -T    Generate a file TRANS.TBL to make ISO names to original names.
  56.  
  57. iso:    CRCList
  58.     mkisofs -a -c -e -r -o $(IMAGE) -P $(PUBLISHER) -p $(PREPARER) \
  59.       -V $(VOLNAME) $(VOLNAME):
  60.  
  61. # Build the DirList, FileList and CRCList files.  Note that we ensure
  62. # that a FileList and CRCList file exist by touching them before building
  63. # the updated FileList, and then removing the CRCList file (even a
  64. # previously existing one) after building the new FileList, since the
  65. # CRCList needs to be rebuilt anyway if the FileList is touched.  However
  66. # since we can't compute a CRC for the CRC file itself without major
  67. # trickery, the CRCList is generated using a copy of FileList that has
  68. # had the CRCList line removed.  All these gyrations ensure that the
  69. # FileList file includes entries for both itself and the CRCList file,
  70. # while the CRCList file contains no entry for itself.
  71. #
  72. # Also note that the output is stored in a temporary file on a different
  73. # volume, so as to avoid problems on the Amiga with "find" trying to
  74. # lock CRCList while it is open for write.
  75.  
  76. DirList:
  77.     find . -type d -print | sort | sed -e "s:^./::" -e "/^\.$$/d" >/tmp/DirList
  78.     cp /tmp/DirList $@
  79.     rm -f /tmp/DirList
  80.  
  81. FileList: DirList
  82.     touch $@ CRCList
  83.     find . -type f -print | sort | sed "s:^./::" >/tmp/FileList
  84.     cp /tmp/FileList $@
  85.     rm -f /tmp/FileList CRCList
  86.  
  87. CRCList: FileList
  88.     sed "/^CRCList$$/d" <FileList >/tmp/FileList
  89.     brik -Gvbf /tmp/FileList >$@
  90.  
  91. # Clean out the machine generated files in preparation for rebuilding them.
  92.  
  93. clobber: clean
  94.     rm -f DirList FileList CRCList
  95.  
  96. clean:
  97.     rm -f *! *~
  98.