File: Makefile

package info (click to toggle)
minpack 19961126-16
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 2,696 kB
  • ctags: 650
  • sloc: sh: 8,165; fortran: 2,400; ansic: 742; makefile: 163; awk: 13
file content (95 lines) | stat: -rw-r--r-- 2,753 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/usr/bin/make 

# Execute this script to extract the examples from the MINPACK
# documentation
# (/usr/share/doc/minpack-dev/minpack-documentation.txt.gz) and
# compile and run them.  It also extracts the numerical results from
# the documentation and writes them to the file "documented".  You may
# compare those results with those printed by this script.

PGM= thybrd1 thybrd thybrj1 thybrj tlmder1 tlmder tlmstr1 tlmstr \
	tlmdif1 tlmdif tchkder
CPGM=$(patsubst t%,tc%,$(PGM))	# tchybrd1 ...
SRC=$(addsuffix .f,$(PGM))	# thybrd1.f ...
CSRC=$(addsuffix .c,$(PGM))	# thybrd1.c ...

all: ctest ftest documented

ctest: ${CPGM}
	echo "---  C driver programs  ---"
	for x in ${CPGM}; do echo $$x; ./$$x; done

ftest: ${PGM} 
	echo "---  FORTRAN driver programs  ---"
	for x in ${PGM}; do echo $$x; ./$$x; done

${SRC} documented: /usr/share/doc/minpack-dev/minpack-documentation.txt.gz
	rm -f documented
	zcat $< | awk  '						\
	/DRIVER FOR [A-Z1]+ EXAMPLE/{					\
	    pgm=tolower($$4);						\
	    oname="t" pgm ".f";						\
	    $$0 = substr($$0,3);					\
	    print >oname;						\
	    do {							\
		getline; $$0 = substr($$0,3);				\
		if (!/^ +Page$$/) print >>oname;			\
	    }								\
	    while (!/LAST CARD OF SUBROUTINE FCN/);			\
	    getline; $$0 = substr($$0,3); print >>oname;		\
	    getline; $$0 = substr($$0,3); print >>oname;		\
	}								\
	/may be slightly different/||/machine dependent/{		\
	    print pgm >>"documented";					\
	    while (getline) {						\
		$$0 = substr($$0,3);					\
		if (/Documentation/) break;				\
		if (!/^ +Page$$/ && !/^ *$$/) print >>"documented";	\
	    }								\
	}'

tchkder: tchkder.f
	gfortran -o $@ $< -lminpack
thybrd: thybrd.f
	gfortran -o $@ $< -lminpack
thybrd1: thybrd1.f
	gfortran -o $@ $< -lminpack
thybrj: thybrj.f
	gfortran -o $@ $< -lminpack
thybrj1: thybrj1.f
	gfortran -o $@ $< -lminpack
tlmder: tlmder.f
	gfortran -o $@ $< -lminpack
tlmder1: tlmder1.f
	gfortran -o $@ $< -lminpack
tlmdif: tlmdif.f
	gfortran -o $@ $< -lminpack
tlmdif1: tlmdif1.f
	gfortran -o $@ $< -lminpack
tlmstr: tlmstr.f
	gfortran -o $@ $< -lminpack
tlmstr1: tlmstr1.f
	gfortran -o $@ $< -lminpack

tcchkder: tchkder.c					
	gfortran -o $@ $< -lminpack -lm
tchybrd: thybrd.c					
	gfortran -o $@ $< -lminpack -lm
tchybrd1: thybrd1.c					
	gfortran -o $@ $< -lminpack -lm
tchybrj: thybrj.c					
	gfortran -o $@ $< -lminpack -lm
tchybrj1: thybrj1.c					
	gfortran -o $@ $< -lminpack -lm
tclmder: tlmder.c					
	gfortran -o $@ $< -lminpack -lm
tclmder1: tlmder1.c					
	gfortran -o $@ $< -lminpack -lm
tclmdif: tlmdif.c
	gfortran -o $@ $< -lminpack -lm
tclmdif1: tlmdif1.c
	gfortran -o $@ $< -lminpack -lm
tclmstr: tlmstr.c
	gfortran -o $@ $< -lminpack -lm
tclmstr1: tlmstr1.c
	gfortran -o $@ $< -lminpack -lm