8816902220b3613216b83c69aa2e4c3cc671c245
[platform/upstream/less.git] / Makefile.aut
1 # Makefile for authoring less.
2
3 EMAIL = bug-less@gnu.org
4 HOMEPAGE = http://www.greenwoodsoftware.com/less
5 SHELL = /bin/sh
6 GIT = git
7 NROFF = nroff -man
8
9 srcdir = .
10
11 SRC = \
12         main.c screen.c brac.c ch.c charset.c cmdbuf.c \
13         command.c cvt.c decode.c edit.c filename.c forwback.c \
14         help.c ifile.c input.c jump.c line.c linenum.c \
15         lsystem.c mark.c optfunc.c option.c opttbl.c os.c \
16         output.c pattern.c position.c prompt.c search.c signal.c \
17         tags.c ttyin.c version.c
18 DISTFILES_W = \
19         defines.ds  Makefile.dsb Makefile.dsg Makefile.dsu \
20         defines.o2  Makefile.o2e \
21         defines.o9  Makefile.o9c Makefile.o9u \
22         defines.wn  Makefile.wnm Makefile.wnb \
23         configure 
24 UNICODE_FILES = \
25         compose.uni fmt.uni ubin.uni wide.uni
26 DISTFILES = \
27         ${SRC} regexp.c regexp.h \
28         COPYING INSTALL LICENSE Makefile.in Makefile.aut NEWS README \
29         configure.ac lesskey.c lessecho.c scrsize.c \
30         charset.h cmd.h funcs.h lglob.h less.h lesskey.h option.h \
31         pckeys.h pattern.h position.h \
32         install.sh defines.h.in mkinstalldirs \
33         less.nro less.man lesskey.nro lesskey.man lessecho.nro lessecho.man \
34         less.hlp \
35         mkfuncs.pl mkhelp.pl \
36         mkutable $(UNICODE_FILES) \
37         ${DISTFILES_W}
38
39 all: help.c funcs.h $(UNICODE_FILES) ${srcdir}/configure 
40
41 release: .FORCE
42         ${MAKE} -f Makefile.aut tagall 
43         ${MAKE} -f Makefile.aut all 
44         ${MAKE} -f Makefile.aut clean 
45         ${MAKE} -f Makefile.aut dist
46
47 .FORCE:
48
49 help.c: less.hlp 
50         -mv -f ${srcdir}/help.c ${srcdir}/help.c.old
51         rm -rf help.c
52         ${srcdir}/mkhelp.pl < less.hlp > help.c
53         if cmp -s help.c help.c.old; then mv -f help.c.old help.c; fi
54
55 ${srcdir}/configure: ${srcdir}/configure.ac \
56                 ${srcdir}/Makefile.in
57         cd ${srcdir}; autoheader; autoconf
58
59 funcs.h: ${SRC:%=${srcdir}/%}
60         -mv -f ${srcdir}/funcs.h ${srcdir}/funcs.h.old
61         perl ${srcdir}/mkfuncs.pl ${SRC:%=${srcdir}/%} >${srcdir}/funcs.h
62         if cmp -s funcs.h funcs.h.old; then mv -f funcs.h.old funcs.h; fi
63
64 lint:
65         lint -I. ${CPPFLAGS} ${SRC}
66
67 clean: 
68         rm -f Makefile config.status config.log config.cache defines.h stamp-h \
69                 README NEWS \
70                 less.nro less.man lesskey.nro lesskey.man lessecho.nro lessecho.man 
71
72 distclean: clean
73 realclean: clean
74
75 REPLACE_VERSION = \
76         @REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q ${srcdir}/version.c`; \
77         DT=`date '+%d %h %Y'`; \
78         echo "Stuffing version number $$REL into $@"; \
79         rm -f $@; \
80         sed \
81                 -e "s;@@VERSION@@;$$REL;" \
82                 -e "s;@@DATE@@;$$DT;" \
83                 -e "s;@@EMAIL@@;${EMAIL};" \
84                 -e "s;@@HOMEPAGE@@;${HOMEPAGE};" >$@
85
86 ${srcdir}/README: ${srcdir}/README.VER ${srcdir}/version.c
87         ${REPLACE_VERSION} ${srcdir}/README.VER
88 ${srcdir}/NEWS: ${srcdir}/NEWS.VER ${srcdir}/version.c
89         ${REPLACE_VERSION} ${srcdir}/NEWS.VER
90 ${srcdir}/less.nro: ${srcdir}/less.nro.VER ${srcdir}/version.c
91         ${REPLACE_VERSION} ${srcdir}/less.nro.VER
92 ${srcdir}/lesskey.nro: ${srcdir}/lesskey.nro.VER ${srcdir}/version.c
93         ${REPLACE_VERSION} ${srcdir}/lesskey.nro.VER
94 ${srcdir}/lessecho.nro: ${srcdir}/lessecho.nro.VER ${srcdir}/version.c
95         ${REPLACE_VERSION} ${srcdir}/lessecho.nro.VER
96 ${srcdir}/less.hlp: ${srcdir}/less.hlp.VER ${srcdir}/version.c
97         ${REPLACE_VERSION} ${srcdir}/less.hlp.VER
98
99 ${srcdir}/less.man: ${srcdir}/less.nro
100         ${NROFF} ${srcdir}/less.nro >${srcdir}/less.man
101 ${srcdir}/lesskey.man: ${srcdir}/lesskey.nro
102         ${NROFF} ${srcdir}/lesskey.nro >${srcdir}/lesskey.man
103 ${srcdir}/lessecho.man: ${srcdir}/lessecho.nro
104         ${NROFF} ${srcdir}/lessecho.nro >${srcdir}/lessecho.man
105
106 compose.uni: unicode/UnicodeData.txt
107         ./mkutable -f2 Mn Me -- unicode/UnicodeData.txt > $@
108 fmt.uni: unicode/UnicodeData.txt
109         ./mkutable -f2 Cf -- unicode/UnicodeData.txt > $@
110 ubin.uni: unicode/UnicodeData.txt
111         ./mkutable -f2 Cc Cs Co Zl Zp -- unicode/UnicodeData.txt > $@
112 wide.uni: unicode/EastAsianWidth.txt
113         ./mkutable -f1 W F -- unicode/EastAsianWidth.txt > $@
114
115 distfiles: ${DISTFILES}
116
117 dist: ${DISTFILES}
118         if [ ! -d ${srcdir}/release ]; then mkdir ${srcdir}/release; fi
119         @cd ${srcdir}; \
120         REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/less-\1/' -e q version.c`; \
121         rm -rf release/$$REL; mkdir release/$$REL; \
122         echo "Preparing $$REL"; \
123         rm -rf $$REL; mkdir $$REL; \
124         for file in ${DISTFILES}; do \
125           ./add_copyright $$file $$REL; \
126         done; \
127         cd $$REL; chmod -w *; chmod +w ${DISTFILES_W}; chmod +x configure; cd ..; \
128         echo "Creating release/$$REL/$$REL.tar.gz"; \
129         tar -cf - $$REL | gzip -c >release/$$REL/$$REL.tar.gz; \
130         echo "Signing release/$$REL/$$REL.tar.gz"; \
131         gpg --detach-sign release/$$REL/$$REL.tar.gz; \
132         mv release/$$REL/$$REL.tar.gz.sig release/$$REL/$$REL.sig; \
133         echo "Creating release/$$REL/$$REL.zip"; \
134         zip -rq release/$$REL/$$REL.zip $$REL; \
135         rm -rf $$REL
136
137 tagall:
138         @REL=`sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/v\1/' -e q ${srcdir}/version.c`; \
139         echo "tagging $$REL"; \
140         $(GIT) tag -f "$$REL"