File: Makefile

package info (click to toggle)
mh-e 8.0.3-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 8,976 kB
  • ctags: 4,351
  • sloc: lisp: 18,183; makefile: 459; sh: 97
file content (117 lines) | stat: -rw-r--r-- 2,651 bytes parent folder | download | duplicates (2)
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
# $Id: Makefile,v 1.26 2006/05/06 16:43:46 wohler Exp $
#
# Makefile for MH-E documentation.
#
# Note: most changes to this file should also be mirrored in the Makefiles in
# $(TOP)/src and $(TOP)/contrib.
#
TOP = ..

CVSROOT = cvs.savannah.gnu.org:/cvsroot/emacs

# Developers can use CVSLOGIN=$USER CVSMETHOD=ext.

CVSLOGIN = anoncvs

CVSMETHOD = pserver

MH_E_DOC = man/mh-e.texi

MH_E_ETC_EMACS = man/ChangeLog

MH_E_ETC = ChangeLog Makefile README

MH_E_DIST = $(MH_E_DOC) $(MH_E_ETC_EMACS) $(MH_E_ETC)

MAKEINFOINFOFLAGS =

MAKEINFOHTMLFLAGS = --html --output html

TEXI2PDFFLAGS = --quiet --clean

#
# User Targets
#

all: $(MH_E_DOC) clean info html pdf

# Check out manual if necessary.
emacs: $(MH_E_DOC)

$(MH_E_DOC): 
	(files=`echo $(MH_E_DOC) $(MH_E_ETC_EMACS) \
	        | sed 's/man\//emacs\/man\//g'`; \
	cvs -d :$(CVSMETHOD):$(CVSLOGIN)@$(CVSROOT) co $$files)
	mv emacs/man .
	$(RM) -r emacs

clean:
	$(RM) -r info html mh-e.html mh-e.pdf

info: info/mh-e

info/mh-e: $(MH_E_DOC)
	[ -d info ] || mkdir info
	(cd `dirname $<` \
	&& makeinfo $(MAKEINFOINFOFLAGS) `basename $<`)

html: html/index.html mh-e.html

html/index.html: $(MH_E_DOC)
	[ -d html ] || mkdir html
	$(RM) html/*
	makeinfo $(MAKEINFOHTMLFLAGS) $<
mh-e.html: $(MH_E_DOC)
	makeinfo --html --output $@ --no-split $<

pdf: mh-e.pdf

mh-e.pdf: $(MH_E_DOC)
	texi2pdf $(TEXI2PDFFLAGS) $<
	texi2pdf $(TEXI2PDFFLAGS) $<

#
# Maintainer Targets
#

# Tag the MH-E files that are checked out.
tag:
	@if [ "$(TAG)" = "" ]; then \
	    echo "No tag found. Set TAG environment variable."; \
	    exit 1; \
	fi
	cvs tag $(TAG) $(MH_E_ETC)
	(cd man; \
	files=`echo $(MH_E_DOC) $(MH_E_ETC_EMACS) | sed 's/man\///g'`; \
	cvs tag $(TAG) $$files)

# Create a distribution. 
dist:
	@echo "Determining release..."
	@TAG=`cvs stat Makefile | awk '/Sticky Tag/{print $$3}'`; \
        if [ "$$TAG" = "(none)" ]; then \
            echo "No sticky tags here. Do a 'cvs update -rmh-e-doc-M_N'."; \
            exit 1; \
        fi; \
        RELEASE=`echo $$TAG | sed 's/_/./g'`; \
	echo "Building $$RELEASE..."; \
        rm -rf $$RELEASE; \
        mkdir $$RELEASE; \
        cp --parents $(MH_E_DIST) $$RELEASE; \
        tar -czhf $$RELEASE.tgz $$RELEASE

# Back up MH-E CVS files at Savannah.
MH_BACKUP_DIR = ../backup
MH_FILES = $(MH_E_DOC) $(MH_E_ETC_EMACS)

backup:
	@[ -d $(MH_BACKUP_DIR) ] || mkdir $(MH_BACKUP_DIR)
	@(host=`echo $(CVSROOT) | awk -F: '{print $$1}'` \
	set $(MH_FILES); \
	files=`for i; do \
		    echo -n $$i|sed -e 's/^/sources\/emacs\/emacs\//' -e 's/$$/,v /';\
		done`; \
	set $$files; \
	for file; do \
	    rsync -aziR $$host::$$file $(MH_BACKUP_DIR); \
	done;)