/[pdpsoft]/nl.nikhef.pdp.lrms-py-generic/trunk/Makefile
ViewVC logotype

Contents of /nl.nikhef.pdp.lrms-py-generic/trunk/Makefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1951 - (show annotations) (download)
Tue Sep 28 11:35:38 2010 UTC (11 years, 11 months ago) by templon
Original Path: nl.nikhef.pdp.lrms-py-generic/Makefile
File size: 17318 byte(s)
First Import
1 #
2 # @(#)$Id: Makefile,v 1.1 2009/02/26 16:04:13 templon Exp $
3 #
4
5 #######################################################
6 #
7 # General settings
8 #
9 #######################################################
10
11 .PHONY: release minorversion majorversion tagversion
12 .PHONY: pack rpm pkg prep clean dist userdoc apidoc check
13 .PHONY: checkmndfiles checkcfgtags checkdprfiles
14 .PHONY: checksrctags header help tagstable markobsolete
15
16 ####################################################################
17 # Linux specific settings
18 ####################################################################
19 #
20 #
21
22 CFG_MK = config.mk
23 include $(CFG_MK)
24 _module = $(NAME)
25 _vpfx = $(NAME)_
26 _vtag = $(subst -,_,$(subst .,_,$(_vpfx)$(VERSION)$(BRANCH)))
27 _prodname = $(NAME)-$(VERSION)$(BRANCH)
28 _prodtar = $(_prodname).src.tgz
29
30 # if INSTALLPREFIX is defined, install files go there.
31 # Otherwise use TARGPREFIX also as place to install files.
32
33 ifeq ($(INSTALLPREFIX),)
34 INSTALLPREFIX := $(TARGPREFIX)
35 endif
36
37 # some SVN commands (ckeckout, update, commit) are by default quiet unless
38 # SVN_VERB is defined
39 _svn := svn --quiet
40 ifneq ($(SVN_VERB),)
41 _svn := svn
42 endif
43
44 _os := $(shell uname -s)
45 _date := $(shell date '+%d/%m/%y %H:%M')
46
47 ###############################################################################
48 # Macros
49 ###############################################################################
50
51 # _error, message
52 # _warn, message
53 # _fatal,err msg,exit code: print "err msg" and quit with "exit code" (the if
54 # clause is just used to group the commands)
55 _fatal = if true; then echo "[FATAL] $(1)">&2; exit $(2); fi
56 _error = echo "[ERROR] $(1)">&2
57 _warn = echo "[WARN] $(1)">&2
58
59 ###############################################################################
60 # SVN
61 ###############################################################################
62 _SVN_BRNCH_SDIR := branches
63 _SVN_TAG_SDIR := tags
64 _SVN_TRNK_SDIR := trunk
65 _SVN_ROOT_PATH := $(shell svn info | grep "Repository Root" | awk '{print $NF}')
66
67 ###################################################################
68 # Create linux specific build directories
69 ###################################################################
70
71 envdir:: $(_srcrpmdir) $(_rpmdir)
72 $(_srcrpmdir):
73 _rpmbuild := $(shell [ -x /usr/bin/rpmbuild ] && echo rpmbuild || echo rpm)
74 _builddir := $(shell rpm --eval %_builddir)
75 _specdir := $(shell rpm --eval %_specdir)
76 _sourcedir := $(shell rpm --eval %_sourcedir)
77 _srcrpmdir := $(shell rpm --eval %_srcrpmdir)
78 _rpmdir := $(shell rpm --eval %_rpmdir)
79
80
81 _rpm := $(_rpmbuild) --quiet
82 ifneq ($(RPM_VERB),)
83 _rpm := $(_rpmbuild)
84 endif
85 mkdir -p $(_srcrpmdir)
86 $(_rpmdir):
87 mkdir -p $(_rpmdir)
88
89 ####################################################################
90 # Create new release/version/majorversion
91 ####################################################################
92 #
93 # These targets update the X.Y.Z components of the version in the
94 # config file and then commit the current version, tagging all
95 # files with the release number from the config file. Also
96 # wires the current date and time into the config file. Also
97 # adds an entry to the ChangeLog.
98
99 # check that the requested operation is allowed:
100 # - refuse to run if SVN passwords/credentials caching is off
101 # - forbid committing in tags/ directory
102
103 release: config.tmp
104 @echo '${_SVN_ROOT_PATH}'
105
106 minorversion: _checkop config.tmp
107 @echo '[INFO] increasing minorversion number x.<X>.x and timestamp..'
108 @perl <config.tmp >$(CFG_MK) -e 'while (<>) ' \
109 -e '{ s/^(VERSION=\d+\.)(\d+)(\..*)$$/$$1.($$2+1).".0"/e;' \
110 -e ' s/^(RELEASE=)(\d+)(.*)$$/$$1."1".$$3/e; print; }'
111 @$(MAKE) tagversion
112
113 majorversion: _checkop config.tmp
114 @echo '[INFO] increasing majorversion number <X>.x.x and timestamp..'
115 @perl <config.tmp >$(CFG_MK) -e 'while (<>)' \
116 -e '{ s/^(VERSION=)(\d+)(\..*)$$/$$1.($$2+1).".0.0"/e;' \
117 -e ' s/^(RELEASE=)(\d+)(.*)$$/$$1."1".$$3/e; print; }'
118 @$(MAKE) tagversion
119
120 config.tmp: $(CFG_MK)
121 @$(_svn) update .
122 @sed <$(CFG_MK) >config.tmp '/^DATE=/d'
123 @echo 'DATE=$(_date)' >>config.tmp
124 @cp $(CFG_MK) $(CFG_MK)~
125
126 tagversion: _checkop
127 @echo "[INFO] svn committing new release: $(VERSION)"
128 @rm -f config.tmp
129 @perl -e '$$date=`date +%Y-%m-%d`;' \
130 -e 'chomp($$date);' \
131 -e '$$login=getlogin();' \
132 -e '$$logstr="<unknown>";' \
133 -e '$$logstr=(getpwnam($$login))[6] if defined $$login;' \
134 -e 'print $$date." $$logstr\n\n"; '\
135 -e 'print "\t* Release: $(NAME)-$(VERSION)\n";' >ChangeLog.tmp
136 @if [ "$(EDITOR)" -a -x "$(EDITOR)" ]; then \
137 perl -e 'print "\t- [your comment here]"' >>ChangeLog.tmp; \
138 $(EDITOR) ChangeLog.tmp; \
139 perl -e '$$/=undef; $$text=<>; $$text =~ s/\s*\n*$$//s;' \
140 -e 'print "$$text\n\n"' < ChangeLog.tmp > ChangeLog.tmp2; \
141 mv ChangeLog.tmp2 ChangeLog.tmp; \
142 else \
143 echo "[INFO] Enter ChangeLog comment (hit CTRL+D to stop):"; \
144 perl -e '$$text=""; while(<>) { $$text .= "\t$$_" };' \
145 -e '$$text =~ s/^\s*(.+?)\s*\n*$$/$$1/s;' \
146 -e 'chomp($$text); print "\t- $$text\n\n"' >>ChangeLog.tmp; \
147 fi
148 @if [ ! -r ChangeLog ] ; then touch ChangeLog ; $(_svn) add ChangeLog ; fi
149 @cp ChangeLog.tmp /tmp/ChangeLog.tmp.$$$
150 @cat ChangeLog >>ChangeLog.tmp
151 @mv ChangeLog.tmp ChangeLog
152 @$(_svn) commit -F /tmp/ChangeLog.tmp.$$$
153 @rm -f /tmp/ChangeLog.tmp.$$$
154 @$(MAKE) _tag_dir=$(_vtag) svntag
155 @$(MAKE) _tag_dir=latest _trg_tag=$(_vtag) svnextag
156 @$(MAKE) tagstable
157
158 # auxiliary target to build an SVN tag. Input parameter is _tag_dir, which
159 # is the leaf subdirectory (intermediate subdirectories are built transparently);
160 # _co_root is the checkout root,
161 # _co_locl is the local path to the module in the checkout
162 # _co_subd is the sub-path to the module in the checkout
163 # that is:
164 # $pwd == $_co_root/$_co_locl == $_co_root/$_co_subd/$_module
165 #
166 _svn_root = $(shell svn info | sed -nr 's/^.+Root:\s+(\S+)$$/\1/ p')
167 _svn_url = $(shell svn info | sed -nr 's/^URL:\s+(\S+)$$/\1/ p')
168 _co_locl = $(shell echo $(_svn_url) | sed -nr 's%^\S+?/$(_SVN_TRNK_SDIR)/%% p')
169 _co_subd = $(shell echo $(_co_locl) | sed -nr 's%/$(_module)$$%% p')
170 # don't ask me why this doesn't work...
171 # _co_root = $(shell echo -n $(PWD) |\
172 # sed -r 's%^(.+?)/(\S*$(_SVN_TRNK_SDIR)/)?$(_co_locl)$$%\1%' | sed -r 's%/*$$%%')
173 _co_root = $(shell pwd | \
174 perl -e '$$a=<>; $$a=~s%^(\S+?)/([^/]*$(_SVN_TRNK_SDIR)/)?$(_co_locl)$$%$$1%; print $$a' |\
175 sed -r 's%/*$$%%')
176 ifneq ($(QTTR_CO_ROOT),)
177 _co_root = $(QTTR_CO_ROOT)
178 endif
179 svntag: _checkop
180 @if [ "$(DEBUG)" ]; then\
181 echo "[DEBUG] _svn_root=$(_svn_root)" >&2;\
182 echo "[DEBUG] _svn_url=$(_svn_url)" >&2;\
183 echo "[DEBUG] _co_locl=$(_co_locl)" >&2;\
184 echo "[DEBUG] _co_subd=$(_co_subd)" >&2;\
185 echo "[DEBUG] _co_root=$(_co_root)" >&2;\
186 fi
187 @[ "$(_tag_dir)" ] || $(call _fatal,no tag directory specified,1)
188 @[ "$(_co_root)" -a "$(_svn_root)" ]\
189 || $(call _fatal,checkout and/or SVN root not defined,2)
190 @echo "[INFO] svn tagging new release: $(_tag_dir)"
191 @src_path=$$PWD;\
192 dst_url=$(_svn_root)/$(_SVN_TAG_SDIR)/$(_co_subd)/$(_module);\
193 dst_path=$(_co_root)/$(_SVN_TAG_SDIR)/$(_co_subd)/$(_module);\
194 [ "$(DEBUG)" ] && echo "[DEBUG] dst_url=$$dst_url" >&2;\
195 [ "$(DEBUG)" ] && echo "[DEBUG] dst_path=$$dst_path" >&2;\
196 aux=$(_co_subd);\
197 [ "$(DEBUG)" ] && echo "[DEBUG] aux=$$aux" >&2;\
198 saux='';\
199 made_sdir=0;\
200 tag_mod_root='';\
201 while [ "$$aux" ]; do\
202 sdir=`echo -n $$aux | sed -nr 's%^([^/]+).*?$$%\1% p'`;\
203 [ $$made_sdir -eq 0 ] && tag_mod_root=$$sdir;\
204 [ "$(DEBUG)" ] && echo "[DEBUG] sdir=$$sdir" >&2;\
205 saux=$$saux/$$sdir;\
206 dst_surl=$(_svn_root)/$(_SVN_TAG_SDIR)/$$saux;\
207 [ "$(DEBUG)" ] && echo "[DEBUG] dst_surl=$$dst_surl" >&2;\
208 if (svn info $$dst_surl 2>&1 | egrep "\(Not a valid URL\)") >/dev/null; then\
209 $(_svn) mkdir $$dst_surl -m "Made directory $(_SVN_TAG_SDIR)$$saux" \
210 || $(call _fatal,$$dst_surl: cant make svn dir,3);\
211 fi;\
212 aux=`echo -n $$aux | sed -nr "s%^$$sdir/%% p"`;\
213 [ "$(DEBUG)" ] && echo "[DEBUG] aux=$$aux" >&2;\
214 made_sdir=1;\
215 done;\
216 if (svn info $$dst_url 2>&1 | egrep "\(Not a valid URL\)") >/dev/null; then\
217 [ "$(DEBUG)" ] && echo "[DEBUG] svn mkdir $$dst_url" >&2;\
218 $(_svn) mkdir $$dst_url -m "Made directory $(_SVN_TAG_SDIR)/$(_co_subd)/$(_module)"\
219 || $(call _fatal,$$dst_url: cant make svn dir,4);\
220 fi;\
221 [ "$(DEBUG)" ] && echo "[DEBUG] svn copy $$src_path $$dst_url/$(_tag_dir)" >&2;\
222 $(_svn) copy $$src_path $$dst_url/$(_tag_dir) -m "Added tag $(_module)/$(_tag_dir)" \
223 || $(call _fatal,$$src_path: cant svn copy to $$dst_url/$(_tag_dir),5);\
224 [ "$(DEBUG)" ] && echo "[DEBUG] svn co $$dst_url/$(_tag_dir) $$dst_path/$(_tag_dir)" >&2;\
225 $(_svn) checkout $$dst_url/$(_tag_dir) $$dst_path/$(_tag_dir) \
226 || $(call _fatal,$$dst_url/$(_tag_dir): cant svn check out,6)
227
228
229 svnextag: _checkop
230 @[ "$(_tag_dir)" ] || $(call _fatal,no tag directory specified,1)
231 @[ "$(_trg_tag)" ] || $(call _fatal,no target tag specified,2)
232 @echo "[INFO] svn tagging external reference: $(_tag_dir) -> $(_trg_tag)"
233 @[ "$(_co_root)" -a "$(_svn_root)" ]\
234 || $(call _fatal,checkout and/or SVN root not defined,3)
235 @src_sdir=$(_SVN_TAG_SDIR)/$(_co_subd)/$(_module)/$(_trg_tag);\
236 src_url=$(_svn_root)/$$src_sdir;\
237 src_path=$(_co_root)/$$src_sdir;\
238 dst_sdir=$(_SVN_TAG_SDIR)/$(_co_subd)/$(_module)/$(_tag_dir);\
239 dst_url=$(_svn_root)/$$dst_sdir;\
240 dst_path=$(_co_root)/$$dst_sdir;\
241 if (svn info $$dst_url 2>&1 | egrep "\(Not a valid URL\)") >/dev/null; then\
242 $(_svn) mkdir $$dst_url -m "Made directory $$dst_surl"\
243 || $(call _fatal,$$dst_surl: cant make svn dir,4);\
244 cd $(_co_root)/$(_SVN_TAG_SDIR);\
245 $(_svn) checkout $$dst_url $$dst_path \
246 || $(call _fatal,$$dst_url: cant svn check out,5);\
247 else\
248 $(_svn) checkout $$dst_url $$dst_path \
249 || $(call _fatal,$$dst_url: cant svn check out,6);\
250 $(_svn) propdel svn:externals $$dst_path \
251 || $(call _fatal,$$dst_path: cant delete svn:externals,7);\
252 rm -rf $$dst_path/*;\
253 fi;\
254 ext_rev=`svn info $$src_url | sed -nr 's%^Revision:\s+(\S+)$$%\1% p'`;\
255 [ "$$ext_rev" ] || $(call _fatal,cant determine external revision,8);\
256 $(_svn) propset svn:externals "$(_trg_tag) -r$$ext_rev $$src_url" $$dst_path \
257 || $(call _fatal,$$dst_path: cant set svn:externals,9);\
258 $(_svn) commit $$dst_path -m "Added tag $(_module)/$(_tag_dir) -> $(_trg_tag)" \
259 || $(call _fatal,$$dst_path: cant svn commit,10);\
260 $(_svn) update $$dst_path || $(call _fatal,$$dst_path: cant svn update,11)
261
262
263 tagstable: _checkop
264 @echo "[INFO] tagging 'stable' release"
265 @prompt='Do you want to tag this release as 'stable'? [no]: ';\
266 while read -p "$$prompt" ans || exit 1; do\
267 [ -z $$ans ] && ans='no';\
268 case $$ans in\
269 [Yy]|[Yy]es)\
270 _tag_dir=stable _trg_tag=$(_vtag) $(MAKE) svnextag;\
271 break;\
272 ;;\
273 [Nn]|[Nn]o)\
274 break;\
275 ;;\
276 *)\
277 prompt='Answer either "yes" or not at all: ';\
278 esac;\
279 done
280
281
282 # mark as OBSOLETE (no SVN tag is added). A message to be added to config.mk
283 # can be passed through the variable OBSOLETE_MSG
284 markobsolete: _checkop
285 @[ -w config.mk ]\
286 || $(call _fatal,config.mk: file missing or not writable,1)
287 @if [ "`sed -nr '/^\s*OBSOLETE/ p' config.mk`" ]; then\
288 $(call _fatal,already marked as OBSOLETE,2);\
289 fi
290 @echo "[INFO] marking as OBSOLETE"
291 @obs_msg='1';\
292 if [ ! -z "$$OBSOLETE_MSG" ]; then\
293 obs_msg="$$OBSOLETE_MSG";\
294 fi;\
295 echo OBSOLETE="$$obs_msg" >> config.mk
296 @$(_svn) commit -m 'Module marked as OBSOLETE'\
297 || $(call _fatal,cant svn commit,3)
298
299
300
301 ####################################################################
302 # Build distributions in tar & RPM/PKG format
303 ####################################################################
304 #
305 # These targets make distribution tar files and PKGs/RPMs from the
306 # CVS repository, using the version declared in the config file.
307 # The checked-out files in the current directory are neither
308 # modified, nor read (apart from the config file).
309 #
310 # "pack" and "rpm" built from the sources in the current directory.
311 #
312 #
313 # The prep:: target allows the including makefile to specify actions
314 # required to process the files at distribution pack time.
315 #
316 # These targets make distribution tar files and PKGs/RPMs based on the
317 # checked-out sources in the current directory. No connection to
318 # the CVS repository is required, and the files do not need to be
319 # committed. The RPM version numbers are generated from the
320 # version number specified in the config file.
321 #
322
323 pack: envdir
324 @echo packing distribution...
325 @rm -rf $(_builddir)/$(_prodname)
326 @rm -f $(_sourcedir)/$(_prodtar)
327 @mkdir -p $(_builddir)/$(_prodname)
328 @find . -path '*CVS*' -prune -o -type f -print >files.tmp
329 @tar cfT - files.tmp |(cd $(_builddir)/$(_prodname) ; tar xf -)
330 @rm -f files.tmp
331 @[ ! -f specfile.spec -a -f specfile.cin ] \
332 && cp specfile.cin \
333 $(_builddir)/$(_prodname)/specfile.spec \
334 || : ;
335 @cp cl2rpm \
336 $(_builddir)/$(_prodname)/ > /dev/null 2>&1 \
337 || : ;
338 @cd $(_builddir)/$(_prodname) ; \
339 sed <$(CFG_MK) >config.tmp \
340 -e 's%^RELEASE=\(.*\)%RELEASE=\1%' \
341 -e 's%^VERSION=.*%&$(BRANCH)%' ; \
342 mv config.tmp $(CFG_MK) ; \
343 echo 'TARFILE=$(_prodtar)' >>$(CFG_MK) ; \
344 echo 'PROD=\#' >>$(CFG_MK) ; \
345 $(MAKE) config.sh ;\
346 $(MAKE) prep ;\
347 test -n "$(_test_dep)" && rm -f $(_test_dep) ;\
348 rm -f config.sh
349 @cd $(_builddir) ; tar czf $(_sourcedir)/$(_prodtar) $(_prodname)
350
351 filelist: install
352 #
353 # ---- DO NOT MODIFY BELOW THIS LINE --- NEEDED FOR SPECFILE
354 #
355 @find $(INSTALLPREFIX) -type d | sed -e 's^$(INSTALLPREFIX)g' -e 's/^/%dir /' >> $(INSTALLPREFIX)/.filelist
356 @find $(INSTALLPREFIX) ! -type d -a ! -name ".filelist" | sed -e 's^$(INSTALLPREFIX)g' >> $(INSTALLPREFIX)/.filelist
357 @echo File found in distribution
358 @cat $(INSTALLPREFIX)/.filelist
359
360 spec: pack
361 @echo generating specfile.spec ...
362 @cd $(_builddir)/$(_prodname) ; \
363 $(MAKE) config.sh ;\
364 ./config.sh <specfile.spec >$(_specdir)/$(_prodname).spec
365 @test -f ChangeLog && \
366 cl2rpm ChangeLog \
367 >>$(_specdir)/$(_prodname).spec || true
368
369 rpm: spec
370 @echo building rpm ...
371 @cd $(_specdir) ; $(_rpmbuild) -ba $(_specdir)/$(_prodname).spec
372
373 pkg: spec
374 @echo building pkg ...
375 @cd $(_specdir) ; $(_pkgbuild) -f $(_specdir)/$(_prodname).spec
376
377 prep::
378
379 #####################################################################
380 # Create substitution script
381 ####################################################################
382 #
383 # This target reads the config file and creates a shell script which
384 # can substitute variables of the form @VAR@ for all config
385 # variables VAR. The messing around with the temporary makefile is
386 # to ensure that any recursive or external references in the
387 # variable values are evaluated by "make" in the same context as
388 # when the config file is included in the makefile.
389
390 config.sh: Makefile $(_test_dep)
391 @cp /dev/null makefile.tmp
392 @echo include $(CFG_MK) >>makefile.tmp
393 @echo dumpvars: >>makefile.tmp
394 @cat $(CFG_MK) paths.mk | \
395 perl >>makefile.tmp -e 'my $$fmt = "\t\@echo \"-e \\\"s\@%s\@\$$(%s)g\\\" \\\\\"" ; while (<>) { $$v{$$1}=1 if /^([A-Za-z0-9_]+)\s*:?=.*$$/; } map { printf "$$fmt >>config.sh\n", $$_, $$_; } sort(keys(%v)); print "\n"; '
396 @echo '#!/bin/sh' >config.sh
397 @echo 'sed \' >>config.sh
398 @$(MAKE) -f makefile.tmp dumpvars >/dev/null
399 @echo ' -e "s/\@MSG\@/ ** Generated file : do not edit **/"'>>config.sh
400 @chmod oug+x config.sh
401 @rm makefile.tmp
402
403 ####################################################################
404 # Configure
405 ####################################################################
406
407 %:: %.cin config.sh
408 @echo configuring $@ ...
409 @rm -f $@ ; cp $< $@
410 @./config.sh <$< >$@ ; chmod oug-w $@
411
412 %.$(MANSECT):: %.$(MANSECT).man.cin
413 @echo creating $@ ...
414 @./config.sh <$< >$@ ; chmod oug-w $@
415
416 configure: $(shell find . -name \*\.cin 2>/dev/null | sed -e 's/.cin//' || echo)
417
418 ####################################################################
419 # Install
420 ####################################################################
421
422 install: configure
423 @echo installing in $(INSTALLPREFIX) ...
424 #
425 # MODIFY location of installed scripts/binaries here
426 #
427
428 ifdef MYMODS
429 @mkdir -p $(INSTALLPREFIX)/$(MODSUFFIX)
430 for i in $(MYMODS) ; do \
431 install -m 0444 $$i $(INSTALLPREFIX)/$(MODSUFFIX) ; \
432 done || :
433 endif
434
435 ifdef MYDOCS
436 @mkdir -p $(INSTALLPREFIX)/$(DOCSUFFIX)
437 for i in $(MYDOCS) ; do \
438 install -m 0444 $$i $(INSTALLPREFIX)/$(DOCSUFFIX) ; \
439 done || :
440 endif
441
442 ifdef MYCONFIGS
443 @mkdir -p $(INSTALLPREFIX)/$(CONFIGSUFFIX)
444 @for i in $(MYCONFIGS) ; do \
445 install -m 0444 $$i $(INSTALLPREFIX)/$(CONFIGSUFFIX) ; \
446 done || :
447 endif
448
449 ifdef MYSCRIPTS
450 @mkdir -p $(INSTALLPREFIX)/$(SCRIPTSUFFIX)
451 @for i in $(MYSCRIPTS) ; do \
452 install -m 0555 $$i $(INSTALLPREFIX)/$(SCRIPTSUFFIX) ; \
453 done || :
454 endif
455
456 ifdef MYTESTFILES
457 @mkdir -p $(INSTALLPREFIX)/$(TESTSUFFIX)
458 @for i in $(MYTESTFILES) ; do \
459 install -m 0555 $$i $(INSTALLPREFIX)/$(TESTSUFFIX) ; \
460 done || :
461 endif
462
463 ifdef MYPLUGINS
464 @mkdir -p $(INSTALLPREFIX)/$(PLUGINSUFFIX)
465 @for i in $(MYPLUGINS) ; do \
466 install -m 0555 $$i $(INSTALLPREFIX)/$(PLUGINSUFFIX) ; \
467 done || :
468 endif
469
470 ####################################################################
471
472 clean::
473 @echo cleaning common files ...
474 @rm -f config.sh config.tex
475 @rm -f `find . -name '*~'`
476 @rm -f `find . -name '*#'`
477 @rm -f `find . -name '*.tmp'`
478 @rm -f `find . -name \*\.cin 2>/dev/null | sed -e 's/.cin//'`
479 dist: pack
480
481
482

grid.support@nikhef.nl
ViewVC Help
Powered by ViewVC 1.1.28