Home | History | Annotate | Line # | Download | only in dist
      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