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