• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

doc/H03-May-2022-12,36211,024

ibmpc/H10-Aug-2021-6,0834,440

save/H10-Aug-2021-11,5969,245

test/H10-Aug-2021-48,81743,280

vms/H10-Aug-2021-1,178966

win32/H03-May-2022-

COPYINGH A D05-May-200517.6 KiB341281

ChangeLogH A D10-Aug-202176 KiB2,0041,515

Makefile.inH A D11-Mar-202161.7 KiB1,5531,131

READMEH A D12-Mar-201826.2 KiB787590

bibclean.cH A D12-Mar-201856 KiB2,2421,556

bibclean.hH A D18-May-202022 KiB385382

bibclean.hlpH A D10-Aug-202171.3 KiB1,2771,042

bibclean.iniH A D21-Nov-20197.7 KiB196180

bibclean.isbnH A D24-Feb-201686.8 KiB2,3981,648

bibclean.keyH A D15-Mar-20182.4 KiB12186

bibclean.manH A D18-May-202059 KiB2,1372,012

bibclean.psH A D10-Aug-2021102.6 KiB

bibclean.regH A D30-Jan-19934.4 KiB10293

build-all.shH A D08-Nov-19992.3 KiB6124

ch.hH A D22-Aug-20031 KiB4424

chek.cH A D11-Mar-202136.2 KiB1,389992

config.hinH A D06-Mar-20215.5 KiB222148

configureH A D06-Mar-2021252.2 KiB9,4527,829

configure.acH A D06-Mar-20218.3 KiB263230

configure.sedH A D26-Oct-1999428 1816

custom.hH A D22-Feb-20134.2 KiB14688

dbx-test.runH A D12-Mar-20189.9 KiB184183

delete.hH A D03-Oct-1995285 116

do.cH A D10-Aug-202181.3 KiB3,2912,677

fix.cH A D10-Aug-202165.3 KiB2,4371,542

fndfil.cH A D03-Apr-201420.5 KiB638378

isbn-el-to-bibclean-isbn.awkH A D11-Mar-20184.3 KiB13895

isbn.cH A D10-Aug-202135.1 KiB1,3841,061

isbn.hH A D11-Mar-2018309 97

isbn.tblH A D13-Mar-2021105.1 KiB1,8331,329

keybrd.cH A D09-Jun-201717.9 KiB800628

keybrd.hH A D10-Jan-20131.2 KiB5046

match.cH A D11-Mar-201816.1 KiB612440

match.datH A D30-Aug-2001144.2 KiB5,9995,990

match.hH A D22-Aug-2003392 1410

option.cH A D12-Mar-201818.4 KiB733602

pattern.hH A D03-Oct-1995363 126

rofvms.awkH A D07-Nov-19921.8 KiB6127

romtol.cH A D22-Aug-20035.8 KiB205111

romtol.datH A D30-Aug-2001188 4746

strist.cH A D22-Aug-20031.1 KiB4630

strtol.cH A D22-Aug-20034.7 KiB242196

testscr2.bo2H A D30-Aug-20012.7 KiB9181

testscr2.eo2H A D30-Aug-20011.1 KiB1615

token.hH A D21-Nov-20191.1 KiB317

toklst.hH A D19-Sep-20061.2 KiB5652

tstctype.cH A D23-Aug-20031.9 KiB9881

typedefs.hH A D22-Aug-20031.2 KiB5445

vaxvms.cH A D22-Aug-200325 KiB897542

vmswild.cH A D30-Nov-201331.7 KiB1,052729

xctype.hH A D22-Aug-20031 KiB2715

xerrno.hH A D20-Sep-1995137 107

xlimits.hH A D22-Aug-2003484 2212

xpwd.hH A D20-Sep-1995127 107

xstat.hH A D27-Sep-1995283 1713

xstdbool.hH A D09-Jan-20132.9 KiB10232

xstdio.hH A D10-Jan-20131.2 KiB4831

xstdlib.hH A D03-Oct-1995258 1813

xstring.hH A D26-Oct-1999601 2015

xtypes.hH A D20-Sep-1995191 1310

xunistd.hH A D09-Nov-1999591 2416

yesorno.hH A D22-Aug-2003294 1310

README

