home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.006 / xemacs-1 / lib / xemacs-19.13 / lisp / hyperbole / Makefile < prev    next >
Encoding:
Makefile  |  1995-08-29  |  8.7 KB  |  241 lines

  1. #
  2. # SUMMARY:      Build Hyperbole directories and distributions.
  3. #
  4. # AUTHOR:       Bob Weiner
  5. #
  6. # ORIG-DATE:    15-Jun-94 at 03:42:38
  7. # LAST-MOD:     25-Aug-95 at 13:59:28 by Bob Weiner
  8. #
  9. # This file is part of Hyperbole.
  10. # Available for use and distribution under the same terms as GNU Emacs.
  11. #
  12. # Copyright (C) 1994-1995, Free Software Foundation, Inc.
  13. # Developed with support from Motorola Inc.
  14. #
  15. # DESCRIPTION:  
  16. #
  17. # USAGE:        Emacs V19, configure Hyperbole for use in current directory:
  18. #                  make
  19. #               Rebuild out of date Emacs V19 Lisp .elc files:
  20. #                  make
  21. #               If you really want to rebuild all .elc files under Emacs 19:
  22. #                  make all-elc
  23. #               Emacs V18 and Epoch, rebuild Hyperbole in current directory:
  24. #                  make all-elc-v18
  25. #               Build out of date Emacs V18 Lisp .elc files:
  26. #                  make elc-v18
  27. #
  28. # DESCRIP-END.
  29.  
  30. ##########################################################################
  31. #                         CONFIGURABLE SECTION                           #
  32. ##########################################################################
  33.  
  34. # Binaries for various versions of Emacs.  Set 'EMACS' below to the one you
  35. # want to use to byte-compile Lisp files.
  36. EMACS19 = emacs19
  37. EMACS18 = emacs
  38. EPOCH = epoch
  39. INFODOCK = infodock.bin
  40. XEMACS = xemacs
  41.  
  42. # Emacs version used to byte-compile .el files into .elc's.
  43. EMACS = $(XEMACS)
  44.  
  45. # Where to install the Hyperbole mouse key help file.
  46. datadir = ../etc
  47. # Where to install the Info version of the Hyperbole manual.
  48. infodir = ../info
  49. # Where to install the Texinfo version of the Hyperbole manual.
  50. texidir = ../man
  51.  
  52. # Site-specific Emacs Lisp libraries to load before byte-compiling any files
  53. # from this package.  Typically the only reason to set this is to get Emacs
  54. # to include the directory of this package into its load-path variable, which
  55. # determines where it will find Lisp library files to load.
  56. #
  57. # InfoDock and XEmacs 19.12 or higher include this package and automatically
  58. # add its directory to load-path.  Under Emacs 19, if you add this directory
  59. # to load-path in your site-lisp/site-start.el file, then you need not change
  60. # this setting since site-start is automatically loaded whenever Emacs starts
  61. # up.  If, however, you set load-path in your personal ~/.emacs file, you
  62. # must add that to this setting.
  63. #
  64. # You must include the .el or .elc file suffix on each library name and each
  65. # must be preceded by the `-l ' command-line flag.  If the directory in which
  66. # the library is stored will not be in your Emacs load-path when Emacs
  67. # attempts to load the library, you must include the full pathname to the
  68. # library.  Here is an example setting.
  69. #
  70. # SITE_PRELOADS = -l ~/.emacs -l set-load-path.el
  71. #
  72. SITE_PRELOADS =
  73.  
  74. # Temp file to use to build .elc files.
  75. ELISP_TO_COMPILE = /tmp/elc-${USER}
  76.  
  77. # Shell used to process this Makefile.  Bourne shell syntax is required.
  78. SHELL = /bin/sh
  79.  
  80. # UNIX commands you may want to change for your particular system.
  81. CP = \cp -p
  82. DVIPS = \dvips
  83. ETAGS = etags
  84. INSTALL = install -c
  85. MAKE = make
  86. MAKEINFO = \makeinfo --fill-column 74 
  87. MV = \mv -f
  88. RM = \rm -f
  89. TAR = tar
  90.  
  91. # Directory in which to create new distributions of Hyperbole.
  92. DIST_DIR = /tmp
  93.  
  94. ##########################################################################
  95. #                     NO CHANGES REQUIRED BELOW HERE.                    #
  96. ##########################################################################
  97.  
  98. MAN_DIR = man
  99.  
  100. # Libraries that must be pre-loaded before trying to byte-compile anything.
  101. PRELOADS = $(SITE_PRELOADS) -l ./hversion.el -l ./hyperbole.el -l ./hsite.el
  102.  
  103. # Compile in batch mode. Under Emacs 19 and XEmacs, load
  104. # site-lisp/site-start.el, which may set load-path.
  105. BATCHFLAGS = -batch
  106.  
  107. # Directories other than the current directory in which to find files.
  108. # This doesn't seem to work in all versions of make, so we also add kotl/
  109. # explicitly to those files which need it.
  110. VPATH = kotl
  111.  
  112. EL_SRC = hsite.el hui-em19-b.el hui-ep-but.el hui-epV4-b.el hui-xe-but.el
  113.  
  114. EL_COMPILE = hact.el hactypes.el hargs.el hbdata.el hbmap.el hbut.el \
  115.          hgnus.el hhist.el hib-doc-id.el hib-kbd.el hibtypes.el \
  116.          hinit.el hlvar.el hmail.el hmh.el hmoccur.el hmous-info.el \
  117.          hmouse-drv.el hmouse-key.el hmouse-mod.el hmouse-reg.el \
  118.          hmouse-sh.el hmouse-tag.el hpath.el hrmail.el hsmail.el \
  119.          hsys-hbase.el hsys-w3.el hsys-wais.el hsys-www.el \
  120.          htz.el hui-menu.el hui-menus.el hui-mouse.el hui-window.el \
  121.          hui.el hvar.el hversion.el hvm.el hypb.el hyperbole.el \
  122.          set.el wconfig.el wrolo-logic.el wrolo-menu.el wrolo.el
  123.  
  124. EL_KOTL = kotl/kfile.el kotl/kfill.el kotl/kimport.el kotl/klabel.el \
  125.       kotl/klink.el kotl/kmenu.el kotl/knode.el kotl/kotl-mode.el \
  126.           kotl/kotl.el kotl/kproperty.el kotl/kprop-em19.el \
  127.       kotl/kprop-xe.el kotl/kview.el
  128.  
  129. ELC_COMPILE = hactypes.elc hibtypes.elc hib-kbd.elc hib-doc-id.elc hact.elc \
  130.          hargs.elc hbdata.elc hbmap.elc hbut.elc hgnus.elc hhist.elc \
  131.          hinit.elc hlvar.elc hmail.elc hmh.elc hmoccur.elc hmous-info.elc \
  132.          hmouse-drv.elc hmouse-key.elc hmouse-mod.elc hmouse-reg.elc \
  133.          hmouse-sh.elc hmouse-tag.elc hpath.elc hrmail.elc hsmail.elc \
  134.          hsys-hbase.elc hsys-w3.elc hsys-wais.elc hsys-www.elc \
  135.          htz.elc hui-menu.elc hui-menus.elc hui-mouse.elc hui-window.elc \
  136.          hui.elc hvar.elc hversion.elc hvm.elc hypb.elc hyperbole.elc \
  137.          set.elc wconfig.elc wrolo-logic.elc wrolo-menu.elc wrolo.elc
  138.  
  139. ELC_KOTL = kotl/kfile.elc kotl/kfill.elc kotl/kimport.elc kotl/klabel.elc \
  140.        kotl/klink.elc kotl/kmenu.elc kotl/knode.elc kotl/kotl-mode.elc \
  141.            kotl/kotl.elc kotl/kproperty.elc kotl/kprop-em19.elc \
  142.        kotl/kprop-xe.elc kotl/kview.elc
  143.  
  144. EL_TAGS = $(EL_SRC) $(EL_COMPILE) $(EL_KOTL)
  145.  
  146. .SUFFIXES:            # Delete the default suffixes
  147. .SUFFIXES: .el .elc   # Define the list of file suffixes to match to rules
  148.  
  149. # Install Hyperbole for use in current directory under Emacs 19.
  150. all: elc
  151.  
  152. doc: info ps
  153.  
  154. install: elc doc
  155.     cd $(MAN_DIR); $(INSTALL) hypb-mouse.txt $(datadir); \
  156.       $(INSTALL) hyperbole.info* $(infodir); \
  157.       $(INSTALL) hyperbole.texi $(texidir)
  158.  
  159. install-v18:
  160.     $(MAKE) EMACS="$(EMACS18)" VPATH="" EL_KOTL="" ELC_KOTL="" install
  161.  
  162. # Record any .el files that need to be compiled.
  163. .el.elc:
  164.     @ echo $< >> $(ELISP_TO_COMPILE)
  165.  
  166. # Compile all recorded .el files.
  167. elc: elc-init hsite.el $(ELC_KOTL) $(ELC_COMPILE)
  168.     @- \test ! -f $(ELISP_TO_COMPILE) \
  169.             || (echo "These files will be compiled: " \
  170.                  && echo "`cat $(ELISP_TO_COMPILE)`" \
  171.                  && $(EMACS) $(BATCHFLAGS) $(PRELOADS) \
  172.                        -f batch-byte-compile `cat $(ELISP_TO_COMPILE)`)
  173.     @ $(RM) $(ELISP_TO_COMPILE)
  174.  
  175. elc-init:
  176.     @ $(RM) $(ELISP_TO_COMPILE)
  177.  
  178. elc-v18:
  179.     $(MAKE) EMACS="$(EMACS18)" VPATH="" EL_KOTL="" ELC_KOTL="" elc
  180.  
  181. all-v19: all-elc install
  182.  
  183. all-v18: all-elc-v18 install-v18
  184.  
  185. # Remove and then rebuild all byte-compiled .elc files for V19 Emacs, even
  186. # those .elc files which do not yet exist.
  187. all-elc: hsite.el
  188.     $(RM) *.elc kotl/*.elc
  189.     $(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-compile $(EL_KOTL) $(EL_COMPILE)
  190.  
  191. # Remove and then rebuild all byte-compiled .elc files for V18 Emacs.
  192. # The kotl/ files are not used under V18 so they are not rebuilt.
  193. all-elc-v18:
  194.     $(MAKE) EMACS="$(EMACS18)" VPATH="" EL_KOTL="" ELC_KOTL="" all-elc
  195.  
  196. # This creates the site-specific hsite.el file from hsite-ex.el if necessary.
  197. hsite.el: hsite-ex.el
  198.     \test -f hsite.el || $(CP) hsite-ex.el hsite.el
  199.  
  200. dvi: $(MAN_DIR)/hyperbole.dvi
  201.  
  202. info: $(MAN_DIR)/hyperbole.info
  203.  
  204. ps: $(MAN_DIR)/hyperbole.ps
  205.  
  206. $(MAN_DIR)/hyperbole.dvi: $(MAN_DIR)/hyperbole.info
  207.     cd $(MAN_DIR); tex hyperbole.texi; \
  208.        texindex hyperbole.??; tex hyperbole.texi
  209.  
  210. $(MAN_DIR)/hyperbole.info: $(MAN_DIR)/hyperbole.texi
  211.     cd $(MAN_DIR); $(MAKEINFO) hyperbole.texi
  212.  
  213. $(MAN_DIR)/hyperbole.ps: $(MAN_DIR)/hyperbole.texi
  214.     make $(MAN_DIR)/hyperbole.dvi
  215.     -$(RM) $(MAN_DIR)/hyperbole.ps
  216.     cd $(MAN_DIR); $(DVIPS) -o hyperbole.ps hyperbole.dvi
  217.  
  218. tags: $(EL_TAGS)
  219.     $(ETAGS) $(EL_TAGS) h-skip-bytec.lsp
  220.  
  221. clean:  
  222.     -$(RM) core .place* .*~ *~ *\# *.orig *.rej
  223.     -cd kotl; $(RM) .*~ *~ *\# *.orig *.rej .place*
  224.     -cd $(MAN_DIR); $(RM) .*~ *~ *\# *.orig *.rej .place*
  225.  
  226. dist: elc info
  227.     echo "Ensure version # in hversion.el, Makefile and man/hyperbole.texi is up to date."
  228.     $(RM) -r $(DIST_DIR)/hyperbole $(DIST_DIR)/hypb
  229.     cd ..; $(TAR) clf $(DIST_DIR)/h.tar hypb
  230.     cd $(DIST_DIR); $(TAR) xf h.tar
  231.     cd $(DIST_DIR)/hypb; make distclean
  232. # This ver setup won't work under SunOS for some reason.
  233. #    ver="`head -3 hyperbole/hversion.el | tail -1 | sed -e 's/.*|//'`"
  234.     cd $(DIST_DIR); mv hypb hyperbole; $(RM) h.tar ver; \
  235.       $(TAR) --gzip -clf hyperbole-3.19.07.tar.gz hyperbole
  236.  
  237. # Don't run this target manually.  Use 'make dist' instead.
  238. distclean: clean
  239.     -$(RM) TAGS hsite.el* kotl/TO-DO* $(MAN_DIR)/hyperbole.dvi \
  240.           $(MAN_DIR)/hyperbole.??
  241.