1###===================================================================== 2### Makefile for files in /u/sy/beebe/src/ndiff 3### 4### Copyright (C) 2000 Nelson H. F. Beebe 5### See the file ndiff.sin for a full copyright notice. 6### 7### Current target list: 8### all 9### $(PROGNAME).jar 10### $(PROGNAME).tar 11### $(PROGNAME).zip 12### $(PROGNAME).zoo 13### check 14### check-ndiff 15### clean 16### cleandist 17### cleandocs 18### clobber 19### config.hin 20### configure 21### dist 22### distclean 23### docs 24### dust 25### dw 26### html 27### install 28### install-exe 29### install-ftp 30### install-man 31### install-show 32### install-shrlib 33### maintainer-check-regress 34### maintainer-checknr 35### maintainer-clean 36### Makefile 37### maketab 38### mostlyclean 39### pdf 40### ps 41### spell 42### tgrind 43### txt 44### uninstall 45### uninstall-exe 46### uninstall-man 47### uninstall-shrlib 48### 49### [10-Dec-2000] -- update for version 2.00 50### [28-Jan-2000] -- original version 1.00 51###===================================================================== 52### Program definitions 53 54PROGNAME = ndiff 55PROGRAMS = $(PROGNAME) 56VERSION = @VERSION@ 57DATE = @DATE@ 58 59###===================================================================== 60### Installation locations 61 62prefix = @prefix@ 63bindir = $(prefix)/bin 64catdir = $(prefix)/man/cat$(manext) 65mandir = $(prefix)/man/man$(manext) 66manext = 1 67shrlibdir = ${DESTDIR}/usr/local/share/ndiff 68 69 70FTPDIR = /u/ftp/pub/misc 71 72###===================================================================== 73### Macro definitions 74 75AUTOCONF = @AUTOCONF@ 76 77AUTOHEADER = @AUTOHEADER@ 78 79AWK = @AWK@ 80 81CAT = @CAT@ 82 83CC = @CC@ 84 85CHECKNR = @CHECKNR@ 86 87CHECKOKAY = @CHECKOKAY@ 88 89CHECKSUM = @CHECKSUM@ 90 91CHMOD = @CHMOD@ 92 93CMP = @CMP@ 94 95CP = @CP@ -p 96 97DEROFF = @DEROFF@ 98 99DIFF = @DIFF@ 100 101DISTILL = @DISTILL@ 102 103DITROFF = @DITROFF@ 104 105### dw is available at: 106### ftp://ftp.math.utah.edu/pub/misc/dw.jar 107### ftp://ftp.math.utah.edu/pub/misc/dw.shar 108### ftp://ftp.math.utah.edu/pub/misc/dw.tar.gz 109### ftp://ftp.math.utah.edu/pub/misc/dw.zip 110### ftp://ftp.math.utah.edu/pub/misc/dw.zoo 111### 112### http://www.math.utah.edu/pub/misc/dw.jar 113### http://www.math.utah.edu/pub/misc/dw.shar 114### http://www.math.utah.edu/pub/misc/dw.tar.gz 115### http://www.math.utah.edu/pub/misc/dw.zip 116### http://www.math.utah.edu/pub/misc/dw.zoo 117DW = @DW@ 118 119ETAGS = @ETAGS@ 120 121GREP = @GREP@ 122 123GZIP = @GZIP@ 124 125ISPELL = @ISPELL@ 126 127JAR = @JAR@ 128 129LN = @LN@ 130 131LS = @LS@ 132 133### man2html is available at 134### ftp://ftp.math.utah.edu/pub/sgml/man2html-x.yy.* 135### http://www.math.utah.edu/pub/sgml/index.html#man2html 136MAN2HTML = @MAN2HTML@ 137 138MAN2HTMLFLAGS = -grammar-level 3.2 139 140MKDIR = @MKDIR@ -p 141 142MV = @MV@ 143 144NROFF = @NROFF@ 145 146RM = @RM@ -f 147 148SED = @SED@ 149 150SEDCMD = $(SED) -e 's%AWK=.*$$%AWK=$(AWK)%' \ 151 -e 's%LIBDIR=/.*$$%LIBDIR=$(shrlibdir)%' \ 152 -e 's%@LIBDIR@%$(shrlibdir)%g' \ 153 -e 's%@BINDIR@%$(bindir)%g' \ 154 -e 's%@VERSIONREGEXP@%$(VERSION)%g' \ 155 -e 's%@DATE@%$(DATE)%g' \ 156 -e 's%^\#! /bin/sh%\#! $(SHELL)%' 157 158SHELL = @SH@ 159 160SORT = @SORT@ 161 162SPELL = @SPELL@ 163 164TAGSFILES = awklib.c awklib.h ndiff.c ndiff.h 165 166TAR = @TAR@ 167 168### The enhanced tgrind utility is available at: 169### 170### ftp://ftp.math.utah.edu/pub/misc/tgrind-3.00.jar 171### ftp://ftp.math.utah.edu/pub/misc/tgrind-3.00.tar.gz 172### ftp://ftp.math.utah.edu/pub/misc/tgrind-3.00.zip 173### ftp://ftp.math.utah.edu/pub/misc/tgrind-3.00.zoo 174### 175### http://www.math.utah.edu/pub/misc/tgrind-3.00.jar 176### http://www.math.utah.edu/pub/misc/tgrind-3.00.tar.gz 177### http://www.math.utah.edu/pub/misc/tgrind-3.00.zip 178### http://www.math.utah.edu/pub/misc/tgrind-3.00.zoo 179TGRIND = @TGRIND@ 180 181UNZIP = @UNZIP@ 182 183ZIP = @ZIP@ 184 185ZOO = @ZOO@ 186 187###===================================================================== 188### Compiler flags: 189 190CFLAGS = @CFLAGS@ $(INCLUDES) $(DEFINES) $(OPT) $(XCFLAGS) 191 192DEFINES = -DVERSION='"@VERSION@"' -DDATE='"@DATE@"' $(XDEFINES) 193 194INCLUDES ?= -I. $(XINCLUDES) 195 196LDFLAGS ?= @LDFLAGS@ $(XLDFLAGS) 197 198LIBS = @LIBS@ $(XLIBS) 199 200OPT = -O $(XOPT) 201 202TGRINDFLAGS = -i 2 -l awk -fn Bookman $(XTGRINDFLAGS) 203 204###===================================================================== 205### Extra values to be appended to the X-less names at make time: 206 207XCFLAGS = 208 209XDEFINES = 210 211XINCLUDES = 212 213XLDFLAGS = 214 215XLIBS = 216 217XOPT = 218 219XTGRINDFLAGS = 220 221###===================================================================== 222### Source files: 223 224AWKFILES = $(PROGNAME).awk 225 226AWKTESTFILES = awktest.awk awktest.c awktest.dat 227 228CHECKFILES = test/check001.in1 test/check001.in2 test/check001.opt \ 229 test/check002.in1 test/check002.in2 test/check002.opt \ 230 test/check003.in1 test/check003.in2 test/check003.opt \ 231 test/check004.in1 test/check004.in2 test/check004.opt \ 232 test/check005.in1 test/check005.in2 test/check005.opt \ 233 test/check006.in1 test/check006.in2 test/check006.opt \ 234 test/check007.in1 test/check007.in2 test/check007.opt \ 235 test/check008.in1 test/check008.in2 test/check008.opt \ 236 test/check009.in1 test/check009.in2 test/check009.opt \ 237 test/check010.in1 test/check010.in2 test/check010.opt \ 238 test/check011.in1 test/check011.in2 test/check011.opt \ 239 test/check012.in1 test/check012.in2 test/check012.opt \ 240 test/check013.in1 test/check013.in2 test/check013.opt \ 241 test/check014.in1 test/check014.in2 test/check014.opt \ 242 test/check015.in1 test/check015.in2 test/check015.opt \ 243 test/check016.in1 test/check016.in2 test/check016.opt \ 244 test/check017.in1 test/check017.in2 test/check017.opt \ 245 test/check018.in1 test/check018.in2 test/check018.opt \ 246 test/check019.in1 test/check019.in2 test/check019.opt \ 247 test/check020.in1 test/check020.in2 test/check020.opt \ 248 test/check021.in1 test/check021.in2 test/check021.opt \ 249 test/check022.in1 test/check022.in2 test/check022.opt \ 250 test/check023.in1 test/check023.in2 test/check023.opt \ 251 test/check024.in1 test/check024.in2 test/check024.opt \ 252 test/check025.in1 test/check025.in2 test/check025.opt \ 253 test/check026.in1 test/check026.in2 test/check026.opt \ 254 test/okay-dbl/check001.err test/okay-dbl/check001.out \ 255 test/okay-dbl/check002.err test/okay-dbl/check002.out \ 256 test/okay-dbl/check003.err test/okay-dbl/check003.out \ 257 test/okay-dbl/check004.err test/okay-dbl/check004.out \ 258 test/okay-dbl/check005.err test/okay-dbl/check005.out \ 259 test/okay-dbl/check006.err test/okay-dbl/check006.out \ 260 test/okay-dbl/check007.err test/okay-dbl/check007.out \ 261 test/okay-dbl/check008.err test/okay-dbl/check008.out \ 262 test/okay-dbl/check009.err test/okay-dbl/check009.out \ 263 test/okay-dbl/check010.err test/okay-dbl/check010.out \ 264 test/okay-dbl/check011.err test/okay-dbl/check011.out \ 265 test/okay-dbl/check012.err test/okay-dbl/check012.out \ 266 test/okay-dbl/check013.err test/okay-dbl/check013.out \ 267 test/okay-dbl/check014.err test/okay-dbl/check014.out \ 268 test/okay-dbl/check015.err test/okay-dbl/check015.out \ 269 test/okay-dbl/check016.err test/okay-dbl/check016.out \ 270 test/okay-dbl/check017.err test/okay-dbl/check017.out \ 271 test/okay-dbl/check018.err test/okay-dbl/check018.out \ 272 test/okay-dbl/check019.err test/okay-dbl/check019.out \ 273 test/okay-dbl/check020.err test/okay-dbl/check020.out \ 274 test/okay-dbl/check021.err test/okay-dbl/check021.out \ 275 test/okay-dbl/check022.err test/okay-dbl/check022.out \ 276 test/okay-dbl/check023.err test/okay-dbl/check023.out \ 277 test/okay-dbl/check024.err test/okay-dbl/check024.out \ 278 test/okay-dbl/check025.err test/okay-dbl/check025.out \ 279 test/okay-dbl/check026.err test/okay-dbl/check026.out \ 280 test/okay-gmp/check001.err test/okay-gmp/check001.out \ 281 test/okay-gmp/check002.err test/okay-gmp/check002.out \ 282 test/okay-gmp/check003.err test/okay-gmp/check003.out \ 283 test/okay-gmp/check004.err test/okay-gmp/check004.out \ 284 test/okay-gmp/check005.err test/okay-gmp/check005.out \ 285 test/okay-gmp/check006.err test/okay-gmp/check006.out \ 286 test/okay-gmp/check007.err test/okay-gmp/check007.out \ 287 test/okay-gmp/check008.err test/okay-gmp/check008.out \ 288 test/okay-gmp/check009.err test/okay-gmp/check009.out \ 289 test/okay-gmp/check010.err test/okay-gmp/check010.out \ 290 test/okay-gmp/check011.err test/okay-gmp/check011.out \ 291 test/okay-gmp/check012.err test/okay-gmp/check012.out \ 292 test/okay-gmp/check013.err test/okay-gmp/check013.out \ 293 test/okay-gmp/check014.err test/okay-gmp/check014.out \ 294 test/okay-gmp/check015.err test/okay-gmp/check015.out \ 295 test/okay-gmp/check016.err test/okay-gmp/check016.out \ 296 test/okay-gmp/check017.err test/okay-gmp/check017.out \ 297 test/okay-gmp/check018.err test/okay-gmp/check018.out \ 298 test/okay-gmp/check019.err test/okay-gmp/check019.out \ 299 test/okay-gmp/check020.err test/okay-gmp/check020.out \ 300 test/okay-gmp/check021.err test/okay-gmp/check021.out \ 301 test/okay-gmp/check022.err test/okay-gmp/check022.out \ 302 test/okay-gmp/check023.err test/okay-gmp/check023.out \ 303 test/okay-gmp/check024.err test/okay-gmp/check024.out \ 304 test/okay-gmp/check025.err test/okay-gmp/check025.out \ 305 test/okay-gmp/check026.err test/okay-gmp/check026.out \ 306 test/okay-ldb/check001.err test/okay-ldb/check001.out \ 307 test/okay-ldb/check002.err test/okay-ldb/check002.out \ 308 test/okay-ldb/check003.err test/okay-ldb/check003.out \ 309 test/okay-ldb/check004.err test/okay-ldb/check004.out \ 310 test/okay-ldb/check005.err test/okay-ldb/check005.out \ 311 test/okay-ldb/check006.err test/okay-ldb/check006.out \ 312 test/okay-ldb/check007.err test/okay-ldb/check007.out \ 313 test/okay-ldb/check008.err test/okay-ldb/check008.out \ 314 test/okay-ldb/check009.err test/okay-ldb/check009.out \ 315 test/okay-ldb/check010.err test/okay-ldb/check010.out \ 316 test/okay-ldb/check011.err test/okay-ldb/check011.out \ 317 test/okay-ldb/check012.err test/okay-ldb/check012.out \ 318 test/okay-ldb/check013.err test/okay-ldb/check013.out \ 319 test/okay-ldb/check014.err test/okay-ldb/check014.out \ 320 test/okay-ldb/check015.err test/okay-ldb/check015.out \ 321 test/okay-ldb/check016.err test/okay-ldb/check016.out \ 322 test/okay-ldb/check017.err test/okay-ldb/check017.out \ 323 test/okay-ldb/check018.err test/okay-ldb/check018.out \ 324 test/okay-ldb/check019.err test/okay-ldb/check019.out \ 325 test/okay-ldb/check020.err test/okay-ldb/check020.out \ 326 test/okay-ldb/check021.err test/okay-ldb/check021.out \ 327 test/okay-ldb/check022.err test/okay-ldb/check022.out \ 328 test/okay-ldb/check023.err test/okay-ldb/check023.out \ 329 test/okay-ldb/check024.err test/okay-ldb/check024.out \ 330 test/okay-ldb/check025.err test/okay-ldb/check025.out \ 331 test/okay-ldb/check026.err test/okay-ldb/check026.out 332 333CHECKOPTFILES = check001.opt check002.opt check003.opt check004.opt \ 334 check005.opt check006.opt check007.opt check008.opt \ 335 check009.opt check010.opt check011.opt check012.opt \ 336 check013.opt check014.opt check015.opt check016.opt \ 337 check017.opt check018.opt check019.opt check020.opt \ 338 check021.opt check022.opt check023.opt check024.opt \ 339 check025.opt check026.opt 340 341CHECKNAMES = $(CHECKOPTFILES:.opt=) 342 343CONFIGINFILES = config.hin configure.in $(PROGNAME).sin 344 345DISTFILES = ChangeLog COPYING INSTALL Makefile.in README README.AWK \ 346 README.QUAD mkdir.sh $(CHECKFILES) $(CONFIGINFILES) \ 347 configure $(SINFILES) $(SHRLIBFILES) $(SOKFILES) \ 348 $(SRCFILES) $(DOCFILES) $(REGEXPFILES) $(SAVEFILES) 349 350DOCFILES = $(HTMLFILES) $(MANFILES) $(PDFFILES) $(PSFILES) $(TXTFILES) 351 352HTMLFILES = $(MANFILES:.man=.html) 353 354MANFILES = $(PROGNAME).man 355 356PDFFILES = $(MANFILES:.man=.pdf) 357 358PSFILES = $(MANFILES:.man=.ps) 359 360REGEXPFILES = regexp/Makefile regexp/README regexp/README.STDC \ 361 regexp/args.h regexp/regerror.c regexp/regexp.3 \ 362 regexp/regexp.c regexp/regexp.h regexp/regmagic.h \ 363 regexp/regsub.c regexp/tests regexp/timer.c regexp/try.c \ 364 regexp/try.errs 365 366SAVEFILES = save/Makefile save/configure save/config.h 367 368SHFILES = $(AWKFILES:.awk=.sh) 369 370SHRLIBFILES = $(AWKFILES) 371 372SINFILES = $(AWKFILES:.awk=.sin) 373 374SOKFILES = $(MANFILES:.man=.sok) 375 376SRCFILES = acconfig.h awklib.c awklib.h confix.h ndiff.c ndiff.h \ 377 store.c 378 379TMPINSTDIR = $(TMPDIR)/$(PROGNAME) 380 381TMPDIR = /tmp 382 383TXTFILES = $(MANFILES:.man=.txt) 384 385###===================================================================== 386### Suffixes and extra rule(s): 387 388.SUFFIXES: .dw .ser .html .pdf .ps .txt .man .i .c 389 390.c.i: 391 $(CC) $(CFLAGS) -E $< | $(GREP) -v '^[ ]*$$' > $@ 392 393.man.dw: 394 $(DEROFF) $< | $(DW) >$*.dw 395 @if [ -s $*.dw ] ; \ 396 then \ 397 echo "Doubled words in $*.dw" ; \ 398 cat $*.dw ; \ 399 fi 400 401.man.html: 402 $(MAN2HTML) $(MAN2HTMLFLAGS) $< 403 $(MV) $@ $*.tmp 404 $(SEDCMD) < $*.tmp >$@ 405 -$(RM) $*.tmp 406 407.man.ps: 408 $(SEDCMD) $< | $(DITROFF) -Tps -man - >$@ 409 410SPELL-FILTER = $(SED) -e "s/[^a-zA-Z'-]/ /g" 411.man.ser: 412 $(DEROFF) $< | $(SPELL-FILTER) | $(SPELL) +$*.sok >$*.ser 413 $(DEROFF) $< | $(SPELL-FILTER) | $(ISPELL) -l -p $*.sok >>$*.ser 414 @if [ -s $*.ser ] ; \ 415 then \ 416 echo "Spelling exceptions in $*.ser" ; \ 417 $(SORT) -u $*.ser >/tmp/$*.tmp ; \ 418 $(MV) /tmp/$*.tmp $*.ser ; \ 419 $(CAT) $*.ser ; \ 420 fi 421 422.man.txt: 423 $(SEDCMD) $< | $(NROFF) -man - | col -b | expand >$@ 424 425.ps.pdf: 426 $(DISTILL) $< 427 428###===================================================================== 429### Targets: 430 431all: $(PROGNAME) 432 433awktest: awktest.o store.o awklib.o regexp.o regerror.o 434 $(CC) $(CFLAGS) -o $@ $(LDFLAGS) awktest.o store.o awklib.o regexp.o regerror.o $(LIBS) 435 436$(PROGNAME): $(PROGNAME).o store.o awklib.o regexp.o regerror.o 437 $(CC) $(CFLAGS) -o $@ $(LDFLAGS) $(PROGNAME).o store.o awklib.o regexp.o regerror.o $(LIBS) 438 439### A Java archive (.jar) file is read and written like a UNIX .tar 440### file, but its format is compatible with InfoZip (zip/unzip), a 441### cross-platform archive format. As Java becomes widely available, 442### .jar files will become familiar to users, and are therefore a 443### reasonable distribution format. 444### 445### jar creates one additional file, META-INF/MANIFEST.MF, which 446### provides a contents listing, and checksums, e.g., 447### 448### % cat META-INF/MANIFEST.MF 449### Manifest-Version: 1.0 450### 451### Name: foo.1 452### Digest-Algorithms: SHA MD5 453### SHA-Digest: 3o3sk+dlhmdbQB0A7Upx4qRRUzU= 454### MD5-Digest: N7t5JDQ07HAcNKJSNTAhig== 455 456$(PROGNAME).jar: $(DISTFILES) 457 -$(RM) $(PROGNAME).jar 458 $(JAR) cf $(PROGNAME).jar $(DISTFILES) 459 -$(MKDIR) $(PROGNAME)-$(VERSION) 460 cd $(PROGNAME)-$(VERSION); $(JAR) xf ../$(PROGNAME).jar 461 $(JAR) cf $(PROGNAME)-$(VERSION).jar $(PROGNAME)-$(VERSION) 462 -$(RM) -r $(PROGNAME)-$(VERSION) 463 -$(RM) $(PROGNAME).jar 464 $(LN) $(PROGNAME)-$(VERSION).jar $(PROGNAME).jar 465 466$(PROGNAME).tar: $(DISTFILES) 467 -$(RM) $(PROGNAME).tar $(PROGNAME).tar-lst 468 $(TAR) chf $(PROGNAME).tar $(DISTFILES) 469 -$(MKDIR) $(PROGNAME)-$(VERSION) 470 cd $(PROGNAME)-$(VERSION); $(TAR) xf ../$(PROGNAME).tar 471 $(TAR) cf $(PROGNAME)-$(VERSION).tar $(PROGNAME)-$(VERSION) 472 -$(RM) -r $(PROGNAME)-$(VERSION) 473 -$(RM) $(PROGNAME).tar 474 $(LN) $(PROGNAME)-$(VERSION).tar $(PROGNAME).tar 475 476$(PROGNAME).zip: $(DISTFILES) 477 -$(RM) $(PROGNAME)*.zip $(PROGNAME)*.zip-lst 478 $(ZIP) $(PROGNAME)-$(VERSION).zip $(DISTFILES) 479 $(UNZIP) -v $(PROGNAME)-$(VERSION).zip >$(PROGNAME)-$(VERSION).zip-lst 480 $(LN) $(PROGNAME)-$(VERSION).zip $(PROGNAME).zip 481 482$(PROGNAME).zoo: $(DISTFILES) 483 -$(RM) $(PROGNAME)*.zoo $(PROGNAME)*.zoo-lst 484 $(ZOO) a $(PROGNAME)-$(VERSION).zoo $(DISTFILES) 485 $(ZOO) v $(PROGNAME)-$(VERSION).zoo >$(PROGNAME)-$(VERSION).zoo-lst 486 $(LN) $(PROGNAME)-$(VERSION).zoo $(PROGNAME).zoo 487 488# Because a good bit of the command-line processing is done in the 489# shell script interface to ndiff.awk, we need to make the checks 490# using a temporarily-installed version of the program. 491check: check-install-tmp check-runs check-uninstall-tmp 492 493check-install-tmp: 494 @-$(MKDIR) $(TMPINSTDIR) $(TMPINSTDIR)/bin $(TMPINSTDIR)/man \ 495 $(TMPINSTDIR)/man/man1 $(TMPINSTDIR)/share \ 496 $(TMPINSTDIR)/share/lib $(TMPINSTDIR)/share/lib/$(PROGNAME) 497 @$(MAKE) install prefix=$(TMPINSTDIR) >/dev/null 498 499# Because jar seems to have problems with empty directories, we have a copy 500# of the *.opt files in test/okay/check??? and in test/check???. 501check-runs: 502 @echo "" 503 @echo ======================================================================== 504 @echo Test of $(PROGNAME): there should be no output, other than the test and 505 @echo command names. The tests take about 10 sec on a fast workstation. 506 @case $(CHECKOKAY) in \ 507 okay-dbl) PRECISION="native double-precision" ;; \ 508 okay-ldb) PRECISION="native long-double-precision" ;; \ 509 okay-gmp) PRECISION="GNU gmp multiple-precision" ;; \ 510 *) PRECISION="unknown-precision" ;; \ 511 esac ; \ 512 echo This version of $(PROGNAME) has been built with $$PRECISION arithmetic. 513 @echo ======================================================================== 514 @-cd test ; \ 515 for f in $(CHECKNAMES) ; \ 516 do \ 517 echo ============ $$f: $(PROGNAME) `cat $$f.opt` ; \ 518 $(MKDIR) $$f 2>/dev/null; \ 519 $(TMPINSTDIR)/bin/$(PROGNAME) --quick --logfile $$f.err \ 520 --outfile $$f.out `cat $$f.opt` $$f.in1 $$f.in2 ; \ 521 if $(CMP) -s $(CHECKOKAY)/$$f.err $$f.err ; \ 522 then \ 523 $(RM) $$f.err ; \ 524 else \ 525 $(DIFF) $(CHECKOKAY)/$$f.err $$f.err ; \ 526 fi ; \ 527 if $(CMP) -s $(CHECKOKAY)/$$f.out $$f.out ; \ 528 then \ 529 $(RM) $$f.out ; \ 530 else \ 531 $(DIFF) $(CHECKOKAY)/$$f.out $$f.out ; \ 532 fi ; \ 533 done 534 @echo ======================================================================== 535 @echo "" 536 537check-uninstall-tmp: 538 @-$(RM) -r $(TMPINSTDIR) 539 540checknr: 541 $(CHECKNR) $(MANFILES) 542 543clean: clean-test 544 -$(RM) *.dw 545 -$(RM) *.i 546 -$(RM) *.o 547 -$(RM) *.ser 548 -$(RM) *.tmp 549 -$(RM) *~ 550 -$(RM) \#* 551 -$(RM) a.out 552 -$(RM) core 553 -$(RM) tg_[0-9][0-9][0-9][0-9][0-9].* 554 555clean-test: 556 -$(RM) -r test/check??? 557 -$(RM) test/check???.err test/check???.out 558 -$(RM) test/*~ 559 -$(RM) test/\#* 560 -$(RM) test/a.out 561 -$(RM) test/core 562 563cleandist: 564 -$(RM) $(PROGNAME)*.jar $(PROGNAME)*.jar-lst 565 -$(RM) $(PROGNAME)*.tar $(PROGNAME)*.tar-lst 566 -$(RM) $(PROGNAME)*.zip $(PROGNAME)*.zip-lst 567 -$(RM) $(PROGNAME)*.zoo $(PROGNAME)*.zoo-lst 568 569cleandocs: 570 -$(RM) $(HTMLFILES) 571 -$(RM) $(PDFFILES) 572 -$(RM) $(PSFILES) 573 -$(RM) $(TXTFILES) 574 575clobber: distclean 576 577### While this step requires autoconf and autoheader, it should only 578### ever be used at the developer's site, where it is universally 579### available. 580configure: configure.in 581 $(AUTOHEADER) 582 $(AUTOCONF) 583 584dist: docs $(PROGNAME).jar $(PROGNAME).tar $(PROGNAME).zip $(PROGNAME).zoo 585 586distclean: mostlyclean cleandist 587 -$(RM) config.cache config.h config.log config.status Makefile $(PROGNAME).sh 588 -$(RM) $(PROGNAME) 589 -$(RM) awktest 590 591docs: $(DOCFILES) 592 593dw: $(MANFILES:.man=.dw) 594 595FRC: 596 597html: $(HTMLFILES) 598 599install: install-exe install-shrlib install-man install-show 600 601install-exe: uninstall-exe 602 if test -f $(PROGNAME) ; \ 603 then \ 604 $(CP) $(PROGNAME) $(bindir)/$(PROGNAME) ; \ 605 else \ 606 for f in $(SHFILES) ; \ 607 do \ 608 g=`basename $$f .sh` ; \ 609 $(SEDCMD) $$f | $(CHECKSUM) > $(bindir)/$$g ; \ 610 $(CHMOD) 755 $(bindir)/$$g ; \ 611 done ; \ 612 fi 613 614install-ftp: dist 615 $(TAR) tvf $(PROGNAME)-$(VERSION).tar >$(FTPDIR)/$(PROGNAME)-$(VERSION).tar-lst 616 $(GZIP) <$(PROGNAME)-$(VERSION).tar >$(FTPDIR)/$(PROGNAME)-$(VERSION).tar.gz 617 $(CP) $(PROGNAME)-$(VERSION).jar $(FTPDIR) 618 $(JAR) tvf $(PROGNAME)-$(VERSION).jar >$(FTPDIR)/$(PROGNAME)-$(VERSION).jar-lst 2>&1 619 $(CP) $(PROGNAME)-$(VERSION).zip $(FTPDIR) 620 $(CP) $(PROGNAME)-$(VERSION).zip-lst $(FTPDIR) 621 $(CP) $(PROGNAME)-$(VERSION).zoo $(FTPDIR) 622 $(CP) $(PROGNAME)-$(VERSION).zoo-lst $(FTPDIR) 623 $(LS) -l $(FTPDIR)/$(PROGNAME)* 624 625install-man: uninstall-man 626 for f in $(MANFILES) ; \ 627 do \ 628 g=`basename $$f .man` ; \ 629 $(SEDCMD) $$f | $(CHECKSUM) > $(mandir)/$$g.$(manext) ; \ 630 $(CHMOD) 644 $(mandir)/$$g.$(manext) ; \ 631 done 632 633install-show: 634 @echo '' 635 @echo Installed files... 636 @$(LS) -l $(bindir)/$(PROGNAME) 637 @$(LS) -l $(mandir)/$(PROGNAME).$(manext) 638 @if test -d $(shrlibdir) ; then $(LS) -lR $(shrlibdir)/* ; fi 639 @echo '' 640 641install-shrlib: uninstall-shrlib 642 643 644 -$(MKDIR) $(shrlibdir) 645 @if test -d $(shrlibdir) ; then true ; else echo Cannot create $(shrlibdir) ; exit 1 ; fi 646 for f in $(SHRLIBFILES) ; \ 647 do \ 648 $(SEDCMD) < $$f > $(shrlibdir)/$$f ; \ 649 done 650 $(CHMOD) 644 $(shrlibdir)/* 651 652maintainer-clean: distclean cleandocs 653 @echo "This command is intended for maintainers to use;" 654 @echo "it deletes files that may require special tools to rebuild." 655 -$(RM) configure config.hin 656 657Makefile: Makefile.in 658 ./configure 659 660mostlyclean: clean 661 662pdf: $(PDFFILES) 663 664ps: $(PSFILES) 665 666regerror.o: regexp/regerror.c 667 (cd regexp; $(CC) $(CFLAGS) -c -I. regerror.c; $(MV) regerror.o ..) 668 669regexp.o: regexp/regexp.c 670 (cd regexp; $(CC) $(CFLAGS) -c -I. regexp.c; $(MV) regexp.o ..) 671 672spell: $(MANFILES:.man=.ser) 673 674reconfigure: FRC 675 $(AUTOHEADER) 676 $(AUTOCONF) 677 CC="$(CC)" ./configure 678 679TAGS: $(TAGSFILES) 680 $(ETAGS) $(TAGSFILES) 681 682tgrind: tgrind-awk tgrind-c 683 684tgrind-awk: 685 @echo $(PROGNAME).awk 686 $(TGRIND) $(TGRINDFLAGS) $(PROGNAME).awk 2>&1 | $(GREP) '^-.*[.]ps' 687 688tgrind-c: vgrindefs.v 689 @for f in *.[ch] ; \ 690 do \ 691 echo $$f ; \ 692 $(TGRIND) $(TGRINDFLAGS) -l C -d vgrindefs.v $$f 2>&1 | $(GREP) '^-.*[.]ps' ; \ 693 sleep 1 ; \ 694 done 695 -@$(RM) tg_[0-9][0-9][0-9][0-9][0-9].dvi tg_[0-9][0-9][0-9][0-9][0-9].log tg_[0-9][0-9][0-9][0-9][0-9].tex 696 697txt: $(TXTFILES) 698 699uninstall: uninstall-exe uninstall-shrlib uninstall-man 700 701uninstall-exe: 702 -for f in $(PROGRAMS) ; \ 703 do \ 704 $(RM) $(bindir)/$$f 2>/dev/null; \ 705 done 706 707uninstall-man: 708 -for f in $(MANFILES) ; \ 709 do \ 710 g=`basename $$f .man` ; \ 711 $(RM) $(mandir)/$$g.$(manext) 2>/dev/null; \ 712 $(RM) $(catdir)/$$g.$(manext) 2>/dev/null; \ 713 done 714 715uninstall-shrlib: 716 -$(RM) -r $(shrlibdir) 2>/dev/null 717 718$(PROGNAME).o: $(PROGNAME).c awklib.h ndiff.h 719awklib.o: awklib.c awklib.h 720store.o: store.c ndiff.h 721