1 1.1 tron # Makefile for authoring less. 2 1.1 tron 3 1.1.1.2 tron EMAIL = bug-less (a] gnu.org 4 1.1.1.3 simonb HOMEPAGE = https://greenwoodsoftware.com/less 5 1.1 tron SHELL = /bin/sh 6 1.1.1.3 simonb GIT = git 7 1.1.1.3 simonb NROFF = nroff -t -man 8 1.1 tron 9 1.1 tron srcdir = . 10 1.1.1.3 simonb REL := $(shell sed -e '/char version/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q ${srcdir}/version.c) 11 1.1.1.3 simonb 12 1.1.1.3 simonb ifeq ($(USE_PYTHON),1) 13 1.1.1.3 simonb MKHELP = mkhelp.py 14 1.1.1.3 simonb else 15 1.1.1.3 simonb MKHELP = mkhelp.pl 16 1.1.1.3 simonb endif 17 1.1 tron 18 1.1 tron SRC = \ 19 1.1 tron main.c screen.c brac.c ch.c charset.c cmdbuf.c \ 20 1.1 tron command.c cvt.c decode.c edit.c filename.c forwback.c \ 21 1.1 tron help.c ifile.c input.c jump.c line.c linenum.c \ 22 1.1 tron lsystem.c mark.c optfunc.c option.c opttbl.c os.c \ 23 1.1 tron output.c pattern.c position.c prompt.c search.c signal.c \ 24 1.1.1.3 simonb tags.c ttyin.c version.c xbuf.c 25 1.1 tron DISTFILES_W = \ 26 1.1 tron defines.ds Makefile.dsb Makefile.dsg Makefile.dsu \ 27 1.1 tron defines.o2 Makefile.o2e \ 28 1.1 tron defines.o9 Makefile.o9c Makefile.o9u \ 29 1.1.1.3 simonb defines.wn Makefile.wnm Makefile.wnb Makefile.wng \ 30 1.1.1.3 simonb configure 31 1.1.1.3 simonb UNICODE_FILES = \ 32 1.1.1.3 simonb compose.uni fmt.uni ubin.uni wide.uni 33 1.1 tron DISTFILES = \ 34 1.1 tron ${SRC} regexp.c regexp.h \ 35 1.1 tron COPYING INSTALL LICENSE Makefile.in Makefile.aut NEWS README \ 36 1.1.1.3 simonb configure.ac lesskey.c lesskey_parse.c lessecho.c scrsize.c \ 37 1.1 tron charset.h cmd.h funcs.h lglob.h less.h lesskey.h option.h \ 38 1.1.1.3 simonb pckeys.h pattern.h position.h xbuf.h \ 39 1.1 tron install.sh defines.h.in mkinstalldirs \ 40 1.1 tron less.nro less.man lesskey.nro lesskey.man lessecho.nro lessecho.man \ 41 1.1 tron less.hlp \ 42 1.1.1.3 simonb mkhelp.pl \ 43 1.1.1.3 simonb mkhelp.py \ 44 1.1.1.3 simonb mkutable $(UNICODE_FILES) \ 45 1.1.1.3 simonb $(shell ${MAKE} -s -f ${srcdir}/lesstest/Makefile echo_distfiles srcdir=${srcdir}/lesstest) \ 46 1.1 tron ${DISTFILES_W} 47 1.1 tron 48 1.1.1.3 simonb 49 1.1.1.3 simonb all: help.c funcs.h $(UNICODE_FILES) ${srcdir}/configure 50 1.1 tron 51 1.1 tron release: .FORCE 52 1.1.1.3 simonb @if ${srcdir}/ready_to_release -d ${srcdir}; then :; else exit 1; fi 53 1.1 tron ${MAKE} -f Makefile.aut tagall 54 1.1 tron ${MAKE} -f Makefile.aut all 55 1.1 tron ${MAKE} -f Makefile.aut clean 56 1.1 tron ${MAKE} -f Makefile.aut dist 57 1.1 tron 58 1.1 tron .FORCE: 59 1.1 tron 60 1.1.1.3 simonb help.c: less.hlp 61 1.1 tron -mv -f ${srcdir}/help.c ${srcdir}/help.c.old 62 1.1 tron rm -rf help.c 63 1.1.1.3 simonb ${srcdir}/${MKHELP} < less.hlp > help.c 64 1.1.1.3 simonb if cmp -s help.c help.c.old; then mv -f help.c.old help.c; fi 65 1.1 tron 66 1.1.1.3 simonb ${srcdir}/configure ${srcdir}/defines.h.in: ${srcdir}/configure.ac ${srcdir}/Makefile.in 67 1.1 tron cd ${srcdir}; autoheader; autoconf 68 1.1 tron 69 1.1 tron funcs.h: ${SRC:%=${srcdir}/%} 70 1.1 tron -mv -f ${srcdir}/funcs.h ${srcdir}/funcs.h.old 71 1.1.1.3 simonb grep -h '^public [^;]*$$' ${SRC:%=${srcdir}/%} | sed 's/$$/;/' >${srcdir}/funcs.h 72 1.1 tron 73 1.1 tron lint: 74 1.1 tron lint -I. ${CPPFLAGS} ${SRC} 75 1.1 tron 76 1.1 tron clean: 77 1.1 tron rm -f Makefile config.status config.log config.cache defines.h stamp-h \ 78 1.1.1.3 simonb configure defines.h.in funcs.h help.c \ 79 1.1 tron less.nro less.man lesskey.nro lesskey.man lessecho.nro lessecho.man 80 1.1 tron 81 1.1 tron distclean: clean 82 1.1 tron realclean: clean 83 1.1 tron 84 1.1 tron REPLACE_VERSION = \ 85 1.1 tron DT=`date '+%d %h %Y'`; \ 86 1.1.1.3 simonb echo "Stuffing version number ${REL} into $@"; \ 87 1.1.1.3 simonb rm -f $@; \ 88 1.1 tron sed \ 89 1.1.1.3 simonb -e "s;@@VERSION@@;${REL};" \ 90 1.1.1.3 simonb -e "s;@@DATE@@;$$DT;" >$@ 91 1.1.1.3 simonb 92 1.1 tron ${srcdir}/less.nro: ${srcdir}/less.nro.VER ${srcdir}/version.c 93 1.1 tron ${REPLACE_VERSION} ${srcdir}/less.nro.VER 94 1.1 tron ${srcdir}/lesskey.nro: ${srcdir}/lesskey.nro.VER ${srcdir}/version.c 95 1.1 tron ${REPLACE_VERSION} ${srcdir}/lesskey.nro.VER 96 1.1 tron ${srcdir}/lessecho.nro: ${srcdir}/lessecho.nro.VER ${srcdir}/version.c 97 1.1 tron ${REPLACE_VERSION} ${srcdir}/lessecho.nro.VER 98 1.1 tron 99 1.1 tron ${srcdir}/less.man: ${srcdir}/less.nro 100 1.1 tron ${NROFF} ${srcdir}/less.nro >${srcdir}/less.man 101 1.1 tron ${srcdir}/lesskey.man: ${srcdir}/lesskey.nro 102 1.1 tron ${NROFF} ${srcdir}/lesskey.nro >${srcdir}/lesskey.man 103 1.1 tron ${srcdir}/lessecho.man: ${srcdir}/lessecho.nro 104 1.1 tron ${NROFF} ${srcdir}/lessecho.nro >${srcdir}/lessecho.man 105 1.1 tron 106 1.1.1.3 simonb compose.uni: unicode/UnicodeData.txt 107 1.1.1.3 simonb ./mkutable -f2 Mn Me -- unicode/UnicodeData.txt > $@ 108 1.1.1.3 simonb fmt.uni: unicode/UnicodeData.txt 109 1.1.1.3 simonb ./mkutable -f2 Cf -- unicode/UnicodeData.txt > $@ 110 1.1.1.3 simonb ubin.uni: unicode/UnicodeData.txt 111 1.1.1.3 simonb ./mkutable -f2 Cc Cs Co Zl Zp -- unicode/UnicodeData.txt > $@ 112 1.1.1.3 simonb wide.uni: unicode/EastAsianWidth.txt 113 1.1.1.3 simonb ./mkutable -f1 W F -- unicode/EastAsianWidth.txt > $@ 114 1.1.1.3 simonb 115 1.1.1.3 simonb unicode-check: 116 1.1.1.3 simonb rm -rf unicode-old 117 1.1.1.3 simonb mv -f unicode unicode-old 118 1.1.1.3 simonb ${MAKE} -f Makefile.aut unicode/UnicodeData.txt unicode/EastAsianWidth.txt 119 1.1.1.3 simonb @if diff -q unicode-old unicode >/dev/null; then rm -rf unicode; mv -f unicode-old unicode; echo "unicode files already up to date"; else echo "unicode files updated"; fi 120 1.1.1.3 simonb 121 1.1.1.3 simonb unicode/UnicodeData.txt: 122 1.1.1.3 simonb mkdir -p unicode 123 1.1.1.3 simonb lftp -c 'open -u "anonymous:${EMAIL}" ftp.unicode.org ; get Public/UNIDATA/UnicodeData.txt -o $@' 124 1.1.1.3 simonb touch $@ 125 1.1.1.3 simonb unicode/EastAsianWidth.txt: 126 1.1.1.3 simonb mkdir -p unicode 127 1.1.1.3 simonb lftp -c 'open -u "anonymous:${EMAIL}" ftp.unicode.org ; get Public/UNIDATA/EastAsianWidth.txt -o $@' 128 1.1.1.3 simonb touch $@ 129 1.1 tron 130 1.1 tron distfiles: ${DISTFILES} 131 1.1 tron 132 1.1.1.3 simonb echo_distfiles: 133 1.1.1.3 simonb @echo $(subst .nro,.nro.VER,${DISTFILES}) 134 1.1.1.3 simonb 135 1.1 tron dist: ${DISTFILES} 136 1.1 tron if [ ! -d ${srcdir}/release ]; then mkdir ${srcdir}/release; fi 137 1.1.1.3 simonb @LESSREL=less-${REL} && RELDIR=release/$$LESSREL && \ 138 1.1.1.3 simonb TARF=$$LESSREL-beta.tar.gz && ZIPF=$$LESSREL-beta.zip && \ 139 1.1.1.3 simonb cd ${srcdir} && \ 140 1.1.1.3 simonb rm -rf $$RELDIR && mkdir $$RELDIR && \ 141 1.1.1.3 simonb echo "Preparing $$LESSREL" && \ 142 1.1.1.3 simonb rm -rf $$LESSREL && mkdir $$LESSREL && \ 143 1.1.1.3 simonb for f in ${DISTFILES}; do mkdir -p $$(dirname $$LESSREL/$$f); cp $$f $$LESSREL/$$f; done && \ 144 1.1.1.3 simonb cd $$LESSREL && chmod -w * && chmod +w ${DISTFILES_W} lesstest && chmod +x configure && cd .. && \ 145 1.1.1.3 simonb echo "Creating $$RELDIR/$$TARF" && \ 146 1.1.1.3 simonb tar -cf - $$LESSREL | gzip -c >$$RELDIR/$$TARF && \ 147 1.1.1.3 simonb echo "Signing $$RELDIR/$$TARF" && \ 148 1.1.1.3 simonb gpg --detach-sign $$RELDIR/$$TARF && \ 149 1.1.1.3 simonb mv $$RELDIR/$$TARF.sig $$RELDIR/$$LESSREL.sig && \ 150 1.1.1.3 simonb echo "Creating $$RELDIR/$$ZIPF" && \ 151 1.1.1.3 simonb zip -rq $$RELDIR/$$ZIPF $$LESSREL && \ 152 1.1.1.3 simonb rm -rf $$LESSREL 153 1.1 tron 154 1.1 tron tagall: 155 1.1.1.3 simonb echo "tagging v${REL}"; \ 156 1.1.1.3 simonb $(GIT) tag -a -f -m "v${REL}" "v${REL}" 157 1.1.1.3 simonb 158 1.1.1.3 simonb gnu_upload: 159 1.1.1.3 simonb @if [ -z "${REL}" ]; then echo "Please set REL=nnn"; exit 1; fi; \ 160 1.1.1.3 simonb LESSREL=less-${REL} && RELDIR=release/$$LESSREL && \ 161 1.1.1.3 simonb TARF=$$LESSREL.tar.gz && \ 162 1.1.1.3 simonb if [ ! -s $$RELDIR/$$TARF ]; then echo "$$RELDIR/$$TARF does not exist"; exit 1; fi; \ 163 1.1.1.3 simonb cd $$RELDIR && \ 164 1.1.1.3 simonb gpg -b $$TARF && \ 165 1.1.1.3 simonb ( echo "version: 1.2"; echo "directory: less"; echo "filename: $$TARF" ) > $$TARF.directive && \ 166 1.1.1.3 simonb gpg --clearsign $$TARF.directive && \ 167 1.1.1.3 simonb echo "upload ready: cd $$RELDIR; ftp ftp-upload.gnu.org; cd /incoming/ftp; put $$TARF $$TARF.sig $$TARF.directive.asc" 168