28 Top-level Makefile
This is the top-level Makefile and should be present in any distribution of
ALLPROSE. If it is not present, then one can generate it from Makefile.nw by
calling
notangle -t8 Makefile.nw > Makefile
|
The definitions of ALLPROSELIBPROJECTNAME, ALLPROSELIBPREFIX,
and ALLPROSELIBRARYNAME are only used by ALLPROSE to hardlink
to a sample library project that comes with ALLPROSE. These are the
default values for PROJECTNAME, LIBPREFIX, and LIBRARYNAME in Makefile.def.nw.
However, the variables ALLPROSEMAJORVERSION, ALLPROSEMINORVERSION,
and ALLPROSEPATCHVERSION refers to the version of ALLPROSE.
The basic structure of the complete Makefile.nw is as follows.
350⟨* 21⟩+
≡ ⊲331 427 ⊳
#------------------------------------------------------------------
#---
#--- ALLPROSE
#--- Copyright (C) Ralf Hemmecke (ralf@hemmecke.de)
#--- http://www.hemmecke.de/aldor
#---
#------------------------------------------------------------------
THISDIR=.
export PROJECTROOT=$(CURDIR)
export ALLPROSELIBPROJECTNAME=MyAlps
export ALLPROSELIBPREFIX=my
export ALLPROSELIBRARYNAME=myalps
export ALLPROSEMAJORVERSION=0
export ALLPROSEMINORVERSION=2
export ALLPROSEPATCHVERSION=5
all: alldefault
⟨necessary programs 352⟩
⟨list of files and directories 355a⟩
⟨Generate and include Makefile.def 362⟩
⟨Generate and include Makefile.inc 363⟩
⟨the default target: alldefault 356⟩
⟨testing the library 357⟩
⟨installing and uninstalling the library 361a⟩
⟨documentation 364⟩
⟨local documentation customization 393⟩
⟨cleanup 405⟩
⟨upgrading ALLPROSE 408⟩
⟨make ALLPROSE distribution file 413⟩
⟨make project distribution file 423⟩
Defines:
all, used in chunks 134, 356, 357, 361a, 379, 380, 382, 455b, 460, 461, 463, 490, 543,
and 555.
ALLPROSELIBPREFIX, used in chunk 127.
ALLPROSELIBPROJECTNAME, used in chunks 127, 366, and 420a.
ALLPROSELIBRARYNAME, used in chunks 127, 366, 408, 440, 535a, and 537b.
ALLPROSEMAJORVERSION, used in chunks 127 and 366.
ALLPROSEMINORVERSION, used in chunks 127 and 366.
ALLPROSEPATCHVERSION, used in chunks 127 and 366.
PROJECTROOT, used in chunks 360, 366, 378a, 428b, 435, 439, 443a, 455, 460, 461, 466,
468a, 470, 503, 508, 513, 546–49, and 555.
THISDIR, used in chunks 439, 460–62, and 542.
Uses alldefault 356.
We build every generated file below the current directory and never touch any
directory outside this tree.
Note that the variable CURDIR is GNU specific and refers to the absolute path
of the current directory, so one must use the GNU version of MAKE.
We define above the variable THISDIR in every subdirectory. THISDIR is the
current directory relative to PROJECTROOT.