-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
165 lines (130 loc) · 4.33 KB
/
Makefile
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#
# Makefile for PolyglotMan
# It's helpful to read the README-rman.txt file first.
# You should read over all parts of this file,
# down to the "you shouldn't modify" line
#
# Tom Phelps (phelps@ACM.org)
#
### you need to localize the paths on these lines
# The executable `rman' is placed in BINDIR.
# If you're also installing TkMan (available separately--see README-rman.txt),
# this must be a directory that's in your bin PATH.
# MANDIR holds the man page.
BINDIR = /opt/local/bin
#BINDIR = /usr/local/bin
#BINDIR = //C/bin
MANDIR = /usr/local/man/man1
# popular alternative
#BINDIR = /opt/local/bin
#MANDIR = /opt/local/man/man1
### if you have GNU gcc, use these definitions
CC = gcc #-mcrt=newlib
#CFLAGS = -O2 -finline-functions
CFLAGS = -finline-functions
### if you just have a standard UNIX, use these instead of GNU.
### CC must be an ANSI C compiler
#CC = cc
#CFLAGS = -O
# Solaris and SysV people may need this
#CFLAGS = -O2 -finline-functions
# For HP-UX
#CC = cc
#CFLAGS = -Aa -O
# HP-UX 10.20
#CFLAGS = -Ae -O
# DEC Alpha and Ultrix, -std1 needed to conform to ANSI C
#CC = cc
#CFLAGS = -std1 -O3 -Olimit 1000
# list of valid volume numbers and letters
# you can also set these at runtime with -V
VOLLIST = "1:2:3:4:5:6:7:8:9:o:l:n:p"
# SCO Unix has expanded set of volume letters
#VOLLIST = "1:2:3:4:5:6:7:8:9:o:l:n:p:C:X:S:L:M:F:G:A:H"
# SGI and UnixWare 2.0
#VOLLIST = "1:2:3:4:5:6:7:8:9:o:l:n:p:D"
# the printf strings used to set the HTML <TITLE> and
# to set URL hyperlinks to referenced manual pages
# can be defined at runtime. The defaults are defined below.
# The first %s parameter is the manual page name,
# the second the volume/section number.
# you can set these at runtime with -l and -r, respectively
MANTITLEPRINTF = "%s(%s)"
# relative link to pregenerated file in same directory
MANREFPRINTF = "%s.%s"
# on-the-fly through a cgi-bin script
#MANREFPRINTF = "/cgi-bin/man2html?%s&%s"
#MANREFPRINTF = "/cgi-bin/man2html?m=%s&n=%s"
# # # these lines are probably fine
CP = cp
# or you can use GNU's cp and backup files that are about to be overwritten
#CP = cp -b
RM = rm
#--------------------------------------------------
#
# you shouldn't modify anything below here
#
#--------------------------------------------------
version = 3.3
rman = rman-$(version)
srcs = rman.c
objs = rman
defs = -DVOLLIST='$(VOLLIST)' -DMANTITLEPRINTF='$(MANTITLEPRINTF)' -DMANREFPRINTF='$(MANREFPRINTF)'
libs =
aux = README-rman.txt Makefile rman.1 site/rman.html CHANGES
distrib = $(srcs) $(libs) $(aux) contrib
all: rman
@echo 'Files made in current directory.'
@echo 'You should "make install".'
@echo 'For docs, make rman.guide'
# everyone but me zaps assertions with the -DNDEBUG flag
rman: rman.c Makefile
$(CC) -DNDEBUG $(defs) -DPOLYGLOTMANVERSION=\"$(version)\" $(CFLAGS) -o rman rman.c
debug:
$(CC) $(defs) -DDEBUG -DPOLYGLOTMANVERSION=\"debug\" -g -Wall -o rman rman.c
prof:
quantify -cache-dir=/home/orodruin/h/bair/phelps/spine/rman/cache $(CC) -DNDEBUG $(defs) -DPOLYGLOTMANVERSION=\"QUANTIFY\" -g -o rman rman.c
install: rman
# $(INSTALL) -s rman $(BINDIR)
$(RM) -f $(BINDIR)/rman
$(CP) rman $(BINDIR)
$(RM) -f $(MANDIR)/rman.1
$(CP) rman.1 $(MANDIR)
# test version includes assertions
# ginstall rman $(BINDIR)/`arch`
test: rman.c Makefile
$(CC) $(defs) -DPOLYGLOTMANVERSION=\"$(version)\" $(CFLAGS) -Wall -ansi -pedantic -o rman rman.c
ls -l rman
ginstall rman $(BINDIR)
rman -v
rman --help
@echo 'Assertion checks:'
rman -f html weirdman/hp-tbl.1 > /dev/null
rman -f html weirdman/Pnews.1 > /dev/null
nroff -man rman.1 | rman -f html > /dev/null
rman.guide: rman rman.1
./rman -fAmigaGuide ./rman.1 >./rman.guide
sww:
rm -f rman $(wildcard ~/bin/{sun4,snake,alpha}/rman)
rman
clean:
rm -f $(objs)
dist:
rm -rf $(rman)*
mkdir $(rman)
$(CP) -RH $(distrib) $(rman)
# expand -4 rman.c > $(rman)/rman.c
rm -f $(rman)/contrib/*~
@echo 'gcksum crc length name' > MANIFEST
@echo '---------- ------ ----' >> MANIFEST
@cksum $(filter-out contrib, $(filter-out %~, $(distrib) $(wildcard contrib/*))) | tee -a MANIFEST
mv MANIFEST $(rman)
tar chvf $(rman).tar $(rman)
gzip -9v $(rman).tar
rm -rf $(rman)
# ANNOUNCE-rman rman.1
@echo "*** Did you remember to ci -l first?"
uu: tar
gznew $(rman).tar.Z
echo 'uudecode, gunzip (from GNU), untar' > $(rman).tar.gz.uu
uuencode $(rman).tar.gz $(rman).tar.gz >> $(rman).tar.gz.uu