1# Makefile for less.
2
3#### Start of system configuration section. ####
4
5srcdir = @srcdir@
6VPATH = @srcdir@
7
8CC = @CC@
9INSTALL = @INSTALL@
10INSTALL_PROGRAM = @INSTALL_PROGRAM@
11INSTALL_DATA = @INSTALL_DATA@
12
13CFLAGS = @CFLAGS@
14CFLAGS_COMPILE_ONLY = -c
15LDFLAGS = @LDFLAGS@
16O=o
17
18LIBS = @LIBS@
19
20prefix = @prefix@
21exec_prefix = @exec_prefix@
22
23# Where the installed binary goes.
24bindir = ${exec_prefix}/bin
25binprefix =
26
27# Where the help file goes.
28datadir = ${prefix}/share
29
30mandir = ${prefix}/man/man${manext}
31manext = 1
32manprefix =
33
34#### End of system configuration section. ####
35
36SHELL = /bin/sh
37
38# This rule allows us to supply the necessary -D options
39# in addition to whatever the user asks for.
40.c.o:
41	${CC} -I. ${CFLAGS_COMPILE_ONLY} ${CPPFLAGS} ${CFLAGS} $<
42
43SRC =	main.c screen.c brac.c ch.c charset.c cmdbuf.c \
44	command.c decode.c edit.c filename.c forwback.c \
45	help.c ifile.c input.c jump.c line.c linenum.c \
46	lsystem.c mark.c optfunc.c option.c opttbl.c os.c \
47	output.c position.c prompt.c search.c signal.c \
48	tags.c ttyin.c version.c
49OBJ =	main.${O} screen.${O} brac.${O} ch.${O} charset.${O} cmdbuf.${O} \
50	command.${O} decode.${O} edit.${O} filename.${O} forwback.${O} \
51	help.${O} ifile.${O} input.${O} jump.${O} line.${O} linenum.${O} \
52	lsystem.${O} mark.${O} optfunc.${O} option.${O} opttbl.${O} os.${O} \
53	output.${O} position.${O} prompt.${O} search.${O} signal.${O} \
54	tags.${O} ttyin.${O} version.${O}  @REGEX_O@
55DISTFILES = ${SRC} regexp.c regexp.h \
56	INSTALL Makefile.in README NEWS \
57	configure configure.in acconfig.h lesskey.c \
58	cmd.h funcs.h less.h lesskey.h option.h position.h \
59	install.sh defines.h.in defines.h.top mkinstalldirs \
60	less.nro lesskey.nro less.man lesskey.man less.hlp \
61	less.bg5 less.gb \
62	Makefile.dos defines.dos doscreen.c \
63	Makefile.os2 defines.os2
64
65all: less lesskey
66
67less: ${OBJ}
68	${CC} ${LDFLAGS} -o $@ ${OBJ} ${LIBS}
69
70lesskey: lesskey.${O} version.${O}
71	${CC} ${LDFLAGS} -o $@ lesskey.${O} version.${O}
72
73${OBJ}: less.h defines.h funcs.h
74
75filename.${O}: filename.c
76	${CC} -c -DHELPFILE=\"${datadir}/cless.gb\" -I. ${CPPFLAGS} ${CFLAGS} ${srcdir}/filename.c
77
78install: all less.hlp less.bg5 less.gb less.nro installdirs
79	${INSTALL_PROGRAM} less $(DESTDIR)${bindir}/${binprefix}cless
80	${INSTALL_PROGRAM} lesskey $(DESTDIR)${bindir}/${binprefix}clesskey
81	${INSTALL_DATA} ${srcdir}/less.hlp $(DESTDIR)${datadir}/cless.hlp
82	${INSTALL_DATA} ${srcdir}/less.bg5 $(DESTDIR)${datadir}/cless.bg5
83	${INSTALL_DATA} ${srcdir}/less.gb $(DESTDIR)${datadir}/cless.gb
84	${INSTALL_DATA} ${srcdir}/less.nro $(DESTDIR)${mandir}/${manprefix}cless.${manext}
85	${INSTALL_DATA} ${srcdir}/lesskey.nro $(DESTDIR)${mandir}/${manprefix}clesskey.${manext}
86
87installdirs: mkinstalldirs
88	${srcdir}/mkinstalldirs $(DESTDIR)${bindir} $(DESTDIR)${datadir} $(DESTDIR)${mandir}
89
90uninstall:
91	rm -f ${bindir}/${binprefix}cless ${bindir}/${binprefix}clesskey
92	rm -f ${datadir}/cless.hlp ${datadir}/cless.bg5 ${datadir}/cless.gb
93	rm -f ${mandir}/cless.${manext} ${mandir}/clesskey.${manext}
94
95info:
96install-info:
97dvi:
98check:
99installcheck:
100
101TAGS:
102	cd ${srcdir} && etags *.c *.h
103
104# config.status might not change defines.h
105# Don't rerun config.status if we just configured (so there's no stamp-h).
106defines.h: stamp-h
107stamp-h: defines.h.in config.status
108	test ! -f stamp-h || CONFIG_FILES= CONFIG_HEADERS=defines.h ./config.status
109	touch stamp-h
110Makefile: Makefile.in config.status
111	CONFIG_FILES=Makefile CONFIG_HEADERS= ./config.status
112config.status: ${srcdir}/configure
113	./config.status --recheck
114
115configure: configure.in
116	autoheader
117	autoconf
118
119lint:
120	lint -I. ${CPPFLAGS} ${SRC}
121newfuncs:
122	mv -f funcs.h funcs.h.old
123	awk -f mkfuncs.awk ${SRC} >funcs.h
124clean:
125	rm -f *.${O} core less lesskey
126
127mostlyclean: clean
128
129distclean: clean
130	rm -f Makefile config.status config.log config.cache defines.h stamp-h
131
132realclean: distclean
133	rm -f TAGS
134
135dist: ${DISTFILES}
136	if [ ! -d release ]; then mkdir release; fi
137	@REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/less-\1/' -e q version.c`; \
138	rm -rf release/$$REL; mkdir release/$$REL; \
139	echo "Creating release/$$REL/$$REL.tar.gz"; \
140	rm -rf $$REL; mkdir $$REL; \
141	for file in ${DISTFILES}; do \
142	  ln $$file $$REL || \
143	  { echo "cannot link, copying $$file"; cp -p $$file $$REL; }; \
144	done; \
145	tar -chf - $$REL | gzip -c >release/$$REL/$$REL.tar.gz; \
146	rm -rf $$REL
147
148tagall:
149	@REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/v\1/' -e q version.c`; \
150	echo "tagging $$REL"; \
151	$(RCS) -N$$REL: RCS/*,v
152