aboutsummaryrefslogtreecommitdiff
path: root/src/slalib/makefile.orig
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-03-04 21:21:30 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-03-04 21:21:30 -0500
commitd54fe7c1f704a63824c5bfa0ece65245572e9b27 (patch)
treeafc52015ffc2c74e0266653eecef1c8ef8ba5d91 /src/slalib/makefile.orig
downloadcalfuse-d54fe7c1f704a63824c5bfa0ece65245572e9b27.tar.gz
Initial commit
Diffstat (limited to 'src/slalib/makefile.orig')
-rw-r--r--src/slalib/makefile.orig1426
1 files changed, 1426 insertions, 0 deletions
diff --git a/src/slalib/makefile.orig b/src/slalib/makefile.orig
new file mode 100644
index 0000000..ff61e16
--- /dev/null
+++ b/src/slalib/makefile.orig
@@ -0,0 +1,1426 @@
+#+
+# Name:
+# makefile
+#
+# Version:
+# Library makefile Mk V
+#
+# Purpose:
+# Build and install the SLALIB package.
+#
+# Type of Module:
+# Description file for the make utility.
+#
+# Description:
+# This description file is used by the make utility to build the
+# SLALIB package from the distributed source files, to install
+# the resulting system for use, and to perform other housekeeping
+# tasks.
+#
+# Invocation:
+# This makefile is not intended to be used by make when invoked
+# directly (although this is possible), but instead to be used via
+# the accompanying mk script. This script sets up a number of
+# environment variables which are used as macros within the
+# makefile and which accommodate differences between machines and
+# operating systems (it invokes make with the -e option). Please
+# consult the mk script prologue for full details.
+#
+# Targets:
+# The following make targets are defined in this script for
+# external use:
+#
+# [help]
+# This is the default target. It outputs a message describing
+# the mk script and lists the targets provided.
+#
+# check
+# Performs a simple check that all necessary source files are
+# present, and displays the version number and current state
+# of the package (built/installed/tested, etc.).
+#
+# build
+# Compiles the source files and creates all files needed
+# prior to installing the package for use.
+#
+# install
+# Installs the package for use by putting the necessary files
+# into sub-directories of the $INSTALL directory (the $HOME
+# directory is used if the environment variable INSTALL is
+# not defined). Links to the installed files are left in the
+# source directory.
+#
+# deinstall
+# Reverses the action of the install target, removing files
+# from sub-directories of the $INSTALL directory and
+# restoring them to the source directory (the $HOME directory
+# is used by default if the environment variable INSTALL is
+# not defined).
+#
+# test
+# Builds and runs a simple test program to check for correct
+# installation of the package.
+#
+# export
+# Produces an export copy of the built package suitable for
+# passing to another user. A compressed tar file is created
+# in the $EXPORT directory containing copies of the source
+# files and built files for the package (the current
+# directory is used by default if the environment variable
+# EXPORT is not defined). The package should normally be
+# built, installed and tested (see above) before using this
+# target. After unpacking the exported file on a similar
+# machine, the recipient may simply install it for use.
+#
+# export_run
+# Produces an export copy of the built package suitable for
+# passing to another user. A compressed tar file is created
+# in the $EXPORT directory containing copies of the built
+# files for the package (the current directory is used by
+# default if the environment variable EXPORT is not defined).
+# The package should normally be built, installed and tested
+# (see above) before using this target. After unpacking the
+# exported file on a similar machine, the recipient may simply
+# install it for use.
+#
+# export_source
+# Produces an export copy of the source for the package
+# suitable for passing to another user to build (possibly on
+# a different type of machine). A compressed tar file is
+# created in the $EXPORT directory containing copies of just
+# the source files for the package (the current directory is
+# used by default if the environment variable EXPORT is not
+# defined). After unpacking the exported file, the recipient
+# must build the package before installing it for use.
+#
+# clean
+# Cleans up after building the package, removing all
+# intermediate files created during the building process, but
+# leaving the built files themselves.
+#
+# unbuild
+# Reverses the building process, removing all intermediate
+# files along with all the built files.
+#
+# External Dependencies:
+# The SLALIB package depends on the following other Starlink
+# packages which must previously have been installed into the
+# appropriate sub-directories of the $STARLINK directory (/star is
+# used if the environment variable STARLINK is not defined).
+#
+# None.
+#
+# Notes:
+# This makefile uses the presence/absence of the hidden files
+# .BUILT, .INSTALLED_$(SYSTEM) and .TESTED_$(SYSTEM) to record the
+# current state of the system during housekeeping operations.
+#
+# Implementation Deficiencies:
+# The method of generating the list of external libraries passed to
+# the $(BLD_SHR) command is still preliminary.
+#
+# Copyright:
+# Copyright (C) 1995 Rutherford Appleton Laboratory
+#
+# Authors:
+# RFWS: R.F.Warren-Smith (Starlink, RAL)
+# PMA: P.M.Allan (Starlink, RAL)
+# PTW: P.T.Wallace (Starlink, RAL)
+# AJC: A.J.Chipperfield (Starlink, RAL)
+# BLY: M.J.Bly (Starlink, RAL)
+# {enter_new_authors_here}
+#
+# History:
+# 1-DEC-1993 (RFWS/PMA):
+# Starlink template.
+# 1-DEC-1993 (PTW):
+# SLALIB version.
+# 18-JAN-1994 (PTW):
+# Corrections to if statements.
+# 10-MAR-1994 (PTW):
+# sla_RVLSR replaced by sla_RVLSRD and sla_RVLSRK
+# 8-AUG-1994 (PTW):
+# New routines added: sla_DE2H, sla_DH2E, sla_DTPRD, sla_E2H,
+# sla_H2E, sla_PRECL, sla_TPRD. Version number changed to 1.3-4.
+# Missing dependencies on source archive added.
+# 19-OCT-1994 (PTW):
+# New routines added: sla_ALTAZ, sla_PDA2H, sla_PDQ2H. Package
+# version number changed to 1.4-1. Library version number
+# changed to 1.4.
+# 26-OCT-1994 (PTW):
+# Package version number changed to 1.4-2.
+# 15-DEC-1994 (PTW):
+# New routines added: sla_PLANET, sla_RDPLAN, sla_DMOON, sla_DT,
+# sla_CLYD. Package version number changed to 1.4-4.
+# 3-JAN-1995 (PTW):
+# Package version number changed to 1.4-5.
+# 13-FEB-1995 (PTW):
+# New routines added: sla_DTP2V, sla_DTPXYZ, sla_DV2TP, sla_TP2V,
+# sla_TPXYZ, sla_V2TP. Package version number changed to 1.4-6.
+# 20-FEB-1995 (PTW):
+# Package version number changed to 1.4-7 (sla_OBS enhanced).
+# 23-MAR-1995 (PTW):
+# Unnecessary creation of INSTALL_INC removed.
+# 05-JUN-1995 (PTW):
+# Four routines replaced: sla_DTPRD, sla_DTPXYZ, sla_TPRD and
+# sla_TPXYZ become sla_DTPS2C, sla_DTPXYZ, sla_TPS2C and sla_TPV2C.
+# Package version number changed to 1.5-1. Library version
+# number changed to 1.5.
+# 06-JUN-1995 (BLY/AJC):
+# Updated to match Mk IVa makefile standard.
+# 02-JUL-1995 (PTW):
+# Package version number changed to 1.5-2.
+# 21-JUL-1995 (PTW):
+# Package version number changed to 1.5-3.
+# 14-SEP-1995 (PTW):
+# New routine added: sla_GMSTA.
+# Package version number changed to 1.6-1.
+# 04-OCT-1995 (PTW):
+# New routine added: sla_ATMDSP.
+# Package version number changed to 1.6-2.
+# 14-NOV-1995 (PTW):
+# Bug fix: sla_DAT.
+# Package version number changed to 1.6-3.
+# 21-FEB-1996 (PTW):
+# New routine: sla_POLMO.
+# Bug fix: sla_DC62S, sla_CC62S.
+# Comment corrections: sla_DH2E, sla_H2E.
+# New, html-compatible, document: SUN/67.34.
+# Package version number changed to 1.6-4.
+# 04-MAR-1996 (BLY):
+# Update makefile to Mk V specification.
+# Add special HLINK macro definitions.
+# No change to version number.
+# 24-APR-1996 (BLY):
+# Integrate ix86_Linux version.
+# Update version to v1.7-0.
+# 10-MAY-1996 (BLY):
+# Update version to v1.7-1. No changes to Fortran version.
+# 18-JUL-1996 (PTW):
+# Comment corrections: sla_DS2TP, sla_DV2TP, sla_S2TP, sla_V2TP
+# New, html-compatible, document: SUN/67.34.
+# Package version number changed to 1.7-2.
+# 26-NOV-1996 (PTW):
+# Minor corrections to sla_DV2TP and sla_V2TP. In sla_OBS,
+# revision of Parkes position and addition of ATNF Mopra.
+# Package version number changed to 1.7-3.
+# 28-MAY-1997 (PTW):
+# New routines: sla_PLANEL, sla_PLANTE.
+# Functionally enhanced: sla_PLANET, sla_RDPLAN.
+# Minor code improvements: several.
+# Comment corrections: numerous.
+# Revised document: SUN/67.36.
+# Package version number changed to 2.0-1.
+# 6-JAN-1998 (PTW):
+# Functionally enhanced: sla_DAT.
+# Revised document: SUN/67.38.
+# Package version number changed to 2.0-3.
+# 15-APR-1998 (PTW):
+# Code improvements: sla_GMSTA.
+# Revised document: SUN/67.40.
+# Package version number changed to 2.0-4.
+# 28-MAY-1998 (PTW):
+# Code improvements: sla_PLANEL.
+# New routine: sla_PV2EL
+# Revised document: SUN/67.41.
+# Package version number changed to 2.1-0.
+# 14-JUL-1998 (PTW):
+# Makefile updated - sla_PAV had been omitted.
+# 18-JUL-1998 (PTW):
+# 1999 January 1 leap second added to sla_DAT.
+# Package version number changed to 2.1-1.
+# 11-AUG-1998 (PTW):
+# Makefile updated - sla_DPAV had been omitted (!).
+# 30-SEP-1998 (PTW):
+# New routines: sla_FK52H, sla_H2FK5, sla_FK5HZ and sla_HFK5Z.
+# Revised document: SUN/67.43.
+# Package version number changed to 2.2-0.
+# 19-MAR-1999 (PTW):
+# New routines: sla_EL2UE, sla_PERTEL, sla_PERTUE,
+# sla_PV2UE, sla_UE2EL and sla_UE2PV
+# Revised document: SUN/67.44.
+# Package version number changed to 2.3-0.
+# 2-AUG-1999 (PTW):
+# New routines: sla_COMBN and sla_PERMUT
+# Revised document: SUN/67.45.
+# Package version number changed to 2.4-0.
+# 29-OCT-1999 (PTW):
+# The F_ROUTINES definition lacked entries for sla_EL2UE,
+# sla_PERTEL, sla_PERTUE, sla_PV2UE, sla_UE2EL, sla_UE2PV,
+# sla_COMBN and sla_PERMUT.
+# {enter_further_changes_here}
+#
+# Bugs:
+# {note_any_bugs_here}
+#
+#-------------------------------------------------------------------------------
+
+# Help target.
+# ===========
+#
+# This is the default target, so it appears first.
+
+# Display information about the mk script and the make targets.
+
+help:
+ @ echo \
+ ' The makefile provided is intended to be used by the make utility when';\
+ echo \
+ ' invoked via the associated mk script. This script defines environment';\
+ echo \
+ ' variables which are used by make to accommodate differing machine and';\
+ echo \
+ ' operating system characteristics. Please see the mk script prologue';\
+ echo \
+ ' for full details.';\
+ echo;\
+ echo \
+ ' The following targets are provided:';\
+ echo;\
+ echo \
+ ' help - Display this message';\
+ echo \
+ ' check - Check source file presence and show current state';\
+ echo \
+ ' build - Build the package from source';\
+ echo \
+ ' install - Install the built package for use';\
+ echo \
+ ' deinstall - Deinstall the package';\
+ echo \
+ ' test - Perform a quick test of the installation';\
+ echo \
+ ' export - Make a compressed tar file for exporting the'\
+ 'built package';\
+ echo \
+ ' complete with source and documentation';\
+ echo \
+ ' export_run - Make a compressed tar file for exporting the'\
+ 'built package';\
+ echo \
+ ' with documentation but no source';\
+ echo \
+ ' export_source - Make a compressed tar file for exporting the'\
+ 'source files';\
+ echo \
+ ' clean - Tidy up after building the package';\
+ echo \
+ ' unbuild - Remove all the built files';\
+ echo;\
+ echo \
+ ' To build and install the $(PACK_NAME) package on a supported system:';\
+ echo;\
+ echo \
+ ' mk build; mk install; mk test; mk clean';\
+ echo
+
+#-------------------------------------------------------------------------------
+
+# Defaults.
+# ========
+#
+# This section defines default macros and should rarely need changing.
+# The values given here should be overridden externally to adapt to
+# the local system setup (either use the mk script or use environment
+# variables and invoke "make" with the "-e" option).
+
+# Name of computer hardware/OS combination.
+
+SYSTEM = unknown
+
+# Name used to distinguish platform-specific source files.
+
+SOURCE_VARIANT = $(SYSTEM)
+
+# Pathname of the root directory beneath which other Starlink software
+# is currently installed.
+
+STARLINK = /star
+
+# Pathnames of Starlink sub-directories that may be referenced when
+# building this package.
+
+STAR_BIN = $(STARLINK)/bin
+STAR_DATES = $(STARLINK)/dates
+STAR_DOCS = $(STARLINK)/docs
+STAR_ETC = $(STARLINK)/etc
+STAR_HELP = $(STARLINK)/help
+STAR_INC = $(STARLINK)/include
+STAR_LIB = $(STARLINK)/lib
+
+# Pathname of the root directory beneath which the built files for
+# this package should be installed for use. This defaults to the
+# user's home directory.
+
+INSTALL = $(HOME)
+
+# Pathname of the directory into which exported tar files will be
+# placed. This defaults to the current working directory.
+
+EXPORT = .
+
+# Default macros for compiling C and Fortran source code.
+
+CC = c89
+CFLAGS = -O
+FC = fort77
+FFLAGS = -O
+
+# Command for forming a link to a file.
+
+LINK = ln
+
+# Command for "randomizing" an object library. The default acts as a
+# null command.
+
+RANLIB = :
+
+# Commands for adding to and extracting from an archive file (.tar).
+
+TAR_IN = pax -w -v -x ustar -f
+TAR_OUT = pax -r -f
+
+# Command for adding a file to an object archive (.a).
+
+AR_IN = ar -r
+
+# Default file type extension for a shareable library and command for
+# building a shareable library (the default acts as a null command).
+
+SHARE = .so
+BLD_SHR = :
+
+# Default command for linking hypertext document to others, including those
+# on the RAL document server.
+
+HLINK = :
+
+#-------------------------------------------------------------------------------
+################################################################################
+#
+# Define package source files.
+# ===========================
+#
+# This section defines the set of source files for the package.
+
+# Name of the package as specified in documentation
+# The value is used in messages from make to the user.
+
+PACK_NAME = SLALIB
+
+# Prefix for the package in lower-case as used in filenames etc.
+PKG_NAME = sla
+
+# Prefix for the package in upper-case as used in include file links.
+PKG_LINK = SLA
+
+# Version number (as in the documentation - i.e. not the same thing
+# as the shared library version number).
+#
+# The major component of the version number (before the dot) should
+# normally only be incremented following major changes to the package.
+# The minor version number (after the dot) is the number normally
+# incremented following development which introduces new documented
+# functionality. Any revision number (appended after a dash) should
+# be incremented for other minor changes (bug fixes, etc.) which do
+# not merit documentation changes.
+
+PKG_VERS = 2.4-0
+
+# Library version number.
+#
+# n.b. Care needed - may affect existing applications.
+#
+# The minor component of this number (following the dot) should be
+# incremented whenever a new routine is added to a library or some
+# other change is made such that programs built with the latest
+# version would fail to run using an earlier version. The major number
+# should be incremented if a change is made such that existing
+# programs would have to be re-built in order to work with the new
+# version.
+
+LIB_VERS = 1.6
+
+# List of files comprising the distributed source-only system. This
+# defines the minimum set of files required to rebuild completely the
+# package from source (including this makefile, the associated mk
+# script and any documentation files).
+
+SOURCE_FILES = $(PKG_NAME)_source.tar makefile mk $(DOCUMENTATION)
+
+# List of public script files. These are scripts which form part of
+# the package and will be required by users of it. They will be
+# installed in the $(INSTALL_BIN) directory with execute permission
+# set.
+
+PUBLIC_SCRIPTS = $(PKG_NAME)_link $(PKG_NAME)_link_adam
+
+# Startup script. This is the file that must be executed by a
+# programmer using this package in order to define links to include
+# files. It is listed separately from the public scripts as it is
+# edited by the installation procedure.
+
+STARTUP_SCRIPT =
+
+# List of public include files. These are include files which form
+# part of the package and may be required by users of it. They will be
+# installed in the $(INSTALL_INC) directory.
+
+PUBLIC_INCLUDES =
+
+# List of private include files. These are additional include files
+# which form part of the package and are required in order to build
+# it, but which are not required by users of it.
+
+PRIVATE_INCLUDES =
+
+# List of external include files. These are files which are required
+# in order to build the package but form part of other, externally
+# installed packages. This list should contain the names used to
+# reference the files within the source code, not the actual names of
+# the files.
+
+EXTERNAL_INCLUDES =
+
+# List of Fortran routines required for building the package. This is
+# just a list of all the Fortran source files (excluding BLOCK DATA
+# routines, which are treated separately).
+
+F_ROUTINES = \
+ addet.f \
+ afin.f \
+ airmas.f \
+ altaz.f \
+ amp.f \
+ ampqk.f \
+ aop.f \
+ aoppa.f \
+ aoppat.f \
+ aopqk.f \
+ atmdsp.f \
+ atms.f \
+ atmt.f \
+ av2m.f \
+ bear.f \
+ caf2r.f \
+ caldj.f \
+ calyd.f \
+ cc2s.f \
+ cc62s.f \
+ cd2tf.f \
+ cldj.f \
+ clyd.f \
+ combn.f \
+ cr2af.f \
+ cr2tf.f \
+ cs2c.f \
+ cs2c6.f \
+ ctf2d.f \
+ ctf2r.f \
+ daf2r.f \
+ dafin.f \
+ dat.f \
+ dav2m.f \
+ dbear.f \
+ dbjin.f \
+ dc62s.f \
+ dcc2s.f \
+ dcmpf.f \
+ dcs2c.f \
+ dd2tf.f \
+ de2h.f \
+ deuler.f \
+ dfltin.f \
+ dh2e.f \
+ dimxv.f \
+ djcal.f \
+ djcl.f \
+ dm2av.f \
+ dmat.f \
+ dmoon.f \
+ dmxm.f \
+ dmxv.f \
+ dpav.f \
+ dr2af.f \
+ dr2tf.f \
+ drange.f \
+ dranrm.f \
+ ds2c6.f \
+ ds2tp.f \
+ dsep.f \
+ dt.f \
+ dtf2d.f \
+ dtf2r.f \
+ dtp2s.f \
+ dtp2v.f \
+ dtps2c.f \
+ dtpv2c.f \
+ dtt.f \
+ dv2tp.f \
+ dvdv.f \
+ dvn.f \
+ dvxv.f \
+ e2h.f \
+ earth.f \
+ ecleq.f \
+ ecmat.f \
+ ecor.f \
+ eg50.f \
+ el2ue.f \
+ epb.f \
+ epb2d.f \
+ epco.f \
+ epj.f \
+ epj2d.f \
+ eqecl.f \
+ eqeqx.f \
+ eqgal.f \
+ etrms.f \
+ euler.f \
+ evp.f \
+ fitxy.f \
+ fk425.f \
+ fk45z.f \
+ fk524.f \
+ fk52h.f \
+ fk54z.f \
+ fk5hz.f \
+ flotin.f \
+ galeq.f \
+ galsup.f \
+ ge50.f \
+ geoc.f \
+ gmst.f \
+ gmsta.f \
+ h2e.f \
+ h2fk5.f \
+ hfk5z.f \
+ idchf.f \
+ idchi.f \
+ imxv.f \
+ intin.f \
+ invf.f \
+ kbj.f \
+ m2av.f \
+ map.f \
+ mappa.f \
+ mapqk.f \
+ mapqkz.f \
+ moon.f \
+ mxm.f \
+ mxv.f \
+ nut.f \
+ nutc.f \
+ oap.f \
+ oapqk.f \
+ obs.f \
+ pa.f \
+ pav.f \
+ pcd.f \
+ pda2h.f \
+ pdq2h.f \
+ permut.f \
+ pertel.f \
+ pertue.f \
+ planel.f \
+ planet.f \
+ plante.f \
+ pm.f \
+ polmo.f \
+ prebn.f \
+ prec.f \
+ precl.f \
+ preces.f \
+ prenut.f \
+ pv2el.f \
+ pv2ue.f \
+ pvobs.f \
+ pxy.f \
+ range.f \
+ ranorm.f \
+ rcc.f \
+ rdplan.f \
+ refco.f \
+ refro.f \
+ refv.f \
+ refz.f \
+ rverot.f \
+ rvgalc.f \
+ rvlg.f \
+ rvlsrd.f \
+ rvlsrk.f \
+ s2tp.f \
+ sep.f \
+ smat.f \
+ subet.f \
+ supgal.f \
+ svd.f \
+ svdcov.f \
+ svdsol.f \
+ tp2s.f \
+ tp2v.f \
+ tps2c.f \
+ tpv2c.f \
+ ue2el.f \
+ ue2pv.f \
+ unpcd.f \
+ v2tp.f \
+ vdv.f \
+ vn.f \
+ vxv.f \
+ xy2xy.f \
+ zd.f
+
+# List of Fortran BLOCK DATA routines.
+
+BLOCK_DATA =
+
+# List of platform specific Fortran routines. The source tar file will
+# contain a version of these files for each set of platforms. The names
+# given here are the general version of the file, e.g. pkg_open.f. The
+# names in the tar file will be pkg_open.f_sun4, pkg_open.f_mips, etc.
+
+PLATFORM_F = \
+ gresid.f \
+ random.f \
+ wait.f
+
+# C routines required for building the package. This is just a list of
+# all the C source files.
+
+C_ROUTINES =
+
+# Lists of Latex and hypertext documents.
+
+LATEX_DOCS = sun67.tex
+HYPERTEXT_DOCS = sun67.htx
+
+# List of documentation files.
+
+DOCUMENTATION = $(LATEX_DOCS) $(HYPERTEXT_DOCS:.htx=.htx_tar) \
+$(PKG_NAME).news read.me
+
+################################################################################
+#-------------------------------------------------------------------------------
+
+# Define files required for building the package.
+# ==============================================
+#
+# This section defines the set of files produced from the source files
+# when the package is built and installed.
+
+# Use only .o, .c and .f suffix rules.
+
+.SUFFIXES:
+.SUFFIXES: .o .c .f
+
+# List of files which must be built from the source files before the
+# package can be installed for use. This should comprise all the files
+# that are required to use the package (but excluding the date stamp
+# file).
+
+BUILT_FILES = $(PUBLIC_SCRIPTS) $(PUBLIC_INCLUDES) $(OBJECT_LIBRARIES) \
+$(SHAREABLE_LIBRARIES) $(STARTUP_SCRIPT)
+
+# List of links used to access include files during compilation. This
+# should comprise all the external include files and any other include
+# files whose names do not exactly match the names used in the source
+# code.
+
+INCLUDE_LINKS = $(EXTERNAL_INCLUDES)
+
+# Rules to set up links to locate each of the above include files.
+
+# Rules for extracting source files from the source archive.
+
+$(PUBLIC_SCRIPTS) $(PUBLIC_INCLUDES) $(F_ROUTINES) \
+$(BLOCK_DATA) $(C_ROUTINES) $(STARTUP_SCRIPT):
+ $(TAR_OUT) $(PKG_NAME)_source.tar $@
+ @ if test -f $@; then :;\
+ else echo $@ is not in the tar file; exit 1; fi
+
+# Rules for extracting platform specific source files from the source
+# archive.
+
+# It is quite likely that there are no platform-specific source files
+# and that the macro PLATFORM_F is empty. To prevent a syntax error in
+# make, a dummy target is present.
+
+$(PLATFORM_F) dummy_target1:
+ $(TAR_OUT) $(PKG_NAME)_source.tar $@_$(SOURCE_VARIANT)
+ @ if test -f $@_$(SOURCE_VARIANT); then :;\
+ else echo $@_$(SOURCE_VARIANT) is not in the tar file; exit 1; fi
+ mv $@_$(SOURCE_VARIANT) $@
+
+# List of object files produced by compiling the source code and rules
+# for performing the compilations.
+
+OBJECT_FILES = $(BLOCK_DATA:.f=.o) $(F_ROUTINES:.f=.o) \
+ $(PLATFORM_F:.f=.o) $(C_ROUTINES:.c=.o)
+
+.c.o:
+ $(CC) $(CFLAGS) -c $<
+.f.o:
+ $(FC) $(FFLAGS) -c $<
+
+# List of object library files to be built and rules for building
+# them.
+
+OBJECT_LIBRARIES = lib$(PKG_NAME).a
+
+lib$(PKG_NAME).a: $(OBJECT_FILES)
+ $(AR_IN) $@ $?
+ $(RANLIB) $@
+
+# List of shareable library files to be built and rules for building
+# them. The third argument to $(BLD_SHR) should provide the information
+# necessary to link any libraries called by this package.
+
+SHAREABLE_LIBRARIES = lib$(PKG_NAME)$(SHARE)
+
+lib$(PKG_NAME)$(SHARE): $(OBJECT_FILES)
+ touch $@
+ $(BLD_SHR) $@ '$(OBJECT_FILES)'
+
+# Name of the date stamp file. This is used to record the time of the
+# most recent build for use in subsequent operations that require it.
+# There must be no rule for generating this file; it is updated only
+# as a side effect of building the package.
+
+DATE_STAMP = $(PKG_NAME)_datestamp
+
+# Pathnames of directories into which files may be placed when the
+# package is installed.
+
+INSTALL_BIN = $(INSTALL)/bin
+INSTALL_DATES = $(INSTALL)/dates
+INSTALL_DOCS = $(INSTALL)/docs
+INSTALL_ETC = $(INSTALL)/etc
+INSTALL_HELP = $(INSTALL)/help
+INSTALL_INC = $(INSTALL)/include
+INSTALL_LIB = $(INSTALL)/lib
+INSTALL_SHARE = $(INSTALL)/share
+
+# List of directories actually used for installation (selected from
+# those above) and rules to create them.
+
+INSTALL_DIRS = $(INSTALL_BIN) $(INSTALL_DATES) $(INSTALL_DOCS) $(INSTALL_LIB) \
+$(INSTALL_SHARE)
+
+$(INSTALL_DIRS):
+ mkdir -p $@
+
+#-------------------------------------------------------------------------------
+
+# Primary targets.
+# ===============
+#
+# These are the targets intended for normal external use (apart from
+# help, which appears at the start of the file).
+
+# check: Check source file presence and show current state.
+# --------------------------------------------------------
+
+check:
+ @ echo
+ @ echo \
+ '*** This is $(PACK_NAME) version V$(PKG_VERS) on system $(SYSTEM)'
+ @ echo
+ @ nosource='';\
+ for f in $(SOURCE_FILES); do \
+ if test ! -f $$f; then \
+ nosource='1';\
+ break;\
+ else :; fi;\
+ done;\
+ if test -n "$$nosource"; then \
+ echo ' Source files are NOT present';\
+ else \
+ echo ' All essential source files are present';\
+ fi
+ @ echo
+#
+# Display the current state.
+ @ if test -f .BUILT;\
+ then echo ' The package is currently: built for system'\
+ `cat .BUILT`;\
+ else echo ' The package is currently: not built';fi
+ @ if test -f .INSTALLED_$(SYSTEM);\
+ then echo ' installed in'\
+ `cat .INSTALLED_$(SYSTEM)`;\
+ else echo ' not installed';fi
+ @ if test -f .TESTED_$(SYSTEM);\
+ then echo ' tested';\
+ else echo ' not tested';fi
+ @ echo
+ @ if test -f .BUILT;\
+ then if test "$(SYSTEM)" != "`cat .BUILT`";\
+ then echo '*** WARNING ***';\
+ echo \
+' The package is built for a system other than the current one';\
+ echo ;\
+ else :;fi;\
+ else :;fi
+
+# build: Build the system.
+# -----------------------
+#
+# Compile the source and build the required files in the source
+# directory.
+
+# The build target first checks that the package is not installed. If
+# not, it then causes the .BUILT target to be made which ensures that
+# the package has been built.
+
+build:
+ @ if test -f .INSTALLED_$(SYSTEM); then \
+ echo;\
+ echo \
+ '*** The $(PACK_NAME) package is currently installed -- please use the';\
+ echo ' "deinstall" target before re-building it';\
+ echo;\
+ elif $(MAKE) .BUILT; then \
+ echo;\
+ echo '*** The $(PACK_NAME) package has been built';\
+ echo;\
+ else \
+ echo;\
+ echo '*** "make" failed building the $(PACK_NAME) package';\
+ echo;\
+ exit 1;\
+ fi
+
+# The .BUILT target records the time of the most recent build which
+# modified any of the built files. It depends on all the built files
+# being up to date (which causes them to be built).
+
+.BUILT: $(BUILT_FILES)
+#
+# Enter information about the current machine and build environment
+# into the date stamp file.
+ @ echo 'Package : $(PACK_NAME)' >$(DATE_STAMP)
+ @ echo 'Version : V$(PKG_VERS)' >>$(DATE_STAMP)
+ @ echo 'Library : V$(LIB_VERS)' >>$(DATE_STAMP)
+ @ echo '' >>$(DATE_STAMP)
+ @ echo "Built by: $(USER) on node `uname -n`" \
+ >>$(DATE_STAMP)
+ @ echo "On : `date`" >>$(DATE_STAMP)
+ @ echo '' >>$(DATE_STAMP)
+ @ echo \
+ "Machine : `uname -m` running `uname -s` `uname -v` (release `uname -r`)" \
+ >>$(DATE_STAMP)
+ @ echo '' >>$(DATE_STAMP)
+ @ echo 'make macros:' >>$(DATE_STAMP)
+ @ echo '' >>$(DATE_STAMP)
+ @ echo ' SYSTEM : $(SYSTEM)' >>$(DATE_STAMP)
+ @ echo '' >>$(DATE_STAMP)
+ @ echo ' EXPORT : $(EXPORT)' >>$(DATE_STAMP)
+ @ echo ' INSTALL : $(INSTALL)' >>$(DATE_STAMP)
+ @ echo ' STARLINK: $(STARLINK)' >>$(DATE_STAMP)
+ @ echo '' >>$(DATE_STAMP)
+ @ echo ' AR_IN : $(AR_IN)' >>$(DATE_STAMP)
+ @ echo ' BLD_SHR : $(BLD_SHR)' >>$(DATE_STAMP)
+ @ echo ' CC : $(CC)' >>$(DATE_STAMP)
+ @ echo ' CFLAGS : $(CFLAGS)' >>$(DATE_STAMP)
+ @ echo ' FC : $(FC)' >>$(DATE_STAMP)
+ @ echo ' FFLAGS : $(FFLAGS)' >>$(DATE_STAMP)
+ @ echo ' LINK : $(LINK)' >>$(DATE_STAMP)
+ @ echo ' RANLIB : $(RANLIB)' >>$(DATE_STAMP)
+ @ echo ' SHARE : $(SHARE)' >>$(DATE_STAMP)
+ @ echo ' SOURCE_VARIANT: $(SOURCE_VARIANT)' \
+ >>$(DATE_STAMP)
+ @ echo ' TAR_IN : $(TAR_IN)' >>$(DATE_STAMP)
+ @ echo ' TAR_OUT : $(TAR_OUT)' >>$(DATE_STAMP)
+ @ echo '' >>$(DATE_STAMP)
+#
+# Record completion of the build.
+ @ echo '$(SYSTEM)' > .BUILT
+
+# install: Install the package for use.
+# ------------------------------------
+#
+# Copy the built files to their installation directories, from where
+# they may be accessed.
+
+# The install target first checks if any part of the package is
+# already installed. If not, it checks that the system is built for this
+# SYSTEM and, if it is, causes the .INSTALLED_$(SYSTEM) target to be made
+# which performs the installation.
+
+install:
+ @ if test -f .INSTALLED_$(SYSTEM); then \
+ echo;\
+ echo \
+ '*** The $(PACK_NAME) package has already been installed -- please use the';\
+ echo \
+ ' "deinstall" target first if you wish to reinstall it';\
+ echo;\
+ elif test -f .BUILT; then \
+ if test "`cat .BUILT`" = "$(SYSTEM)"; then \
+ if $(MAKE) .INSTALLED_$(SYSTEM); then \
+ echo;\
+ echo \
+ '*** The $(PACK_NAME) package has been installed in directory $(INSTALL)';\
+ echo;\
+ else \
+ echo;\
+ echo \
+ '*** "make" failed installing the $(PACK_NAME) package in directory $(INSTALL)';\
+ echo;\
+ exit 1;\
+ fi;\
+ else \
+ echo;\
+ echo \
+ "*** The $(PACK_NAME) package is built for system `cat .BUILT` -"\
+ 'so cannot be installed on system $(SYSTEM)';\
+ echo;\
+ exit 1;\
+ fi;\
+ else \
+ echo;\
+ echo \
+ '*** The $(PACK_NAME) package is not built, so cannot be installed';\
+ echo;\
+ exit 1;\
+ fi
+
+# The .INSTALLED_$(SYSTEM) target copies each file from the source
+# directory using "cp -p" to preserve its date, and replaces each
+# original file by a link to the installed copy.
+
+.INSTALLED_$(SYSTEM): $(INSTALL_DIRS)
+#
+# Create .INSTALLED_$(SYSTEM), containing $INSTALL, to record that the
+# package is installed (at least in part).
+ @ echo $(INSTALL) > .INSTALLED_$(SYSTEM)
+#
+# Install the public scripts, giving them world execute permission.
+ for f in $(PUBLIC_SCRIPTS) ""; do \
+ if test -n "$$f"; then \
+ cp -p $$f $(INSTALL_BIN);\
+ chmod 755 $(INSTALL_BIN)/$$f;\
+ rm -f $$f;\
+ $(LINK) $(INSTALL_BIN)/$$f $$f;\
+ else :; fi;\
+ done
+#
+# Install the public include files, giving them world read permission.
+ for f in $(PUBLIC_INCLUDES) ""; do \
+ if test -n "$$f"; then \
+ cp -p $$f $(INSTALL_INC);\
+ chmod 644 $(INSTALL_INC)/$$f;\
+ rm -f $$f;\
+ $(LINK) $(INSTALL_INC)/$$f $$f;\
+ else :; fi;\
+ done
+#
+# Install the object libraries, giving them world read permission.
+ for f in $(OBJECT_LIBRARIES) ""; do \
+ if test -n "$$f"; then \
+ cp -p $$f $(INSTALL_LIB);\
+ chmod 644 $(INSTALL_LIB)/$$f;\
+ rm -f $$f;\
+ $(LINK) $(INSTALL_LIB)/$$f $$f;\
+ else :; fi;\
+ done
+#
+# Install shareable libraries, giving them read permission (unless
+# they are dummy, zero size, files in which case they are left in
+# place).
+ for f in $(SHAREABLE_LIBRARIES) ""; do \
+ if test -n "$$f" -a -s "$$f"; then \
+ cp -p $$f $(INSTALL_SHARE);\
+ chmod 755 $(INSTALL_SHARE)/$$f;\
+ rm -f $$f;\
+ $(LINK) $(INSTALL_SHARE)/$$f $$f;\
+ else :; fi;\
+ done
+#
+# Install the package startup script. The name of the directory
+# containing the installed public include files must be edited into
+# this, and execute permission given. Leave the original file in
+# place.
+ if test -n "$(STARTUP_SCRIPT)"; then \
+ sed -e 's#LINK#$(LINK)#' -e s#INSTALL_INC#$(INSTALL_INC)# \
+ $(STARTUP_SCRIPT) >$(INSTALL_BIN)/$(STARTUP_SCRIPT) ;\
+ chmod 755 $(INSTALL_BIN)/$(STARTUP_SCRIPT) ;\
+ else :; fi
+#
+# Install the Latex documentation, giving it world read permission,
+# leaving the source copy in place.
+ for f in $(LATEX_DOCS) ""; do \
+ if test -n "$$f"; then \
+ cp -p $$f $(INSTALL_DOCS);\
+ chmod 644 $(INSTALL_DOCS)/$$f;\
+ else :; fi;\
+ done
+#
+# Install any hypertext documents, giving world read access to all the files
+# they contain and linking with other documents.
+ if test -n "$(HYPERTEXT_DOCS)"; then \
+ pwd=`pwd`;\
+ (cd $(INSTALL_DOCS);\
+ for f in $(HYPERTEXT_DOCS) ""; do \
+ if test -n "$$f"; then\
+ $(TAR_OUT) $$pwd/$${f}_tar;\
+ chmod 755 `find $$f -type d -print`;\
+ chmod 644 `find $$f ! -type d -print`;\
+ touch $$f;\
+ else :; fi;\
+ done);\
+ HTX_PATH='$(STAR_DOCS):$(STAR_HELP)';\
+ export HTX_PATH;\
+ $(HLINK) $(INSTALL_DOCS) $(INSTALL_HELP);\
+ fi;
+#
+# Install the date stamp file and make it read-only to prevent its
+# date being changed.
+ cp -p $(DATE_STAMP) $(INSTALL_DATES)
+ chmod 444 $(INSTALL_DATES)/$(DATE_STAMP)
+ chmod 644 $(DATE_STAMP)
+ rm $(DATE_STAMP)
+ $(LINK) $(INSTALL_DATES)/$(DATE_STAMP) $(DATE_STAMP)
+
+# deinstall: Deinstall the package.
+# --------------------------------
+#
+# Reverse the action of the install target, removing the installed
+# files and returning them to the source directory.
+
+# The deinstall target checks that the package is installed in the INSTALL
+# directory. If so, it causes the do_deinstall target to be made which
+# performs the deinstallation.
+
+deinstall:
+ @ if test ! -f .INSTALLED_$(SYSTEM); then \
+ echo;\
+ echo '*** The $(PACK_NAME) package is not currently installed';\
+ echo;\
+ else \
+ if test "`cat .INSTALLED_$(SYSTEM)`" = "$(INSTALL)"; then \
+ if $(MAKE) do_deinstall; then \
+ echo;\
+ echo \
+'*** The $(PACK_NAME) package has been deinstalled from directory $(INSTALL)';\
+ echo;\
+ else \
+ echo;\
+ echo \
+'*** "make" failed deinstalling the $(PACK_NAME) package from directory $(INSTALL)';\
+ echo;\
+ exit 1;\
+ fi;\
+ else \
+ echo;\
+ echo \
+"*** The $(PACK_NAME) package is installed in `cat .INSTALLED_$(SYSTEM)`";\
+ echo \
+"*** and not in your INSTALL directory ($(INSTALL))";\
+ echo '*** Not deinstalled';\
+ exit 1;\
+ fi;\
+ fi
+
+# The do_deinstall target (which should never exist) checks that an
+# installed version of each file exists (in case an install failed
+# part of the way through) and returns it to the source directory,
+# using "cp -p" to preserve file dates. Links are removed from the
+# source directory before copying.
+
+do_deinstall:
+#
+# Note the package will need to be tested again.
+ @- if test -f .TESTED_$(SYSTEM); then rm -f .TESTED_$(SYSTEM); else :; fi
+#
+# Deinstall the public script files, if installed versions exist.
+ - for f in $(PUBLIC_SCRIPTS) ""; do \
+ if test -n "$$f" -a -f $(INSTALL_BIN)/$$f; then \
+ rm -f $$f;\
+ cp -p $(INSTALL_BIN)/$$f .;\
+ rm -f $(INSTALL_BIN)/$$f;\
+ else :; fi;\
+ done
+#
+# Deinstall the public include files, if installed versions exist.
+ - for f in $(PUBLIC_INCLUDES) ""; do \
+ if test -n "$$f" -a -f $(INSTALL_INC)/$$f; then \
+ rm -f $$f;\
+ cp -p $(INSTALL_INC)/$$f .;\
+ rm -f $(INSTALL_INC)/$$f;\
+ else :; fi;\
+ done
+#
+# Deinstall the object libraries, if installed versions exist.
+ - for f in $(OBJECT_LIBRARIES) ""; do \
+ if test -n "$$f" -a -f $(INSTALL_LIB)/$$f; then \
+ rm -f $$f;\
+ cp -p $(INSTALL_LIB)/$$f .;\
+ rm -f $(INSTALL_LIB)/$$f;\
+ else :; fi;\
+ done
+#
+# Deinstall the shareable libraries, if installed versions exist.
+ - for f in $(SHAREABLE_LIBRARIES) ""; do \
+ if test -n "$$f" -a -f $(INSTALL_SHARE)/$$f; then \
+ rm -f $$f;\
+ cp -p $(INSTALL_SHARE)/$$f .;\
+ rm -f $(INSTALL_SHARE)/$$f;\
+ else :; fi;\
+ done
+#
+# Deinstall the package startup file. Since it will have been edited
+# during installation, we remove the installed copy, if present, and
+# then ensure that the original exists.
+ - if test -n "$(STARTUP_SCRIPT)"; then \
+ if test -f $(INSTALL_BIN)/$(STARTUP_SCRIPT); then\
+ rm -f $(INSTALL_BIN)/$(STARTUP_SCRIPT);\
+ else :; fi ;\
+ $(MAKE) $(STARTUP_SCRIPT);\
+ else :; fi
+#
+# Deinstall the Latex documentation, if installed versions exist.
+ - for f in $(LATEX_DOCS) ""; do \
+ if test -n "$$f" -a -f $(INSTALL_DOCS)/$$f; then \
+ rm -f $(INSTALL_DOCS)/$$f;\
+ else :; fi;\
+ done
+#
+# Deinstall any hypertext documents, and relink the hypertext if required.
+ - if test -n "$(HYPERTEXT_DOCS)"; then \
+ for f in $(HYPERTEXT_DOCS) ""; do \
+ if test -n "$$f" -a -d $(INSTALL_DOCS)/$$f; then \
+ rm -f -r $(INSTALL_DOCS)/$$f;\
+ else :; fi;\
+ done;\
+ HTX_PATH='$(STAR_DOCS):$(STAR_HELP)';\
+ export HTX_PATH;\
+ $(HLINK) $(INSTALL_DOCS) $(INSTALL_HELP);\
+ fi
+#
+# Deinstall the date stamp file after setting its protection so it may
+# be removed.
+ - if test -f $(INSTALL_DATES)/$(DATE_STAMP); then \
+ chmod 644 $(DATE_STAMP); rm $(DATE_STAMP);\
+ chmod 644 $(INSTALL_DATES)/$(DATE_STAMP);\
+ cp -p $(INSTALL_DATES)/$(DATE_STAMP) .;\
+ rm $(INSTALL_DATES)/$(DATE_STAMP);\
+ else :; fi
+#
+# Note the system is no longer installed. Re-create .BUILT, since we have
+# returned the built files to the source directory but an unbuild may have
+# been done.
+ @- rm -f .INSTALLED_$(SYSTEM) 1>/dev/null 2>/dev/null
+ @ echo '$(SYSTEM)' > .BUILT
+
+# test: Perform an installation test.
+# ----------------------------------
+#
+# Check that installed files are in their correct places and that a
+# simple test program will run correctly.
+
+# The test target checks that the package is currently installed. If
+# so, it causes the do_test target to be made, which performs the
+# installation test.
+
+test:
+ @ if test ! -f .INSTALLED_$(SYSTEM); then \
+ echo;\
+ echo '*** The $(PACK_NAME) package is not currently installed';\
+ echo;\
+ elif $(MAKE) do_test; then\
+ echo;\
+ echo \
+ '*** Installation test for the $(PACK_NAME) package has been run';\
+ echo;\
+ else \
+ echo;\
+ echo \
+ '*** Installation test for the $(PACK_NAME) package failed';\
+ echo;\
+ exit 1;\
+ fi
+
+# The do_test target performs the installation test. A file named do_test
+# should never exist.
+
+do_test: $(EXTERNAL_INCLUDES)
+#
+# Note the test has not yet succeeded.
+ @- if test -f .TESTED_$(SYSTEM); then rm -f .TESTED_$(SYSTEM); else :; fi
+#
+# Extract the test program from the archive and set up new links for
+# the include files which point at the installed versions. Remove any
+# pre-existing links first if necessary.
+ $(TAR_OUT) $(PKG_NAME)_source.tar $(PKG_NAME)_test.f
+ @ if test -f $(PKG_NAME)_test.f; then :;\
+ else echo $(PKG_NAME)_test.f is not in the tar file; exit 1; fi
+#
+# Build the test program, ensuring that the installed version of the library
+# and link files are used.
+ $(FC) $(FFLAGS) $(PKG_NAME)_test.f -L$(INSTALL_LIB) -L$(STAR_LIB) \
+ `$(INSTALL_BIN)/$(PKG_NAME)_link` -o $(PKG_NAME)_test
+#
+# Remove the test program source and the include file links used to
+# build it.
+ rm -f $(PKG_NAME)_test.f $(EXTERNAL_INCLUDES)
+#
+# Execute the test program and remove the binary file when done. Note
+# that any external mechanism for locating shareable libraries (e.g. a
+# search path) must previously have been set up.
+ ./$(PKG_NAME)_test
+ rm -f $(PKG_NAME)_test
+#
+# Note the test has been run.
+ @ touch .TESTED_$(SYSTEM)
+
+# export: Export the installed system.
+# -----------------------------------
+#
+# Export the source plus all the built files to a new user.
+
+# The export target depends on the resulting compressed tar file being
+# up to date.
+
+export: $(EXPORT)/$(PKG_NAME)_$(SYSTEM).tar.Z
+ @ echo
+ @ echo \
+'*** Export copy of the built $(PACK_NAME) package is in the compressed'
+ @ echo \
+' tar file $(EXPORT)/$(PKG_NAME)_$(SYSTEM).tar.Z'
+ @ echo
+
+# The compressed tar file is up to date if it exists and is more
+# recent than all the source files and the date stamp file (which
+# records the time of the last build which modified any files).
+
+$(EXPORT)/$(PKG_NAME)_$(SYSTEM).tar.Z: $(SOURCE_FILES) $(DATE_STAMP)
+#
+# Issue a warning if the package has not been tested.
+ @ if test ! -f .TESTED_$(SYSTEM); then \
+ echo;\
+ echo '*** Warning: the $(PACK_NAME) package has not been tested';\
+ echo;\
+ else :; fi
+#
+# Remove any pre-existing tar files before creating new ones.
+ if test -f $(EXPORT)/$(PKG_NAME)_$(SYSTEM).tar.Z; then \
+ rm -f $(EXPORT)/$(PKG_NAME)_$(SYSTEM).tar.Z; else :; fi
+ $(TAR_IN) - $(SOURCE_FILES) $(BUILT_FILES) $(DATE_STAMP) .BUILT \
+ | compress -v > $(EXPORT)/$(PKG_NAME)_$(SYSTEM).tar.Z
+
+# export_run: Export the built system (without source).
+# -----------------------------------------------------
+#
+# Export all the built files to a new user.
+
+# The export_run target depends on the resulting compressed tar file being
+# up to date.
+
+export_run: $(EXPORT)/$(PKG_NAME)_$(SYSTEM)_run.tar.Z
+ @ echo
+ @ echo \
+'*** Export copy of the "runtime" $(PACK_NAME) package is in the compressed'
+ @ echo \
+' tar file $(EXPORT)/$(PKG_NAME)_$(SYSTEM)_run.tar.Z'
+ @ echo
+
+# The compressed tar file is up to date if it exists and is more
+# recent than all the source files and the date stamp file (which
+# records the time of the last build which modified any files).
+
+$(EXPORT)/$(PKG_NAME)_$(SYSTEM)_run.tar.Z: $(SOURCE_FILES) $(DATE_STAMP)
+#
+# Issue a warning if the package has not been tested.
+ @ if test ! -f .TESTED_$(SYSTEM); then \
+ echo;\
+ echo '*** Warning: the $(PACK_NAME) package has not been tested';\
+ echo;\
+ else :; fi
+#
+# Remove any pre-existing tar files before creating new ones.
+ if test -f $(EXPORT)/$(PKG_NAME)_$(SYSTEM)_run.tar.Z; then \
+ rm -f $(EXPORT)/$(PKG_NAME)_$(SYSTEM)_run.tar.Z; else :; fi
+ $(TAR_IN) - mk makefile $(DOCUMENTATION) $(BUILT_FILES) \
+ $(DATE_STAMP) .BUILT \
+ | compress -v > $(EXPORT)/$(PKG_NAME)_$(SYSTEM)_run.tar.Z
+
+# export_source: Export the source.
+# --------------------------------
+#
+# Export the source files only to a new user.
+
+# This target depends on the resulting compressed tar file being up to
+# date.
+
+export_source: $(EXPORT)/$(PKG_NAME).tar.Z
+ @ echo
+ @ echo \
+'*** Export copy of the $(PACK_NAME) package source is in the compressed'
+ @ echo \
+' tar file $(EXPORT)/$(PKG_NAME).tar.Z'
+ @ echo
+
+# The compressed tar file is up to date if it exists and is more
+# recent than all the source files.
+
+$(EXPORT)/$(PKG_NAME).tar.Z: $(SOURCE_FILES)
+#
+# Remove any pre-existing tar files before creating new ones.
+ if test -f $(EXPORT)/$(PKG_NAME).tar.Z; then \
+ rm -f $(EXPORT)/$(PKG_NAME).tar.Z; else :; fi
+ $(TAR_IN) - $(SOURCE_FILES) \
+ | compress -v > $(EXPORT)/$(PKG_NAME).tar.Z
+
+# clean: Clean up the source directory.
+# ------------------------------------
+#
+# Remove all intermediate files. Do not remove built files.
+
+clean:
+ @- rm -f $(INCLUDE_LINKS) $(F_ROUTINES) \
+ $(PLATFORM_F) $(BLOCK_DATA) 1>/dev/null 2>/dev/null
+ @- rm -f $(C_ROUTINES) $(OBJECT_FILES) 1>/dev/null 2>/dev/null
+ @ echo
+ @ echo '*** Intermediate files removed'
+ @ echo
+
+# unbuild: Reverse the build process.
+# ----------------------------------
+
+# Remove all intermediate files and all built files, and note that the
+# package is no longer built or tested.
+
+unbuild: clean
+ @- rm -f $(BUILT_FILES) $(DATE_STAMP) .BUILT 1>/dev/null 2>/dev/null
+ @ echo '*** Built files removed'
+ @ echo
+
+#-------------------------------------------------------------------------------
+
+# Include file dependencies.
+# =========================
+
+# Object file dependencies on include files (or links to those include
+# files). These are normally generated automatically from the source
+# files.
+
+#-------------------------------------------------------------------------------
+
+# Private targets.
+
+# Targets for manipulating the hypertext documentation (creating,
+# generating tar files etc, cleaning etc).
+
+hypertext: sun67.tex sun67.aux
+ star2html -aux -m ptw@star.rl.ac.uk sun67.tex
+
+hypertext_tar:
+ $(TAR_IN) sun67.htx_tar sun67.htx/*
+
+hypertext_clean:
+ rm -rf sun67.htx
+#-------------------------------------------------------------------------------
+#
+# End of makefile.
+#.