home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / amigalib.mk next >
Makefile  |  1995-01-31  |  5KB  |  144 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. # In order to build a new CD-ROM release, the following targets need
  12. # to be made, in the given order:
  13. #
  14. #   *    GNUdiffs    Populate the directory GNU:src/diffs, which
  15. #            contains diff files created from the contents
  16. #            of GNU:src/baseline and GNU:src/amiga.
  17. #
  18. #   *    coverage    Check that the manifest files completely cover
  19. #            the contents of the GNU: tree.
  20. #
  21. #   *    CONTENTS    Builds the CONTENTS, INDEX, and LOCATE files.
  22. #
  23. #   *    BBS        Populate the BBS portion of the CD-ROM from
  24. #            other parts.
  25. #
  26. #   *    iso        Build the ISO-9660 image suitable for writing
  27. #            to a CD recorder for testing.
  28.  
  29. # These things will probably need to be changed with each CD release
  30. # or whenever the host system changes configuration.
  31.  
  32. CDNAME =    FreshFish-Vol8
  33. VOLNAME =    $(CDNAME)-2
  34. IMAGE =        ISO4:$(VOLNAME).iso
  35. SCRATCHDIR =    /iso2/scratch
  36.  
  37. # These things will probably remain constant across CD releases.
  38.  
  39. PUBLISHER =    "Amiga Library Services - (602) 491-0048"
  40. PREPARER =    "Fred Fish"
  41.  
  42. MAKE =        make
  43. MAKEFILE =    AmigaLib.mk
  44. SHELL =        /bin/sh
  45.  
  46. # Macros which are composites of other macros.
  47.  
  48. BBSROOT =    $(CDNAME)-2:BBS
  49.  
  50. FLAGS_TO_PASS = \
  51.         "MAKE=$(MAKE)" \
  52.         "MAKEFILE=$(MAKEFILE)" \
  53.         "CDNAME=$(CDNAME)" \
  54.         "BBSROOT=$(BBSROOT)" \
  55.         "SCRATCHDIR=$(SCRATCHDIR)"
  56.  
  57. # The default thing to do is nothing, except to suggest things that
  58. # can be done.        
  59.  
  60. all:
  61.     @echo "rerun make with one of:"
  62.     @echo "  [iso, rebuild, FileList, CRCList]"
  63.  
  64. # This target will rebuild all the machine generated files, after doing
  65. # a "make clobber".
  66.  
  67. rebuild: DirList FileList CRCList
  68.  
  69. # -a    Include all files
  70. # -A    Map filenames to ISO compliant file names.
  71. # -c    Do not convert filenames
  72. # -e    Sort file extents by common extensions.
  73. # -r    Inhibit relocation of directories.
  74. # -R    Enable RockRidge extensions.
  75. # -T    Generate a file TRANS.TBL to make ISO names to original names.
  76.  
  77. iso:    CRCList
  78.     mkisofs -a -c -e -r -o $(IMAGE) -P $(PUBLISHER) -p $(PREPARER) \
  79.       -V $(VOLNAME) $(VOLNAME):
  80.  
  81. # Build the DirList, FileList and CRCList files.  Note that we ensure
  82. # that a FileList and CRCList file exist by touching them before building
  83. # the updated FileList, and then removing the CRCList file (even a
  84. # previously existing one) after building the new FileList, since the
  85. # CRCList needs to be rebuilt anyway if the FileList is touched.  However
  86. # since we can't compute a CRC for the CRC file itself without major
  87. # trickery, the CRCList is generated using a copy of FileList that has
  88. # had the CRCList line removed.  All these gyrations ensure that the
  89. # FileList file includes entries for both itself and the CRCList file,
  90. # while the CRCList file contains no entry for itself.
  91. #
  92. # Also note that the output is stored in a temporary file on a different
  93. # volume, so as to avoid problems on the Amiga with "find" trying to
  94. # lock CRCList while it is open for write.
  95.  
  96. DirList:
  97.     find . -type d -print | sort | sed -e "s:^./::" -e "/^\.$$/d" >/tmp/DirList
  98.     cp /tmp/DirList $@
  99.     rm -f /tmp/DirList
  100.  
  101. FileList: DirList
  102.     touch $@ CRCList
  103.     find . -type f -print | sort | sed "s:^./::" >/tmp/FileList
  104.     cp /tmp/FileList $@
  105.     rm -f /tmp/FileList CRCList
  106.  
  107. CRCList: FileList
  108.     sed "/^CRCList$$/d" <FileList >/tmp/FileList
  109.     brik -Gvbf /tmp/FileList >$@
  110.  
  111. # Build the CONTENTS, LOCATE, and INDEX files in each major subtree.
  112.  
  113. CONTENTS:
  114.     (cd GNU && $(MAKE) -f $(MAKEFILE) $(FLAGS_TO_PASS) CONTENTS LOCATE INDEX)
  115.     (cd New && $(MAKE) -f $(MAKEFILE) $(FLAGS_TO_PASS) CONTENTS LOCATE INDEX)
  116.     (cd Useful && $(MAKE) -f $(MAKEFILE) $(FLAGS_TO_PASS) CONTENTS LOCATE INDEX)
  117.  
  118. # Do everything that needs to be done to populate the BBS section
  119. # of the CD-ROM set.  Normally expensive operations are not repeated
  120. # but simple copies are.
  121.  
  122. BBS:
  123.     (cd GNU && $(MAKE) -f $(MAKEFILE) $(FLAGS_TO_PASS) $@)
  124.     (cd New && $(MAKE) -f $(MAKEFILE) $(FLAGS_TO_PASS) $@)
  125.     (cd Useful && $(MAKE) -f $(MAKEFILE) $(FLAGS_TO_PASS) $@)
  126.  
  127. # Populate the GNU:src/diffs directory.
  128. # FIXME: This was broken in the move to an archived source dir.
  129. GNUdiffs:
  130. #    (cd GNU/src/diffs && $(MAKE) -f $(MAKEFILE) $(FLAGS_TO_PASS) $@)
  131.  
  132. # Test the GNU: tree for coverage represented by manifest files.
  133.  
  134. coverage:
  135.     (cd GNU/manifests && $(MAKE) -f $(MAKEFILE) $(FLAGS_TO_PASS) $@)
  136.  
  137. # Clean out the machine generated files in preparation for rebuilding them.
  138.  
  139. clobber: clean
  140.     rm -f DirList FileList CRCList
  141.     
  142. clean:
  143.     rm -f *! *~
  144.