aboutsummaryrefslogtreecommitdiff
path: root/Makefile.aut
blob: b6f2101cf10f75cde8ffca603d8b2b4d0dd880a1 (plain) (blame)
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
# Makefile for authoring less.

EMAIL = bug-less@gnu.org
HOMEPAGE = https://greenwoodsoftware.com/less
SHELL = /bin/sh
GIT = git
NROFF = nroff -t -man

srcdir = .

ifeq ($(USE_PYTHON),1)
	MKHELP = mkhelp.py
	MKFUNCS = mkfuncs.py
else
	MKHELP = mkhelp.pl
	MKFUNCS = mkfuncs.pl
endif

SRC = \
	main.c screen.c brac.c ch.c charset.c cmdbuf.c \
	command.c cvt.c decode.c edit.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
DISTFILES_W = \
	defines.ds  Makefile.dsb Makefile.dsg Makefile.dsu \
	defines.o2  Makefile.o2e \
	defines.o9  Makefile.o9c Makefile.o9u \
	defines.wn  Makefile.wnm Makefile.wnb Makefile.wng \
	configure 
UNICODE_FILES = \
	compose.uni fmt.uni ubin.uni wide.uni
DISTFILES = \
	${SRC} regexp.c regexp.h \
	COPYING INSTALL LICENSE Makefile.in Makefile.aut NEWS README \
	configure.ac lesskey.c lessecho.c scrsize.c \
	charset.h cmd.h funcs.h lglob.h less.h lesskey.h option.h \
	pckeys.h pattern.h position.h \
	install.sh defines.h.in mkinstalldirs \
	less.nro less.man lesskey.nro lesskey.man lessecho.nro lessecho.man \
	less.hlp \
	mkfuncs.pl mkhelp.pl \
	mkfuncs.py mkhelp.py \
	mkutable $(UNICODE_FILES) \
	${DISTFILES_W}

all: help.c funcs.h $(UNICODE_FILES) ${srcdir}/configure 

release: .FORCE
	${MAKE} -f Makefile.aut tagall 
	${MAKE} -f Makefile.aut all 
	${MAKE} -f Makefile.aut clean 
	${MAKE} -f Makefile.aut dist

.FORCE:

help.c: less.hlp 
	-mv -f ${srcdir}/help.c ${srcdir}/help.c.old
	rm -rf help.c
	${srcdir}/${MKHELP} < less.hlp > help.c
	if cmp -s help.c help.c.old; then mv -f help.c.old help.c; fi

${srcdir}/configure ${srcdir}/defines.h.in: ${srcdir}/configure.ac ${srcdir}/Makefile.in
	cd ${srcdir}; autoheader; autoconf

funcs.h: ${SRC:%=${srcdir}/%}
	-mv -f ${srcdir}/funcs.h ${srcdir}/funcs.h.old
	${srcdir}/${MKFUNCS} ${SRC:%=${srcdir}/%} >${srcdir}/funcs.h
	if cmp -s funcs.h funcs.h.old; then mv -f funcs.h.old funcs.h; fi

lint:
	lint -I. ${CPPFLAGS} ${SRC}

clean: 
	rm -f Makefile config.status config.log config.cache defines.h stamp-h \
		configure defines.h.in funcs.h help.c \
		README NEWS \
		less.nro less.man lesskey.nro lesskey.man lessecho.nro lessecho.man 

distclean: clean
realclean: clean

REPLACE_VERSION = \
	@REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q ${srcdir}/version.c`; \
	DT=`date '+%d %h %Y'`; \
	echo "Stuffing version number $$REL into $@"; \
	rm -f $@; \
	sed \
		-e "s;@@VERSION@@;$$REL;" \
		-e "s;@@DATE@@;$$DT;" \
		-e "s;@@HOMEPAGE@@;${HOMEPAGE};" >$@

${srcdir}/README: ${srcdir}/README.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/README.VER
${srcdir}/NEWS: ${srcdir}/NEWS.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/NEWS.VER
${srcdir}/less.nro: ${srcdir}/less.nro.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/less.nro.VER
${srcdir}/lesskey.nro: ${srcdir}/lesskey.nro.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/lesskey.nro.VER
${srcdir}/lessecho.nro: ${srcdir}/lessecho.nro.VER ${srcdir}/version.c
	${REPLACE_VERSION} ${srcdir}/lessecho.nro.VER

${srcdir}/less.man: ${srcdir}/less.nro
	${NROFF} ${srcdir}/less.nro >${srcdir}/less.man
${srcdir}/lesskey.man: ${srcdir}/lesskey.nro
	${NROFF} ${srcdir}/lesskey.nro >${srcdir}/lesskey.man
${srcdir}/lessecho.man: ${srcdir}/lessecho.nro
	${NROFF} ${srcdir}/lessecho.nro >${srcdir}/lessecho.man

compose.uni: unicode/UnicodeData.txt
	./mkutable -f2 Mn Me -- unicode/UnicodeData.txt > $@
fmt.uni: unicode/UnicodeData.txt
	./mkutable -f2 Cf -- unicode/UnicodeData.txt > $@
ubin.uni: unicode/UnicodeData.txt
	./mkutable -f2 Cc Cs Co Zl Zp -- unicode/UnicodeData.txt > $@
wide.uni: unicode/EastAsianWidth.txt
	./mkutable -f1 W F -- unicode/EastAsianWidth.txt > $@

unicode/UnicodeData.txt:
	mkdir -p unicode
	curl -s -u 'anonymous:${EMAIL}' -o $@ ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt
unicode/EastAsianWidth.txt:
	mkdir -p unicode
	curl -s -u 'anonymous:${EMAIL}' -o $@ ftp://ftp.unicode.org/Public/UNIDATA/EastAsianWidth.txt

distfiles: ${DISTFILES}

dist: ${DISTFILES}
	if [ ! -d ${srcdir}/release ]; then mkdir ${srcdir}/release; fi
	@cd ${srcdir}; \
	REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/less-\1/' -e q version.c`; \
	rm -rf release/$$REL; mkdir release/$$REL; \
	echo "Preparing $$REL"; \
	rm -rf $$REL; mkdir $$REL; \
	for file in ${DISTFILES}; do \
	  ./add_copyright $$file $$REL; \
	done; \
	cd $$REL; chmod -w *; chmod +w ${DISTFILES_W}; chmod +x configure; cd ..; \
	echo "Creating release/$$REL/$$REL.tar.gz"; \
	tar -cf - $$REL | gzip -c >release/$$REL/$$REL.tar.gz; \
	echo "Signing release/$$REL/$$REL.tar.gz"; \
	gpg --detach-sign release/$$REL/$$REL.tar.gz; \
	mv release/$$REL/$$REL.tar.gz.sig release/$$REL/$$REL.sig; \
	echo "Creating release/$$REL/$$REL.zip"; \
	zip -rq release/$$REL/$$REL.zip $$REL; \
	rm -rf $$REL

tagall:
	@REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/v\1/' -e q ${srcdir}/version.c`; \
	echo "tagging $$REL"; \
	$(GIT) tag -a -f -m "$$REL" "$$REL"