forked from gwsw/less
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
124 lines (95 loc) · 3.86 KB
/
Makefile
File metadata and controls
124 lines (95 loc) · 3.86 KB
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
SHELL = /bin/sh
CC ?= cc
INSTALL ?= install
INSTALL_PROGRAM ?= $(INSTALL) -m 755
INSTALL_DATA ?= $(INSTALL) -m 644
CFLAGS ?= -O2
CPPFLAGS ?=
LDFLAGS ?=
LIBS ?=
O = o
prefix ?= /usr/local
bindir ?= $(prefix)/bin
libexecdir ?= $(prefix)/libexec
sysconfdir ?= $(prefix)/etc
mandir ?= $(prefix)/man
manext ?= 1
SECURE_COMPILE ?= 0
CPPFLAGS += -DSECURE_COMPILE=$(SECURE_COMPILE)
ifeq ($(LESSTEST),1)
CPPFLAGS += -DLESSTEST=1
endif
ifeq ($(SAN),1)
CPPFLAGS += -fsanitize=address -fsanitize=undefined -fno-sanitize-recover=all -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow -fno-sanitize=null -fno-sanitize=alignment
LDFLAGS += -fsanitize=address -fsanitize=undefined
endif
REL := $(shell sed -n 's/.*char version.*"\([^"]*\)".*/\1/p' version.c)
DATE := $(shell date '+%d %h %Y')
LESS_SRC = \
main.c screen.c brac.c ch.c charset.c cmdbuf.c \
command.c cvt.c decode.c edit.c evar.c filename.c forwback.c \
help.c ifile.c input.c jump.c line.c linenum.c \
lsystem.c mark.c optfunc.c option.c opttbl.c os.c \
output.c pattern.c position.c prompt.c search.c signal.c \
tags.c ttyin.c version.c xbuf.c
OBJ = \
main.$(O) screen.$(O) brac.$(O) ch.$(O) charset.$(O) cmdbuf.$(O) \
command.$(O) cvt.$(O) decode.$(O) edit.$(O) evar.$(O) filename.$(O) forwback.$(O) \
help.$(O) ifile.$(O) input.$(O) jump.$(O) \
line.$(O) linenum.$(O) \
lsystem.$(O) mark.$(O) optfunc.$(O) option.$(O) opttbl.$(O) os.$(O) \
output.$(O) pattern.$(O) position.$(O) prompt.$(O) search.$(O) signal.$(O) \
tags.$(O) ttyin.$(O) version.$(O) xbuf.$(O)
ifneq ($(SECURE_COMPILE),1)
OBJ += lesskey_parse.$(O)
endif
all: less
.c.$(O):
$(CC) -I. -c -DBINDIR=\"$(bindir)\" -DLIBEXECDIR=\"$(libexecdir)\" -DSYSDIR=\"$(sysconfdir)\" $(CPPFLAGS) $(CFLAGS) $<
less: $(OBJ)
$(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
lesskey: lesskey.$(O) lesskey_parse.$(O) xbuf.$(O) version.$(O)
$(CC) $(LDFLAGS) -o $@ lesskey.$(O) lesskey_parse.$(O) xbuf.$(O) version.$(O) $(LIBS)
lessecho: lessecho.$(O) version.$(O)
$(CC) $(LDFLAGS) -o $@ lessecho.$(O) version.$(O) $(LIBS)
buildgen: buildgen.c
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ buildgen.c
help.c: less.hlp buildgen
./buildgen help < less.hlp > $@
funcs.h: $(LESS_SRC) buildgen
cat $(LESS_SRC) | ./buildgen funcs > $@
less.nro: less.nro.VER version.c
sed -e "s;@@VERSION@@;$(REL);" -e "s;@@DATE@@;$(DATE);" less.nro.VER > $@
lesskey.nro: lesskey.nro.VER version.c
sed -e "s;@@VERSION@@;$(REL);" -e "s;@@DATE@@;$(DATE);" lesskey.nro.VER > $@
lessecho.nro: lessecho.nro.VER version.c
sed -e "s;@@VERSION@@;$(REL);" -e "s;@@DATE@@;$(DATE);" lessecho.nro.VER > $@
charset.$(O): compose.uni ubin.uni wide.uni
$(OBJ) lesskey.$(O) lessecho.$(O): less.h funcs.h defines.h lang.h pattern.h xbuf.h
screen.$(O) ttyin.$(O): pckeys.h
install: all less.nro
mkdir -p $(DESTDIR)$(bindir) $(DESTDIR)$(libexecdir) $(DESTDIR)$(mandir)/man$(manext)
$(INSTALL_PROGRAM) less $(DESTDIR)$(bindir)/less
$(INSTALL_PROGRAM) less-osc8-open.sh $(DESTDIR)$(libexecdir)/less-osc8-open
$(INSTALL_DATA) less.nro $(DESTDIR)$(mandir)/man$(manext)/less.$(manext)
uninstall:
rm -f $(DESTDIR)$(bindir)/less
rm -f $(DESTDIR)$(bindir)/lesskey
rm -f $(DESTDIR)$(libexecdir)/lessecho
rm -f $(DESTDIR)$(libexecdir)/less-osc8-open
rm -f $(DESTDIR)$(mandir)/man$(manext)/less.$(manext)
rm -f $(DESTDIR)$(mandir)/man$(manext)/lesskey.$(manext)
rm -f $(DESTDIR)$(mandir)/man$(manext)/lessecho.$(manext)
check:
if [ -x ./less ] && ./less -V | grep -q LESSTEST; then :; else $(MAKE) clean; fi
$(MAKE) LESSTEST=1
objdir=$$(pwd); rflags=""; if [ -z "$(VERBOSE)" ]; then rflags=-e; fi; cd lesstest && $(MAKE) && ./runtest $$rflags -l "$$objdir/less" lt
TAGS:
etags *.c *.h
clean:
rm -f *.$(O) core less lesskey lessecho buildgen help.c funcs.h less.nro lesskey.nro lessecho.nro
cd lesstest && $(MAKE) clean
mostlyclean: clean
distclean: clean
realclean: clean
.PHONY: all install uninstall check TAGS clean mostlyclean distclean realclean