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-*- (gpm/main)
#
# Copyright 1994,1997 rubini@linux.it
# Copyright 1997 dickey@clark.net
# Copyright (C) 1998 Ian Zimmerman <itz@rahul.net>
# Copyright (C) 2001 Nico Schottelius <nico@schottelius.org>
#
SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = .
include Makefile.include
# allow CFLAGS to be overriden from make command line
# ideally one would never have to write this rule again, but the GNU
# makefile standards are at cross-purposes: CFLAGS is reserved for
# user-overridable flags, but it's also all the implicit rule looks at.
# missing ?
SUBDIRS = src doc contrib
### simple, but effective rules
all: do-all
dep:
touch src/$(DEPFILE) # to prevent unecessary warnings
make -C src dep
check: all
uninstall: do-uninstall
clean: do-clean
Makefile: $(srcdir)/Makefile.in config.status
./config.status
config.status: $(srcdir)/configure
if [ -f config.status ]; then $(SHELL) config.status --recheck; \
else ./configure; fi
### INSTALL
install: check installdirs do-install
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) $(STRIP)' install
installdirs:
$(MKDIR) $(libdir) $(bindir) $(sbindir) $(includedir) $(sysconfdir); \
if test "x@ELISP@" != "x" ; then \
$(MKDIR) $(lispdir) ; \
fi
### GENERIC
# do-all goes to all subdirectories and does all
do-%: dep
@target=`echo $@ | $(SED) -e 's/^do-//'`; \
for i in $(SUBDIRS) ; do \
if test -f ./$$i/Makefile ; then \
$(MAKE) -C ./$$i $${target} || exit 1 ;\
else \
true; \
fi; \
done
# Configure & unconfigure
# Maintainer portion, use at your own risk
barf:
@echo 'This command is intended for maintainers to use; it'
@echo 'deletes files that may need special tools to rebuild.'
@echo 'If you want to continue, please press return.'
@echo -n "Hit Ctrl+C to abort."
@read somevar
# who / what does need tags
TAGS: $(SRCS) $(HDRS) src/prog/gpm-root.y do-TAGS
cd $(srcdir) && $(ETAGS) -o TAGS $(SRCS) $(HDRS) src/prog/gpm-root.y
### RELEASE STUFF
TARS =../gpm-$(release).tar.gz
TARS +=../gpm-$(release).tar.bz2 ../gpm-$(release).tar.lzma
D_HOST=home.schottelius.org
D_BASE=www/org/schottelius/unix/www/gpm
D_DIR=$(D_BASE)/archives/
D_SOURCE=$(D_BASE)/browse_source/
M_HOST=arcana.linux.it
M_DIR=gpm/
tars: $(TARS)
# configure headers, produce new configure script
distconf: configure.in aclocal.m4
autoheader && autoconf
../gpm-$(release).tar: $(srcdir)
# no exclude possible of .git with pax it seems
#pax -w -x ustar -s '/^\./gpm-$(release)/' -w . -f $@
pax -w -x ustar -s ';^;gpm-$(release)/;' -f $@ -w *
../gpm-$(release).tar.gz: ../gpm-$(release).tar
gzip -9 -c $^ > $@
../gpm-$(release).tar.bz2: ../gpm-$(release).tar
bzip2 -9 -c $^ > $@
../gpm-$(release).tar.lzma: ../gpm-$(release).tar
lzma -9 -c $^ > $@
# 3. Put package together into .tar.gz and .tar.bz2
#dist: distclean distconf gpm-$(release).tar.bz2 gpm-$(release).tar.gz
dist: disttest distclean distconf nicotest $(TARS)
chmod 0644 $(TARS)
scp $(TARS) $(D_HOST):$(D_DIR)
scp $(TARS) $(M_HOST):$(M_DIR)
ssh "$(D_HOST)" "tar xvfz $(D_DIR)/gpm-$(release).tar.gz -C $(D_SOURCE)"
ssh "$(D_HOST)" "find \"$(D_SOURCE)/\" -type f -exec chmod 0644 {} \\;"
ssh "$(D_HOST)" "find \"$(D_SOURCE)/\" -type d -exec chmod 0755 {} \\;"
### TEST: on nicos machine: not to be used anywhere else currently
# create / update configure, delete other parts from earlier build
disttest: distconf clean
./configure
make all
TESTBUILDDIR=~/temp/gpm-build-test
nicotest: $(TARS)
rm -rf $(TESTBUILDDIR)
mkdir -p $(TESTBUILDDIR)
cp $(TARS) $(TESTBUILDDIR)
cd $(TESTBUILDDIR); tar xvfj gpm-$(release).tar.bz2;
cd $(TESTBUILDDIR)/gpm-$(release); ./configure && make && ./src/gpm -v
### CLEANUP
distclean: clean do-clean do-distclean
rm -f config.log config.status config.cache Makefile Makefile.include
rm -rf autom4te.cache
rm -rf gpm-$(release) gpm-$(release).tar.bz2 gpm-$(release).tar.gz
rm -f src/$(DEPFILE)
allclean: do-allclean distclean
rm -f configure
|