Source

calc / Makefile.calc

# Makefile for "Calc", the GNU Emacs Calculator.
#  Copyright (C) 1991, 1992, 1993 Free Software Foundation.
#  Author: Dave Gillespie.
#  Author's address: daveg@synaptics.com.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation (any version).

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with GNU Emacs; see the file COPYING.  If not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.


# To install Calc for private use, type `make'.
# To install Calc for public use, type `make install'.

# How to read a Makefile:
#   The command `make target' looks for `target:' in the Makefile.
#   First, any sub-targets after the `:' are made.
#   Then, the Unix commands on the following lines are executed.
#   `$(SYMBOL)' expands according to the `SYMBOL =' definition below.


# Programs.
EMACS    = xemacs
TEX      = tex
TEXINDEX = texindex
MAKEINFO = makeinfo
MAKE	 = make
ECHO	 = @echo
REMOVE	 = -rm -f
# (The leading `@' tells "make" not to echo the command itself during make;
#  The leading `-' tells "make" to keep going if the command fails.)

# Other macros.
EFLAGS   = -batch -vanilla
MAINT	 = -l calc-maint.elc

# Control whether intermediate files are kept.
PURGE	 = -rm -f
#PURGE	 = echo Not deleting:



# Do full Calc installation.  (Note that `make' == `make all'.)
# These are written this way instead of `all: compile private info'
# to make the steps more explicit while the `make' is in progress.
all:
	$(MAKE) compile
	$(MAKE) private
	$(MAKE) info
	$(ECHO) "Calc is now installed."

install:
	$(MAKE) compile
	$(MAKE) public
	$(MAKE) info
	$(ECHO) "Calc is now installed."


# Compile Calc.
compile: maint
	$(EMACS) $(EFLAGS) $(MAINT) -f calc-compile


# Add autoload and set-global-key commands to system default file.
public: maint
	$(EMACS) $(EFLAGS) $(MAINT) -f calc-public-autoloads


# Add autoload and set-global-key commands to ~/.emacs file.
private: maint
	$(EMACS) $(EFLAGS) $(MAINT) -f calc-private-autoloads


# Format the Calc manual for the Info system using makeinfo.
info: calc.info
calc.info: calc.texinfo
	-$(MAKEINFO) calc.texinfo
	$(ECHO) "Please ignore warnings for Copying, Getting Started, and Interactive Tutorial."
	$(MAKE) -f Makefile.calc texinfo


# Format the Calc manual for the Info system using texinfo.el.
# (Use this only if you do not have makeinfo.)
texinfo: calc.info-2
calc.info-2: calc.texinfo
	$(EMACS) $(EFLAGS) calc.texinfo -f texinfo-format-buffer -f save-buffer


# Format the Calc manual as one printable volume using TeX.
tex:
	$(REMOVE) calc.aux
	$(TEX) calc.texinfo
	$(TEXINDEX) calc.[cfkptv]?
	$(TEX) calc.texinfo
	$(PURGE) calc.cp calc.fn calc.pg calc.tp calc.vr
	$(PURGE) calc.cps calc.fns calc.kys calc.pgs calc.tps calc.vrs
	$(PURGE) calc.toc
# Note, calc.aux and calc.ky are left behind for the benefit of "make summary".

# Format the Calc manual as two printable volumes (Tutorial and Reference).
tex2: texsplit texvol1 texvol2

# Format the Calc Tutorial volume only.
textut: texsplit1 texvol1

# Format the Calc Reference volume only.
texref: texsplit2 texvol2

texsplit: maint
	$(EMACS) $(EFLAGS) $(MAINT) calc.texinfo -f calc-split-manual

texsplit1: maint
	$(EMACS) $(EFLAGS) $(MAINT) calc.texinfo -f calc-split-tutorial

texsplit2: maint
	$(EMACS) $(EFLAGS) $(MAINT) calc.texinfo -f calc-split-reference

texvol1:
	$(TEX) calctut.tex
	$(TEXINDEX) calctut.??
	$(TEX) calctut.tex
	$(PURGE) calctut.tex calctut.?? calctut.??s calctut.aux calctut.toc

texvol2:
	$(TEX) calcref.tex
	$(TEXINDEX) calcref.??
	$(TEX) calcref.tex
	$(PURGE) calcref.tex calcref.?? calcref.??s calcref.aux calcref.toc


# Format the Calc summary separately using TeX.
summary: texsum
	$(TEX) calcsum.tex
	$(PURGE) calcsum.?? calcsum.aux calcsum.toc

texsum: maint
	$(EMACS) $(EFLAGS) $(MAINT) calc.texinfo -f calc-split-summary

isummary: texisum
	$(TEX) calcsum.tex
	$(PURGE) calcsum.?? calcsum.aux calcsum.toc

texisum: maint
	$(EMACS) $(EFLAGS) $(MAINT) calc.texinfo -f calc-inline-summary


# All this because "-l calc-maint" doesn't work.
maint: calc-maint.elc
calc-maint.elc: calc-maint.el
	cp calc-maint.el calc-maint.elc


# Create an Emacs TAGS file
tags: TAGS
TAGS:
	etags *.el


# Delete .elc files and other reconstructible files.
clean:  clean.elc clean.info clean.tex

clean.elc:
	$(REMOVE) calc-*.elc
	$(REMOVE) macedit.elc

clean.info:
	$(REMOVE) calc.info*

clean.tex:
	$(REMOVE) calc.cp calc.fn calc.ky calc.pg calc.tp calc.vr
	$(REMOVE) calc.cps calc.fns calc.kys calc.pgs calc.tps calc.vrs
	$(REMOVE) calc.aux calc.log calc.toc calc.dvi
	$(REMOVE) calcref.*
	$(REMOVE) calctut.*
	$(REMOVE) calcsum.*
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.