1%% /u/sy/beebe/tex/bibclean/bibclean-2.16/README, Tue Jan  1 08:59:06 2013
2%% Edit by Nelson H. F. Beebe <beebe@math.utah.edu>
3%% /u/sy/beebe/tex/bibclean/2-11/README, Mon Oct  2 10:01:31 1995
4%% Edit by Nelson H. F. Beebe <beebe@sunrise>
5
6========================================================================
7
8==========
9Jump start
10==========
11
12As with most GNUware, you can build, test, and install this program on
13most UNIX systems by these simple steps
14
15csh et amici:
16	setenv CC ...your favorite C or C++ compiler...
17	./configure && make all check install
18
19sh et amici:
20	CC=...your favorite C or C++ compiler...
21	export CC
22	./configure && make all check install
23
24If you don't set the CC environment variable, then gcc (or cc, if gcc
25is not available) will be assumed.
26
27If you wish to undo a "make install", just do "make uninstall"; this
28will remove any files in system directories put there by "make
29install".
30
31See below for further details, and for instructions for non-UNIX systems.
32
33This program normally records the username and hostname of the builder;
34software distributions may wish to suppress that information by
35undefining HOST and USER at in the make command:
36
37	./configure && env HOST= USER= make all check install
38
39
40============
41Introduction
42============
43
44This directory contains bibclean, a BibTeX prettyprinter, portability
45verifier, and syntax checker.  It can be used to find errors in .bib
46files, as well as to standardize their format for readability and
47editing convenience.  It can also be used to convert Scribe-format
48bibliographies to BibTeX form.
49
50Binary executables for IBM PC DOS, DEC Alpha OpenVMS, DEC VAX VMS, and
51Intel x86 Linux may be included in the distribution.
52
53If you do not require either the IBM PC DOS or LINUX, or the DEC VMS
54(Alpha and VAX) versions, then you can save about 2.5MB of disk space
55by deleting the ibmpc and vms subdirectories.
56
57The default pattern matching in bibclean.c is selected by
58HAVE_PATTERNS; with it, no regular-expression library support is
59needed.  Should you wish to compile with regular-expression support
60instead of the HAVE_PATTERNS code, and your system does not have
61compile()/step (HAVE_REGEXP), or re_comp()/re_exec() (HAVE_RECOMP),
62you may be able to use the regex-?-??.tar.Z distribution from the Free
63Software Foundation, available on prep.ai.mit.edu in /pub/gnu.
64
65In most cases, the HAVE_PATTERNS code is recommended, since it will
66give identical results across all machines.  I was prompted to write
67it after discovering that there was considerable variety in the
68regular expression library codes that resulted in different matching
69on different machines, a most unsatisfactory situation.
70
71Please report all problems, suggestions, and comments to the author:
72
73	Nelson H. F. Beebe
74	University of Utah
75	Department of Mathematics, 110 LCB
76	155 S 1400 E RM 233
77	Salt Lake City, UT 84112-0090
78	USA
79	Tel: +1 801 581 5254
80	FAX: +1 801 581 4148
81	Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org (Internet)
82	WWW URL: http://www.math.utah.edu/~beebe/
83
84
85============
86Installation
87============
88
89Starting with version 2.10.1, bibclean has been adapted to use the GNU
90autoconf automatic configuration system for UNIX installations.
91
92GNU autoconf is run at the author's site to produce the configure
93script from configure.ac.
94
95The configure script is run at each installer's UNIX site to produce
96Makefile from Makefile.in, and config.h from config.hin.  The
97configure script is a large (1800+ lines) Bourne shell program that
98investigates various aspects of the local C implementation, and
99records its conclusions in config.h.  Interestingly, its probes
100uncovered a bug in one compiler: lcc 3.4b on Sun Solaris 2.x has an
101incorrect definition of toupper() in its ctype.h!
102
103autoconf, at least at the current 2.4 version, is not as C++-aware as
104it should be.  The Makefile must carry out minor edits of the
105configure script to get it to even work with C++ compilers.  The small
106test programs run by configure to determine the existence of assorted
107Standard C library functions all lead to incorrect conclusions for
108config.h, because they intentionally contain function prototypes with
109different argument types.  Since C++ functions are compiled into
110external names that encode the function and argument types, along with
111the function name, these prototypes produce references to non-existent
112functions, causing program linking to fail.  Fortunately, I've been
113able to fix this problem too with additional automatic edits, all
114carried out by "make configure".
115
116Should you do a "make maintainer-clean" [NOT recommended, except at the
117author's site], the configure script will be deleted, and you will
118need recent versions of both GNU m4 and autoconf correctly installed
119to reconstruct things, which can be done this way:
120
121	autoconf	# Regenerate unedited configure
122	./configure	# Regenerate config.h and Makefile
123	rm configure	# delete configure
124	make configure	# Regenerate edited configure
125
126For convenience and safety, the distribution includes a subdirectory
127named save that contains read-only copies of the files Makefile,
128config.h, and configure created by autoconf and "make configure".
129This will allow recovery from a lost or damaged configure file.
130
131Suitable hand-crafted config.h files are provided for non-UNIX
132systems, and in the unlikely event of a failure of the configure
133script on a UNIX system, config.h can be manually produced from a copy
134of config.hin with a few minutes' editing work. If you do this,
135remember to save a copy of your config.h under a different name,
136because running configure will destroy it.  If you have GNU autoconf
137installed (the installation is very simple and source code is
138available from prep.ai.mit.edu:/pub/gnu/autoconf-x.y.tar.gz), you
139might try augmenting config.hin instead, then run autoconf and
140configure.
141
142Thus, on UNIX, installation normally consists of just two steps
143(assuming a csh-compatible shell):
144
145	setenv CC ...your favorite C or C++ compiler...
146	./configure && make all check install
147
148If you like, add OPT='your favorite optimization flags' to the make
149command; by default, only -g (debug) is assumed.  If your compiler
150won't accept -g with other optimization levels, then set CFLAGS
151instead of OPT on the command line; be sure NOT to override any
152non-optimizing flags in the CFLAGS set in the Makefile.
153
154The GNU standard installation directories /usr/local/bin for binaries,
155and /usr/local/man/man1 for manual pages are assumed.  The prefix
156/usr/local can be overridden by providing an alternate definition on
157the command line:
158
159	make prefix=/some/other/path install
160
161After installation, you can do
162	make distclean
163to restore the directories to their distribution state.  You should
164also do this between builds for different architectures from the same
165source tree; neglecting to do to will almost certainly lead to
166failure, because the config.cache file created by configure will lead
167to an incorrect config.h for the next build.
168
169
170============
171UNIX Systems
172============
173
174The code can be compiled with either C (K&R or ISO/ANSI Standard C) or
175C++ compilers.  With some C++ compilers, it may be necessary to supply
176additional switches for force the compiler to stay in C++ mode, rather
177than reverting to C mode (e.g. on DEC Alpha OSF/1, you must do
178setenv CC "cxx -x cxx").
179
180On UNIX systems, the only changes that you are likely to need in the
181Makefile are the settings of CC and CFLAGS, and possibly, DEFINES, and
182if you wish to do "make install", the settings of bindir, MANDIR, and
183MANEXT.
184
185If you are installing bibclean on a new system, you should definitely
186run "make check" before installing it on your system.  For the target
187test-bibtex-2, latex is needed.  For test-bibtex-2 and test-scribe-1,
188bibtex is needed.  Sample output of "make check" from a UNIX system
189is given below.
190
191The code has been tested under more than 55 different C and C++
192compilers, and is in regular use to maintain the TeX User Group
193bibliography collection stored on ftp.math.utah.edu:/pub/tex/bib, as
194well as several other local bibliographies.  These files total more
195than 1.08M lines and 62K bibliography entries.  Some of these
196bibliographies are mirrored to the Comprehensive TeX Archive Network
197(CTAN) hosts.  Do "finger ctan@pip.shsu.edu" to find a CTAN site on
198the Internet near you.
199
200bibclean is also used for the BibNet Project, which collects
201bibliographies in numerical analysis.  The master collection is
202available on ftp.math.utah.edu:/pub/bibnet, and is mirrored from there
203to netlib servers at AT&T and Oak Ridge National Laboratory.
204
205If you port bibclean to a new system, please select maximal error and
206warning messages in your compiler, to better uncover problems.  If you
207find massive numbers of errors complaining about function and argument
208type mismatches, it is likely that this can be remedied by suitable
209modifications of config.h.  As C implementations move towards
210conformance with the December 1989 ISO/ANSI C Language Standard, the C
211language is a moving target that must be tracked by config.h, which is
212why that file is normally automatically generated on UNIX systems by
213the configure script.  With C compilers, you can safely ignore
214complaints about implicit declaration of library functions; they are
215caused by deficiencies in the vendor-provided header files.
216
217If you have a C++ compiler, please try that as well.  This code has
218been successfully compiled under at least 19 C++ compilers, and the
219stricter type checking has uncovered problems that slipped past other
220compilers.
221
222These programs have been successfully built with C and C++ compilers
223and tested on these systems for the 2.10.1 release:
224
225	DECstation 5000		ULTRIX 4.2	cc, gcc, g++, lcc
226	DEC Alpha		OSF/1 3.0, 3.2c	cc, c89, cxx, gcc, g++
227	HP 9000/375		BSD 4.3		cc, CC
228	HP 9000/735		HP-UX 9.0	cc, c89, CC, gcc, g++
229	IBM RS/6000		AIX 3.2		cc, c89, xlC, gcc, g++
230	Intel 486		Linux 1.3.15	gcc, g++
231	MIPS RC6280		RISCos 2.1.1AC	cc
232	NeXT 68040		Mach 3.0	cc, cc -ObjC, gcc, g++
233	SGI 4D/210		IRIX 4.0.5c	cc, gcc, lcc
234	SGI Indigo/2		IRIX 5.3	cc, CC, gcc, g++, lcc
235	SGI Power Challenge	IRIX 6.0.1	cc, CC
236	Sun SPARCstation	Solaris 2.3,2.4	cc, CC, gcc, g++, lcc
237	Sun SPARCstation	SunOS 4.1.3	acc, cc, CC, gcc
238
239Further details are given below.  Where builds have failed, it is
240usually because of conflicts between system header files.
241
242The author uses the build-all.sh script for these tests; it tries
243builds with every known compiler on the development systems.  If your
244UNIX system has other compilers that can be tested, please send their
245full path names to the author.
246
247
248==========
249IBM PC DOS
250==========
251
252The ibmpc/dos/README file contains details of the builds and tests
253of bibclean under 8 IBM PC DOS C and C++ compilers, and instructions
254for building and testing bibclean with other compilers.
255
256Since bibclean uses no floating-point arithmetic, and PC DOS has no
257shared libraries, I expect that the executables will run on any
258version of DOS greater than 4.0.  They may also run on earlier
259versions.  At the time of writing, MS-DOS 6.22 is current, and the
260bibclean executables work fine on it.
261
262
263=================
264DEC Alpha OpenVMS
265=================
266
267The vms/alpha subdirectory contains these files for DEC Alpha OpenVMS:
268
269	bibclean.exe		bibclean executable program
270	config.h		hand-coded configuration file
271	recomp.com		do @recomp foo to recompile foo.c
272	vmsclean.com		do @vmsclean to cleanup after a build
273	vmsmake.com		do @vmsmake to build bibclean
274	vmstest.com		do @vmstest to test bibclean
275
276You will have to change one line in vmstest.com to define the disk
277location of bibclean.exe in the foreign command symbol for bibclean.
278
279Unlike the UNIX "make check", execution of vmstest.com does not
280require that latex or bibtex be installed on your system.  [I didn't
281have either on the Alpha OpenVMS system that I built bibclean on.]
282
283
284===========
285DEC VAX VMS
286===========
287
288The vms/vax/README file contains details of the building and testing
289of bibclean on VAX VMS 6.1
290
291Unlike the UNIX "make check", execution of vmstest.com does not require
292that latex or bibtex be installed on your system.  [I didn't have
293either on the VAX VMS system that I built bibclean on.]
294
295On versions of VMS before 6.1, you may find differences in the vmstest
296output between testbib1.bok (correct Sun) and testbib1.bib (VAX VMS);
297characters with octal values 211--215 and 240 disappear from the VAX
298VMS output.  The reason is that on VAX VMS 5.4 (and likely other
299versions of VAX VMS) isspace() from <ctype.h> classifies those
300characters as spaces.  This problem does NOT exist on DEC Alpha
301OpenVMS 1.5, or in VMS 6.1.  As long as your .bib files do not use
302those six characters, execution should be correct; for portability,
303.bib files should restrict themselves to ASCII/ISO-8859 characters in
304the range 32--127, plus newline and tab.
305
306
307===================================
308Sample "make check" Output for UNIX
309===================================
310
311Here is a log of "make check" on Sun Solaris 2.5 using the native C++
312compiler, CC:
313
314	CC -c -I. -I. -DHAVE_CONFIG_H  -g  romtol.c
315	/bin/rm -f match.O
316	if [ -f match.o ] ; then /bin/mv match.o match.O ; fi
317	/bin/rm -f match.o
318	CC -I. -I. -DHAVE_CONFIG_H  -g  -DTEST -o match \
319		match.c romtol.o
320	/bin/rm -f match.o
321	if [ -f match.O ] ; then /bin/mv match.O match.o ; fi
322
323	===================== begin match test =======================
324
325	./match <match.dat >match.lst
326	There should be no differences found:
327	diff match.lok match.lst
328
329	====================== end match test ========================
330
331	/bin/rm -f romtol.O
332	if [ -f romtol.o ] ; then /bin/mv romtol.o romtol.O ; fi
333	/bin/rm -f romtol.o
334	CC -I. -I. -DHAVE_CONFIG_H  -g  -DTEST -o romtol romtol.c
335	/bin/rm -f romtol.o
336	if [ -f romtol.O ] ; then /bin/mv romtol.O romtol.o ; fi
337
338	===================== begin romtol test ======================
339
340	./romtol <romtol.dat >romtol.lst
341	There should be no differences found:
342	diff romtol.lok romtol.lst
343
344	====================== end romtol test =======================
345
346	CC -c -I. -I. -DHAVE_CONFIG_H  -g  bibclean.c
347	CC -c -I. -I. -DHAVE_CONFIG_H  -g  chek.c
348	CC -c -I. -I. -DHAVE_CONFIG_H  -g  do.c
349	CC -c -I. -I. -DHAVE_CONFIG_H  -g  fix.c
350	CC -c -I. -I. -DHAVE_CONFIG_H  -g  fndfil.c
351	CC -c -I. -I. -DHAVE_CONFIG_H  -g  isbn.c
352	CC -c -I. -I. -DHAVE_CONFIG_H  -g  keybrd.c
353	CC -c -I. -I. -DHAVE_CONFIG_H  -g  match.c
354	CC -I. -I. -g  -c -DHOST=\"`hostname`\" -DUSER=\"beebe\" option.c
355	CC -c -I. -I. -DHAVE_CONFIG_H  -g  strist.c
356	CC -c -I. -I. -DHAVE_CONFIG_H  -g  strtol.c
357	CC -o bibclean -g  bibclean.o chek.o do.o fix.o fndfil.o isbn.o keybrd.o match.o option.o romtol.o strist.o strtol.o
358	ild: (Performing full relink) too many files changed
359
360	==================== begin BibTeX test 1 =====================
361
362
363	./bibclean -init-file bibclean.ini testbib1.org >testbib1.bib 2>testbib1.err
364
365	There should be no differences found:
366	diff testbib1.bok testbib1.bib
367
368	There should be no differences found:
369	diff testbib1.eok testbib1.err
370
371	===================== end BibTeX test 1 ======================
372
373
374	==================== begin BibTeX test 2 =====================
375
376
377	./bibclean -init-file bibclean.ini -no-check-values testbib2.org >testbib2.bib 2>testbib2.err
378
379	There should be no differences found:
380	diff testbib2.bok testbib2.bib
381
382	There should be no differences found:
383	diff testbib2.eok testbib2.err
384
385	latex testbib2.ltx >/dev/null
386
387	Expect 6 BibTeX warnings:
388	bibtex testbib2
389	Warning--empty year in Bennett
390	Warning--empty year in Cejchan
391	Warning--there's a number but no volume in Dubowsky:75
392	Warning--empty institution in Diver:88a
393	Warning--empty booktitle in Diver:88
394	Warning--empty year in Diver
395	(There were 6 warnings)
396
397	latex testbib2.ltx >/dev/null
398
399	latex testbib2.ltx
400	This is TeX, Version 3.1415 (C version 6.1)
401	(testbib2.ltx
402	LaTeX Version 2.09 <14 January 1991>
403	(/usr/local/lib/tex/latex/article.sty
404	Document Style `article' <16 Mar 88>.
405	(/usr/local/lib/tex/latex/art10.sty)) (testbib2.aux) (testbib2.bbl [1] [2]
406	[3]
407	Underfull \hbox (badness 1024) in paragraph at lines 261--264
408	[] []\tenrm L. M. Berkovich, V. P. Gerdt, Z. T. Kos-tova, and M. L.
409	[4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]) [17] (testbib2.aux)
410	 )
411	(see the transcript file for additional information)
412	Output written on testbib2.dvi (17 pages, 49032 bytes).
413	Transcript written on testbib2.log.
414
415	===================== end BibTeX test 2 ======================
416
417
418	==================== begin BibTeX test 3 =====================
419
420
421	./bibclean -init-file bibclean.ini -fix-font-change testbib3.org >testbib3.bib 2>testbib3.err
422
423	There should be no differences found:
424
425	There should be no differences found:
426	diff testbib3.eok testbib3.err
427
428	===================== end BibTeX test 3 ======================
429
430
431	==================== begin BibTeX test 4 =====================
432
433
434	./bibclean -init-file bibclean.ini -fix-font-change testbib4.org >testbib4.bib 2>testbib4.err
435
436	There should be no differences found:
437
438	There should be no differences found:
439	diff testbib4.eok testbib4.err
440
441	===================== end BibTeX test 4 ======================
442
443
444	==================== begin BibTeX test 5 =====================
445
446
447	./bibclean -init-file bibclean.ini -German-style testbib5.org >testbib5.bib 2>testbib5.err
448
449	There should be no differences found:
450
451	There should be no differences found:
452	diff testbib5.eok testbib5.err
453
454	===================== end BibTeX test 5 ======================
455
456
457	==================== begin BibTeX test 6 =====================
458
459	./bibclean -init-file bibclean.ini testisxn.org >testisxn.bib 2>testisxn.err
460
461	There should be no differences found:
462	diff testisxn.bok testisxn.bib
463
464	There should be no differences found:
465	diff testisxn.eok testisxn.err
466
467	===================== end BibTeX test 6 ======================
468
469
470	==================== begin BibTeX test 7 =====================
471
472	./bibclean -init-file bibclean.ini testcodn.org >testcodn.bib 2>testcodn.err
473
474	There should be no differences found:
475	diff testcodn.bok testcodn.bib
476
477	There should be no differences found:
478	diff testcodn.eok testcodn.err
479
480	===================== end BibTeX test 7 ======================
481
482
483	==================== begin Scribe test 1 =====================
484
485
486	----------------------------------------------------
487
488	./bibclean -init-file bibclean.ini -scribe -no-check testscr1.org >testscr1.bib
489
490	There should be no differences found:
491	diff testscr1.bok testscr1.bib
492
493	There should be no differences found:
494	diff testscr1.eok testscr1.err
495
496	Expect 5 BibTeX warnings
497	bibtex testscr1
498	Warning--empty publisher in hanson-67
499	Warning--can't use both volume and number fields in kendeigh-52
500	Warning--empty author in singer-portion-chapter
501	Warning--empty author in singer-portion-volume
502	Warning--can't use both author and editor fields in wright-63
503	(There were 5 warnings)
504
505	----------------------------------------------------
506
507	./bibclean -init-file bibclean.ini -scribe -no-check testscr2.org >testscr2.bib
508
509	There should be no differences found:
510	diff testscr2.bok testscr2.bib
511
512	There should be no differences found:
513	diff testscr2.eok testscr2.err
514
515	There should be no BibTeX warnings:
516	bibtex testscr2
517	===================== end Scribe test 1 ======================
518
519
520	==================== begin Scribe test 2 =====================
521
522	./bibclean -init-file bibclean.ini -scribe -file -no-check testscr2.org \
523	>testscr2.bib 2>testscr2.err
524
525	There should be no differences found:
526	diff testscr2.bok testscr2.bib
527
528	There should be no differences found:
529	diff testscr2.eok testscr2.err
530
531
532	./bibclean -init-file bibclean.ini -scribe -file -no-check -no-par testscr2.org \
533	>testscr2.bi2 2>testscr2.er2
534	make: [test-scribe-2] Error 1 (ignored)
535
536	There should be no differences found:
537	diff testscr2.bo2 testscr2.bi2
538
539	There should be no differences found:
540	diff testscr2.eo2 testscr2.er2
541
542	===================== end Scribe test 2 ======================
543
544
545	==================== begin Scribe test 3 =====================
546
547	./bibclean -init-file bibclean.ini -scribe -no-check testscr3.org >testscr3.bib 2>testscr3.err
548
549	There should be no differences found:
550	diff testscr3.bok testscr3.bib
551
552	There should be no differences found:
553	diff testscr3.eok testscr3.err
554
555	===================== end Scribe test 3 ======================
556
557
558
559=====================================
560Details of UNIX installation attempts
561=====================================
562
563Clean builds and validations with "setenv CC xxx && ./configure &&
564make && make check" have been achieved on these systems:
565
566	DEC Alpha OSF/1 3.0
567		/bin/cc
568		/usr/ccs/bin/c89
569		/usr/ccs/bin/cc
570		/usr/local/bin/g++
571		/usr/local/bin/gcc
572		/usr/ucb/cc
573
574		For /bin/cxx, compiler switches to c89 for .c files, and
575		then gets an error which arises because
576		/usr/include/sys/signal.h:468: error: Missing ")".
577		stack_t is not defined by types.h except in Standard C
578		or C++ mode.
579
580		Recent versions of cxx have switch "-x cxx" to force
581		use of C++ compilation for .c files, but older ones do
582		not.  On one such old system, I made an experiment
583		with changing extensions from .c to .cxx and updating
584		the Makefile accordingly.  The build failed with:
585		``Fatal: An attempt to allocate memory failed.''
586		during compilation of bibclean.cxx, and with
587		conflicting declarations of swab() from
588		/usr/include/unistd.h and /usr/include/cxx/string.h
589		during compilation of fndfil.cxx.  These are both
590		vendor problems that may be fixed in newer releases of
591		the C++ compiler.
592
593	DEC Alpha OSF/1 3.2C (Digital UNIX)
594		/usr/ucb/cxx
595
596		The problems with cxx experienced on OSF/1 3.0 have
597		all disappeared, and I regularly use "cxx -x cxx" as
598		my C/C++ compiler of choice on this system.  [The
599		DEC 2100-5/250 on which the compiler is installed has
600		3 CPUs and 2GB of RAM, and each CPU does 250Mflops in
601		benchmarks, so it is a terrific development system!]
602
603	DECstation ULTRIX 4.3
604		/bin/cc
605		/usr/local/bin/g++
606		/usr/local/bin/gcc
607
608		Got many "warning: missing prototype" messages for
609		functions in system header files (because they are
610		still K&R style) with:
611		/usr/local/bin/lcc -A -A
612		but build completed and validated.
613
614	HP 9000/735 HP-UX 9.0.3
615		/bin/cc
616		/bin/c89
617		/usr/bin/CC
618		/usr/local/bin/g++
619		/usr/local/bin/gcc
620
621		For /bin/cc, the compiler warns
622
623		cc: "bibclean.c", line 3723: warning 30: Character
624		constant contains undefined escape sequence.
625		cc: "bibclean.c", line 3730: warning 30: Character
626		constant contains undefined escape sequence.
627
628		but the escape sequence ('\a') IS correctly translated.
629
630	HP 9000/735 HP-UX 10.0.1
631		/bin/cc
632		/bin/c89
633		/usr/bin/CC
634		/usr/local/bin/g++
635		/usr/local/bin/gcc
636
637		The warnings from /bin/cc no longer appear.
638
639	IBM RS/6000 AIX 3.2.5
640		/bin/cc
641		/bin/xlC
642		/usr/bin/c89
643		/usr/local/bin/g++
644		/usr/local/bin/gcc
645
646	IBM RS/6000 AIX 4.1
647		/bin/c89
648		/bin/xlC
649		/usr/bin/c89
650
651	Intel 486 Linux 1.3.15 and 1.3.97 (POSIX)
652		/usr/bin/g++
653		/usr/bin/gcc
654
655	MIPS RC 6280 RISCos 2.1.1AC
656		/bin/cc
657
658	NeXT Turbostation Mach 3.0
659		Compilation with any compiler produces failing links
660		with error: /bin/ld: multiple definitions of symbol _strtol
661		The configure.ac script attempts to deal with this by
662		AC_REPLACE_FUNCS(strtol), but that results in the created
663		Makefile having LIBOBJS=strtol.  Building with
664			make LIBOBJS=
665		provides a temporary workaround.
666
667		/usr/local/bin/gcc
668		/bin/cc
669		/usr/local/bin/g++
670
671		Many compilation "warning: missing prototype", plus
672		bibclean.c:2774: undeclared identifier `__ctype'
673		bibclean.c:3158: type error: pointer expected
674		...
675		for
676		/usr/local/bin/lcc -A -A
677		lcc on this system is an old version (1.9); the
678		current lcc elsewhere is 3.4b, but unfortunately,
679		lcc 3.x dropped support for the Motorola 68xxx
680		code generator.  I'm therefore writing off lcc
681		on the NeXT as not viable for software development.
682
683	NeXT Turbostation Mach 3.1
684		/bin/cc
685		/usr/local/bin/g++
686		/usr/local/bin/gcc
687
688	Silicon Graphics Indigo IRIX 4.0.5F
689
690		/usr/bin/cc
691		/usr/local/bin/gcc
692		/usr/local/bin/lcc -A -A
693
694		Compilation fails with
695		/usr/local/bin/g++
696		because of conflicts between system header files and
697		g++ built-in library function declarations.
698
699	Silicon Graphics Indigo-2 IRIX 5.3
700		/bin/cc
701		/usr/local/bin/g++
702		/usr/local/bin/gcc
703		/usr/local/bin/lcc -A -A
704
705	Silicon Graphics Power Challenge IRIX 6.0.1
706		/bin/CC
707		/bin/cc
708
709		For
710		/usr/local/bin/g++
711		and
712		/usr/local/bin/gcc
713		(2.7.0) get assembler errors from generated code.
714
715	Sun SPARC 4/380 Sun SunOS 4.1.3
716		/bin/cc
717		/usr/lang/acc
718		/usr/lang/CC
719		/usr/local/bin/gcc
720		/usr/ucb/cc
721
722		Linking fails with
723		/usr/local/bin/g++
724		because of multiply defined symbols.  These arise
725		because g++ generates inline C-style interfaces
726		to library functions like strchr(), but on this
727		system, the library also contains C-style functions
728		with the same name, so linking produces multiple
729		definitions, and failure.  Curiously, g++ 2.7.0 on
730		other systems, including Sun Solaris 2.x, does not
731		generate these interface functions, and so does not
732		cause problems there.
733
734		Compilation fails with
735		/usr/local/bin/lcc -A -A
736		because of a conflict in the definition of size_t
737		between /usr/include/sys/stdtypes.h and
738		/usr/local/include/lcc-3.4b/sparc-sun/stdlib.h.
739
740	Sun SPARC 20 Sun Solaris 2.3
741		/opt/SUNWspro/bin/cc
742		/opt/SUNWspro/bin/CC
743		/usr/local/bin/gcc
744		/usr/ucb/cc
745
746		Linking failed for
747		/usr/local/bin/g++
748		with MANY multiply-defined symbols (e.g. memchr in bibclean
749		and fndfil)
750
751		No problem on Solaris 2.4 with g++!
752
753		The reason that configure says
754			checking for strcspn... (cached) no
755			checking for strdup... (cached) no
756			checking for strspn... (cached) no
757			checking for strstr... (cached) no
758			checking for strtod... (cached) no
759			checking for strtol... (cached) no
760		is that it generates a test program with
761			char $ac_func();
762		as the prototype.  With C++, that is a separate
763		function that cannot be found in the library.  That is
764		also why LIBOBJS is being set incorrectly.
765
766		*** Need to check out g++ and lcc on this system ***
767		Build failed for
768		/usr/local/bin/lcc -A -A
769		with message
770		configure: error: can not run test program while cross compiling
771		This happens because configure uses -g, which blows
772		compilation because of unknown opcode ".stabd" errors
773		in assembler.
774
775		Can be fixed by manually changing configure line
776			test "${CFLAGS+set}" = set || CFLAGS="-g"
777		to
778			test "${CFLAGS+set}" = set || CFLAGS=""
779
780		There is another problem: STDC_HEADERS is not defined,
781		because a test program created by configure detects an
782		error in toupper().  This was traced to a bug in lcc's
783		ctype.h, and has been reported to the lcc-bugs list.
784		A manual patch to config.h solves the problem.
785
786===============================[The End]===============================
787