1#!/bin/make
2#
3# calc - arbitrary precision calculator
4#
5# Copyright (C) 1999-2018,2021  Landon Curt Noll
6#
7# SRC: Makefile.simple - non-GNU version
8#
9#	The "# SRC: ... - ..." comment line above indicates
10#	the origin of this file.
11#
12# IMPORTANT: Please see the section on Makefiles near the
13#	     bottom of the HOWTO.INSTALL file.
14#
15# Calc is open software; you can redistribute it and/or modify it under
16# the terms of version 2.1 of the GNU Lesser General Public License
17# as published by the Free Software Foundation.
18#
19# Calc is distributed in the hope that it will be useful, but WITHOUT
20# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
21# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
22# Public License for more details.
23#
24# A copy of version 2.1 of the GNU Lesser General Public License is
25# distributed with calc under the filename COPYING-LGPL.  You should have
26# received a copy with calc; if not, write to Free Software Foundation, Inc.
27# 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
28#
29# Under source code control:	1990/02/15 01:48:41
30# File existed as early as:	before 1990
31#
32# chongo <was here> /\oo/\	http://www.isthe.com/chongo/
33# Share and enjoy!  :-)	http://www.isthe.com/chongo/tech/comp/calc/
34#
35# calculator by David I. Bell with help/mods from others
36# Makefile by Landon Curt Noll
37
38# The shell used by this Makefile
39#
40# On some systems, /bin/sh is a rather reduced shell with
41# deprecated behavior.
42#
43# If your system has a up to date, bash shell, then
44# you may wish to use:
45#
46#	SHELL= /bin/sh
47#
48# On some systems such as macOS, the bash shell is very
49# far behind to the point where is cannot be depended on.
50# On such systems, the sh may be a much better alternative
51# shell for this Makefile to use:
52#
53#	SHELL= /bin/sh
54#
55SHELL= /bin/sh
56#SHELL= /bin/sh
57
58
59
60##############################################################################
61#-=-=-=-=-=-=-=-=- You may want to change some values below -=-=-=-=-=-=-=-=-#
62##############################################################################
63
64# PREFIX - Top level location for calc
65#
66# The PREFIX is often prepended to paths within calc and calc Makefiles.
67#
68# Starting with calc v2.13.0.1, nearly all Makefile places that used
69# /usr/local now use ${PREFIX}.  An exception is the olduninstall rule
70# and, of course, this section. :-)
71#
72# NOTE: The ${PREFIX} is not the same as ${T}.  The ${T} specifies
73#	a top level directory under which calc installs things.
74#	While usually ${T} is empty, it can be specific path
75#	as if calc where "chrooted" during an install.
76#	The ${PREFIX} value, during install, is a path between
77#	the top level ${T} install directory and the object
78#	such as an include file.
79#
80# NOTE: See also, ${T}, below.
81#
82# There are some paths that do NOT call under ${PREFIX}, such as
83# ${CALCPATH}, that include paths not under ${PREFIX}, but those
84# too are exceptions to this general rule.
85#
86# When in doubt, try:
87#
88#	PREFIX= /usr/local
89#
90PREFIX= /usr/local
91#PREFIX= /usr
92#PREFIX= /usr/global
93
94# CCBAN is given to ${CC} in order to control if banned.h is in effect.
95#
96# The banned.h attempts to ban the use of certain dangerous functions
97# that, if improperly used, could compromise the computational integrity
98# if calculations.
99#
100# In the case of calc, we are motivated in part by the desire for calc
101# to correctly calculate: even during extremely long calculations.
102#
103# If UNBAN is NOT defined, then calling certain functions
104# will result in a call to a non-existent function (link error).
105#
106# While we do NOT encourage defining UNBAN, there may be
107# a system / compiler environment where re-defining a
108# function may lead to a fatal compiler complication.
109# If that happens, consider compiling as:
110#
111#	make clobber all chk CCBAN=-DUNBAN
112#
113# as see if this is a work-a-round.
114#
115# If YOU discover a need for the -DUNBAN work-a-round, PLEASE tell us!
116# Please send us a bug report.  See the file:
117#
118#	BUGS
119#
120# or the URL:
121#
122#	http://www.isthe.com/chongo/tech/comp/calc/calc-bugrept.html
123#
124# for how to send us such a bug report.
125#
126CCBAN= -UUNBAN
127#CCBAN= -DUNBAN
128
129# Determine the type of terminal controls that you want to use
130#
131#	value		  meaning
132#	--------	  -------
133#	(nothing)	  let the Makefile guess at what you need
134#	-DUSE_TERMIOS	  use struct termios from <termios.h>
135#	-DUSE_TERMIO	  use struct termios from <termio.h>
136#	-DUSE_SGTTY	  use struct sgttyb from <sys/ioctl.h>
137#	-DUSE_NOTHING	  Windows system, don't use any of them
138#
139# Select TERMCONTROL= -DUSE_TERMIOS for DJGPP.
140#
141# If in doubt, leave TERMCONTROL empty.
142#
143TERMCONTROL=
144#TERMCONTROL= -DUSE_TERMIOS
145#TERMCONTROL= -DUSE_TERMIO
146#TERMCONTROL= -DUSE_SGTTY
147#TERMCONTROL= -DUSE_WIN32
148
149# If your system does not have a vsnprintf() function, you could be in trouble.
150#
151#	vsnprintf(string, size, format, ap)
152#
153# This function works like spnrintf except that the 4th arg is a va_list
154# strarg (or varargs) list.  Some old systems do not have vsnprintf().
155# If you do not have vsnprintf(), then calc will try snprintf() and hope
156# for the best.
157#
158# A similar problem occurs if your system does not have a vsnprintf()
159# function.  This function is like the vsnprintf() function except that
160# there is an extra second argument that controls the maximum size
161# string that is produced.
162#
163# If HAVE_VSNPRINTF is empty, this Makefile will run the have_stdvs.c and/or
164# have_varvs.c program to determine if vsnprintf() is supported.  If
165# HAVE_VSNPRINTF is set to -DDONT_HAVE_VSNPRINTF then calc will hope that
166# snprintf() will work.
167#
168# If in doubt, leave HAVE_VSNPRINTF empty.
169#
170HAVE_VSNPRINTF=
171#HAVE_VSNPRINTF= -DDONT_HAVE_VSNPRINTF
172
173# Determine the byte order of your machine
174#
175#    Big Endian:	Amdahl, 68k, Pyramid, Mips, Sparc, ...
176#    Little Endian:	Vax, 32k, Spim (Dec Mips), i386, i486, ...
177#
178# If in doubt, leave CALC_BYTE_ORDER empty.  This Makefile will attempt to
179# use BYTE_ORDER in <machine/endian.h> or it will attempt to run
180# the endian program.  If you get syntax errors when you compile,
181# try forcing the value to be -DBIG_ENDIAN and run the calc regression
182# tests. (see the README.FIRST file) If the calc regression tests fail, do
183# a make clobber and try -DCALC_LITTLE_ENDIAN.   If that fails, ask a wizard
184# for help.
185#
186# Select CALC_BYTE_ORDER= -DCALC_LITTLE_ENDIAN for DJGPP.
187#
188CALC_BYTE_ORDER=
189#CALC_BYTE_ORDER= -DBIG_ENDIAN
190#CALC_BYTE_ORDER= -DLITTLE_ENDIAN
191
192# Determine the number of bits in a byte
193#
194# If in doubt, leave CALC_CHARBIT empty.  This Makefile will run
195# the charbits program to determine the length.
196#
197# In order to avoid make brain damage in some systems, we avoid placing
198# a space after the ='s below.
199#
200# Select CALC_CHARBIT= 8 for DJGPP.
201#
202CALC_CHARBIT=
203#CALC_CHARBIT= 8
204
205# Determine the number of bits in a long
206#
207# If in doubt, leave LONG_BITS empty.  This Makefile will run
208# the longbits program to determine the length.
209#
210# In order to avoid make brain damage in some systems, we avoid placing
211# a space after the ='s below.
212#
213# Select LONG_BITS= 32 for DJGPP.
214#
215LONG_BITS=
216#LONG_BITS= 32
217#LONG_BITS= 64
218
219# Determine if we have the ANSI C fgetpos and fsetpos alternate interface
220# to the ftell() and fseek() (with whence set to SEEK_SET) functions.
221#
222# If HAVE_FPOS is empty, this Makefile will run the have_fpos program
223# to determine if there is are fgetpos and fsetpos functions.  If HAVE_FPOS
224# is set to -DHAVE_NO_FPOS, then calc will use ftell() and fseek().
225#
226# If in doubt, leave HAVE_FPOS empty and this Makefile will figure it out.
227#
228HAVE_FPOS=
229#HAVE_FPOS= -DHAVE_NO_FPOS
230
231# Determine if we have an __pos element of a file position (fpos_t) structure.
232#
233# If HAVE_FPOS_POS is empty, this Makefile will run the have_fpos_pos program
234# to determine if fpos_t has a __pos structure element.  If HAVE_FPOS_POS
235# is set to -DHAVE_NO_FPOS_POS, then calc assume there is no __pos element.
236#
237# Select HAVE_FPOS_POS= -DHAVE_NO_FPOS_POS for DJGPP.
238#
239# If in doubt, leave HAVE_FPOS_POS empty and this Makefile will figure it out.
240#
241HAVE_FPOS_POS=
242#HAVE_FPOS_POS= -DHAVE_NO_FPOS_POS
243
244# Determine the size of the __pos element in fpos_t, if it exists.
245#
246# If FPOS_POS_BITS is empty, then the Makefile will determine the size of
247# the file position value of the __pos element.
248#
249# If there is no __pos element in fpos_t (say because fpos_t is a scalar),
250# leave FPOS_POS_BITS blank.
251#
252# If in doubt, leave FPOS_POS_BITS empty and this Makefile will figure it out.
253#
254FPOS_POS_BITS=
255#FPOS_POS_BITS= 32
256#FPOS_POS_BITS= 64
257
258# Determine the size of a file position value.
259#
260# If FPOS_BITS is empty, then the Makefile will determine the size of
261# the file position value.
262#
263# Select FPOS_BITS= 32 for DJGPP.
264#
265# If in doubt, leave FPOS_BITS empty and this Makefile will figure it out.
266#
267FPOS_BITS=
268#FPOS_BITS= 32
269#FPOS_BITS= 64
270
271# Determine the size of the off_t file offset element
272#
273# If OFF_T_BITS is empty, then the Makefile will determine the size of
274# the file offset value.
275#
276# Select OFF_T_BITS= 32 for DJGPP.
277#
278# If in doubt, leave OFF_T_BITS empty and this Makefile will figure it out.
279#
280OFF_T_BITS=
281#OFF_T_BITS= 32
282#OFF_T_BITS= 64
283
284# Determine the size of the dev_t device value
285#
286# If DEV_BITS is empty, then the Makefile will determine the size of
287# the dev_t device value
288#
289# Select DEV_BITS= 32 for DJGPP.
290#
291# If in doubt, leave DEV_BITS empty and this Makefile will figure it out.
292#
293DEV_BITS=
294#DEV_BITS= 16
295#DEV_BITS= 32
296#DEV_BITS= 64
297
298# Determine the size of the ino_t device value
299#
300# If INODE_BITS is empty, then the Makefile will determine the size of
301# the ino_t inode value
302#
303# Select INODE_BITS= 32 for DJGPP.
304#
305# If in doubt, leave INODE_BITS empty and this Makefile will figure it out.
306#
307INODE_BITS=
308#INODE_BITS= 16
309#INODE_BITS= 32
310#INODE_BITS= 64
311
312# Determine if we have an off_t which one can perform arithmetic operations,
313# assignments and comparisons.  On some systems off_t is some sort of union
314# or struct.
315#
316# If HAVE_OFFSCL is empty, this Makefile will run the have_offscl program
317# to determine if off_t is a scalar.  If HAVE_OFFSCL is set to the value
318# -DOFF_T_NON_SCALAR when calc will assume that off_t some sort of
319# union or struct.
320#
321# If in doubt, leave HAVE_OFFSCL empty and this Makefile will figure it out.
322#
323HAVE_OFFSCL=
324#HAVE_OFFSCL= -DOFF_T_NON_SCALAR
325
326# Determine if we have an fpos_t which one can perform arithmetic operations,
327# assignments and comparisons.  On some systems fpos_t is some sort of union
328# or struct.  Some systems do not have an fpos_t and long is as a file
329# offset instead.
330#
331# If HAVE_POSSCL is empty, this Makefile will run the have_offscl program
332# to determine if off_t is a scalar, or if there is no off_t and long
333# (a scalar) should be used instead.  If HAVE_POSSCL is set to the value
334# -DFILEPOS_NON_SCALAR when calc will assume that fpos_t exists and is
335# some sort of union or struct.
336#
337# If in doubt, leave HAVE_POSSCL empty and this Makefile will figure it out.
338#
339HAVE_POSSCL=
340#HAVE_POSSCL= -DFILEPOS_NON_SCALAR
341
342# Determine if we have ANSI C const.
343#
344# If HAVE_CONST is empty, this Makefile will run the have_const program
345# to determine if const is supported.  If HAVE_CONST is set to -DHAVE_NO_CONST,
346# then calc will not use const.
347#
348# If in doubt, leave HAVE_CONST empty and this Makefile will figure it out.
349#
350HAVE_CONST=
351#HAVE_CONST= -DHAVE_NO_CONST
352
353# Determine if we have uid_t
354#
355# If HAVE_UID_T is empty, this Makefile will run the have_uid_t program
356# to determine if uid_t is supported.  If HAVE_UID_T is set to -DHAVE_NO_UID_T,
357# then calc will treat uid_t as an unsigned short.  This only matters if
358# $HOME is not set and calc must look up the home directory in /etc/passwd.
359#
360# If in doubt, leave HAVE_UID_T empty and this Makefile will figure it out.
361#
362HAVE_UID_T=
363#HAVE_UID_T= -DHAVE_NO_UID_T
364
365# Determine if we have a non-NULL user environment external:
366#
367#	extern char **environ;	/* user environment */
368#
369# If HAVE_ENVIRON is empty, this Makefile will run the have_environ program
370# to determine if environ exists and is non-NULL.  If HAVE_ENVIRON is set
371# to -DHAVE_NO_ENVIRON, then calc will assume there is no external environ
372# symbol.
373#
374# If in doubt, leave HAVE_ENVIRON empty and this Makefile will figure it out.
375#
376HAVE_ENVIRON=
377#HAVE_ENVIRON= -DHAVE_NO_ENVIRON
378
379# Determine if we have the arc4random_buf() function
380#
381# If HAVE_ARC4RANDOM is empty, this Makefile will run the have_arc4random
382# program to determine if arc4random_buf() function exists.  If
383# HAVE_ARC4RANDOM is set to -DHAVE_NO_ARC4RANDOM, then calc will assume
384# there is no arc4random_buf() function.
385#
386# If in doubt, leave HAVE_ARC4RANDOM empty and this Makefile will figure it out.
387#
388HAVE_ARC4RANDOM=
389#HAVE_ARC4RANDOM= -DHAVE_NO_ARC4RANDOM
390
391# Determine if we have memcpy(), memset() and strchr()
392#
393# If HAVE_NEWSTR is empty, this Makefile will run the have_newstr program
394# to determine if memcpy(), memset() and strchr() are supported.  If
395# HAVE_NEWSTR is set to -DHAVE_NO_NEWSTR, then calc will use bcopy() instead
396# of memcpy(), use bfill() instead of memset(), and use index() instead of
397# strchr().
398#
399# If in doubt, leave HAVE_NEWSTR empty and this Makefile will figure it out.
400#
401HAVE_NEWSTR=
402#HAVE_NEWSTR= -DHAVE_NO_NEWSTR
403
404# Determine if we have memmove()
405#
406# If HAVE_MEMMOVE is empty, this Makefile will run the have_memmv program
407# to determine if memmove() is supported.  If HAVE_MEMMOVE is set to
408# -DHAVE_NO_MEMMOVE, then calc will use internal functions to simulate
409# the memory move function that does correct overlapping memory moves.
410#
411# If in doubt, leave HAVE_MEMMOVE empty and this Makefile will figure it out.
412#
413HAVE_MEMMOVE=
414#HAVE_MEMMOVE= -DHAVE_NO_MEMMOVE
415
416# Determine if we have ustat()
417#
418# If HAVE_USTAT is empty, this Makefile will run the have_ustat program
419# to determine if ustat() is supported.  If HAVE_USTAT is set to
420# -DHAVE_NO_USTAT, then calc will use internal functions to simulate
421# the ustat() function that gets file system statistics.
422#
423# Select HAVE_USTAT= -DHAVE_NO_USTAT for DJGPP.
424#
425# If in doubt, leave HAVE_USTAT empty and this Makefile will figure it out.
426#
427HAVE_USTAT=
428#HAVE_USTAT= -DHAVE_NO_USTAT
429
430# Determine if we have getsid()
431#
432# If HAVE_GETSID is empty, this Makefile will run the have_getsid program
433# to determine if getsid() is supported.  If HAVE_GETSID is set to
434# -DHAVE_NO_GETSID, then calc will use internal functions to simulate
435# the getsid() function that gets session ID.
436#
437# Select HAVE_GETSID= -DHAVE_NO_GETSID for DJGPP.
438#
439# If in doubt, leave HAVE_GETSID empty and this Makefile will figure it out.
440#
441HAVE_GETSID=
442#HAVE_GETSID= -DHAVE_NO_GETSID
443
444# Determine if we have getpgid()
445#
446# If HAVE_GETPGID is empty, this Makefile will run the have_getpgid program
447# to determine if getpgid() is supported.  If HAVE_GETPGID is set to
448# -DHAVE_NO_GETPGID, then calc will use internal functions to simulate
449# the getpgid() function that sets the process group ID.
450#
451# Select HAVE_GETPGID= -DHAVE_NO_GETPGID for DJGPP.
452#
453# If in doubt, leave HAVE_GETPGID empty and this Makefile will figure it out.
454#
455HAVE_GETPGID=
456#HAVE_GETPGID= -DHAVE_NO_GETPGID
457
458# Determine if we have clock_gettime()
459#
460# If HAVE_GETTIME is empty, this Makefile will run the have_gettime program
461# to determine if clock_gettime() is supported.  If HAVE_GETTIME is set to
462# -DHAVE_NO_GETTIME, then calc will use internal functions to simulate
463# the clock_gettime() function.
464#
465# Select HAVE_GETTIME= -DHAVE_NO_GETTIME for DJGPP.
466#
467# If in doubt, leave HAVE_GETTIME empty and this Makefile will figure it out.
468#
469HAVE_GETTIME=
470#HAVE_GETTIME= -DHAVE_NO_GETTIME
471
472# Determine if we have getprid()
473#
474# If HAVE_GETPRID is empty, this Makefile will run the have_getprid program
475# to determine if getprid() is supported.  If HAVE_GETPRID is set to
476# -DHAVE_NO_GETPRID, then calc will use internal functions to simulate
477# the getprid() function.
478#
479# Select HAVE_GETPRID= -DHAVE_NO_GETPRID for DJGPP.
480#
481# If in doubt, leave HAVE_GETPRID empty and this Makefile will figure it out.
482#
483HAVE_GETPRID=
484#HAVE_GETPRID= -DHAVE_NO_GETPRID
485
486# Determine if we have the /dev/urandom
487#
488#    HAVE_URANDOM_H=		let the Makefile look for /dev/urandom
489#    HAVE_URANDOM_H= YES	assume that /dev/urandom exists
490#    HAVE_URANDOM_H= NO		assume that /dev/urandom does not exist
491#
492# Select HAVE_URANDOM_H= NO for DJGPP.
493#
494# When in doubt, leave HAVE_URANDOM_H empty.
495#
496HAVE_URANDOM_H=
497#HAVE_URANDOM_H= YES
498#HAVE_URANDOM_H= NO
499
500# Determine if we have getrusage()
501#
502# If HAVE_GETRUSAGE is empty, this Makefile will run the have_rusage program
503# to determine if getrusage() is supported.  If HAVE_GETRUSAGE is set to
504# -DHAVE_NO_GETRUSAGE, then calc will use internal functions to simulate
505# the getrusage() function.
506#
507# If in doubt, leave HAVE_GETRUSAGE empty and this Makefile will figure it out.
508#
509HAVE_GETRUSAGE=
510#HAVE_GETRUSAGE= -DHAVE_NO_GETRUSAGE
511
512# Determine if we have strdup()
513#
514# If HAVE_STRDUP is empty, this Makefile will run the have_strdup program
515# to determine if strdup() is supported.  If HAVE_STRDUP is set to
516# -DHAVE_NO_STRDUP, then calc will use internal functions to simulate
517# the strdup() function.
518#
519# If in doubt, leave HAVE_STRDUP empty and this Makefile will figure it out.
520#
521HAVE_STRDUP=
522#HAVE_STRDUP= -DHAVE_NO_STRDUP
523
524# Some architectures such as Sparc do not allow one to access 32 bit values
525# that are not aligned on a 32 bit boundary.
526#
527# The Dec Alpha running OSF/1 will produce alignment error messages when
528# align32.c tries to figure out if alignment is needed.  Use the
529# ALIGN32= -DMUST_ALIGN32 to force alignment and avoid such error messages.
530#
531# ALIGN32=		     let align32.c figure out if alignment is needed
532# ALIGN32= -DMUST_ALIGN32    force 32 bit alignment
533# ALIGN32= -UMUST_ALIGN32    allow non-alignment of 32 bit accesses
534#
535# Select ALIGN32= -UMUST_ALIGN32 for DJGPP.
536#
537# When in doubt, be safe and pick ALIGN32=-DMUST_ALIGN32.
538#
539ALIGN32=
540#ALIGN32= -DMUST_ALIGN32
541#ALIGN32= -UMUST_ALIGN32
542
543# Determine if we have the <stdlib.h> include file.
544#
545#    HAVE_STDLIB_H=		let the Makefile look for the include file
546#    HAVE_STDLIB_H= YES		assume that the include file exists
547#    HAVE_STDLIB_H= NO		assume that the include file does not exist
548#
549# Select HAVE_STDLIB_H= YES for DJGPP.
550#
551# When in doubt, leave HAVE_STDLIB_H empty.
552#
553HAVE_STDLIB_H=
554#HAVE_STDLIB_H= YES
555#HAVE_STDLIB_H= NO
556
557# Determine if we have the <string.h> include file.
558#
559#    HAVE_STRING_H=		let the Makefile look for the include file
560#    HAVE_STRING_H= YES		assume that the include file exists
561#    HAVE_STRING_H= NO		assume that the include file does not exist
562#
563# Select HAVE_STRING_H= YES for DJGPP.
564#
565# When in doubt, leave HAVE_STRING_H empty.
566#
567HAVE_STRING_H=
568#HAVE_STRING_H= YES
569#HAVE_STRING_H= NO
570
571# Determine if we have the <times.h> include file.
572#
573#    HAVE_TIMES_H=		let the Makefile look for the include file
574#    HAVE_TIMES_H= YES		assume that the include file exists
575#    HAVE_TIMES_H= NO		assume that the include file does not exist
576#
577# Select HAVE_TIMES_H= NO for DJGPP.
578#
579# When in doubt, leave HAVE_TIMES_H empty.
580#
581HAVE_TIMES_H=
582#HAVE_TIMES_H= YES
583#HAVE_TIMES_H= NO
584
585# Determine if we have the <sys/times.h> include file.
586#
587#    HAVE_SYS_TIMES_H=		let the Makefile look for the include file
588#    HAVE_SYS_TIMES_H= YES	assume that the include file exists
589#    HAVE_SYS_TIMES_H= NO	assume that the include file does not exist
590#
591# Select HAVE_SYS_TIMES_H= YES for DJGPP.
592#
593# When in doubt, leave HAVE_SYS_TIMES_H empty.
594#
595HAVE_SYS_TIMES_H=
596#HAVE_SYS_TIMES_H= YES
597#HAVE_SYS_TIMES_H= NO
598
599# Determine if we have the <time.h> include file.
600#
601#    HAVE_TIME_H=		let the Makefile look for the include file
602#    HAVE_TIME_H= YES		assume that the include file exists
603#    HAVE_TIME_H= NO		assume that the include file does not exist
604#
605# Select HAVE_TIME_H= YES for DJGPP.
606#
607# When in doubt, leave HAVE_TIME_H empty.
608#
609HAVE_TIME_H=
610#HAVE_TIME_H= YES
611#HAVE_TIME_H= NO
612
613# Determine if we have the <sys/time.h> include file.
614#
615#    HAVE_SYS_TIME_H=		let the Makefile look for the include file
616#    HAVE_SYS_TIME_H= YES	assume that the include file exists
617#    HAVE_SYS_TIME_H= NO	assume that the include file does not exist
618#
619# Select HAVE_SYS_TIME_H= YES for DJGPP.
620#
621# When in doubt, leave HAVE_SYS_TIME_H empty.
622#
623HAVE_SYS_TIME_H=
624#HAVE_SYS_TIME_H= YES
625#HAVE_SYS_TIME_H= NO
626
627# Determine if we have the <unistd.h> include file.
628#
629#    HAVE_UNISTD_H=		let the Makefile look for the include file
630#    HAVE_UNISTD_H= YES		assume that the include file exists
631#    HAVE_UNISTD_H= NO		assume that the include file does not exist
632#
633# Select HAVE_UNISTD_H= YES for DJGPP.
634#
635# When in doubt, leave HAVE_UNISTD_H empty.
636#
637HAVE_UNISTD_H=
638#HAVE_UNISTD_H= YES
639#HAVE_UNISTD_H= NO
640
641# Determine if we have the <limits.h> include file.
642#
643#    HAVE_LIMITS_H=		let the Makefile look for the include file
644#    HAVE_LIMITS_H= YES		assume that the include file exists
645#    HAVE_LIMITS_H= NO		assume that the include file does not exist
646#
647# Select HAVE_LIMITS_H= YES for DJGPP.
648#
649# When in doubt, leave HAVE_LIMITS_H empty.
650#
651HAVE_LIMITS_H=
652#HAVE_LIMITS_H= YES
653#HAVE_LIMITS_H= NO
654
655# Determine if our compiler allows the unused attribute
656#
657# If HAVE_UNUSED is empty, this Makefile will run the have_unused program
658# to determine if the unused attribute is supported.  If HAVE_UNUSED is set to
659# -DHAVE_NO_UNUSED, then the unused attribute will not be used.
660#
661# Select HAVE_UNUSED= for DJGPP.
662#
663# If in doubt, leave HAVE_UNUSED empty and this Makefile will figure it out.
664#
665HAVE_UNUSED=
666#HAVE_UNUSED= -DHAVE_NO_UNUSED
667
668# Determine if we allow use of "#pragma GCC poison func_name"
669#
670# If HAVE_PRAGMA_GCC_POSION is empty, then Makefile will run the
671# have_bprag program to determine if the "#pragma GCC poison func_name"
672# is supported.  If HAVE_PRAGMA_GCC_POSION is set to
673# -DHAVE_NO_PRAGMA_GCC_POSION. then the "#pragma GCC poison func_name"
674# is not used.
675#
676# If in doubt, leave HAVE_PRAGMA_GCC_POSION empty and this Makefile
677# will figure it out.
678#
679HAVE_PRAGMA_GCC_POSION=
680#HAVE_PRAGMA_GCC_POSION= -DHAVE_NO_PRAGMA_GCC_POSION
681
682# Determine if we have strlcpy()
683#
684# If HAVE_STRLCPY is empty, this Makefile will run the have_strlcpy program
685# to determine if strlcpy() is supported.  If HAVE_STRLCPY is set to
686# -DHAVE_NO_STRLCPY, then calc will use internal functions to simulate
687# the strlcpy() function.
688#
689# If in doubt, leave HAVE_STRLCPY empty and this Makefile will figure it out.
690#
691HAVE_STRLCPY=
692#HAVE_STRLCPY= -DHAVE_NO_STRLCPY
693
694# Determine if we have strlcat()
695#
696# If HAVE_STRLCAT is empty, this Makefile will run the have_strlcat program
697# to determine if strlcat() is supported.  If HAVE_STRLCAT is set to
698# -DHAVE_NO_STRLCAT, then calc will use internal functions to simulate
699# the strlcat() function.
700#
701# If in doubt, leave HAVE_STRLCAT empty and this Makefile will figure it out.
702#
703HAVE_STRLCAT=
704#HAVE_STRLCAT= -DHAVE_NO_STRLCAT
705
706# System include files
707#
708# ${INCDIR}		where the system include (.h) files are kept
709#
710# For DJGPP, select:
711#
712#	INCDIR= /dev/env/DJDIR/include
713#
714# If in doubt, for non-macOS hosts set:
715#
716#	INCDIR= /usr/include
717#
718# However, if you are on macOS then set:
719#
720#	INCDIR= ${PREFIX}/include
721
722# default INCDIR for non-macOS
723INCDIR= /usr/include
724#INCDIR= ${PREFIX}/include
725#INCDIR= /dev/env/DJDIR/include
726
727
728# Where to install calc related things
729#
730# ${BINDIR}		where to install calc binary files
731# ${LIBDIR}		where calc link library (*.a) files are installed
732# ${CALC_SHAREDIR}	where to install calc help, .cal, startup, config files
733# ${CALC_INCDIR}	where the calc include files are installed
734#
735# NOTE: The install rule prepends installation paths with ${T}, which
736#	by default is empty.  If ${T} is non-empty, then installation
737#	locations will be relative to the ${T} directory.
738#
739# NOTE: If you change LIBDIR to a non-standard location, you will need
740#	to make changes to your execution environment so that executables
741#	will search LIBDIR when they are resolving dynamic shared libraries.
742#
743#	On OS X, this means you need to export $DYLD_LIBRARY_PATH
744#	to include the LIBDIR path in the value.
745#
746#	On Linux and BSD, this means you need to export $LD_LIBRARY_PATH
747#	to include the LIBDIR path in the value.
748#
749#	You might be better off not changing LIBDIR in the first place.
750#
751# For DJGPP, select:
752#
753#	BINDIR= /dev/env/DJDIR/bin
754#	LIBDIR= /dev/env/DJDIR/lib
755#	CALC_SHAREDIR= /dev/env/DJDIR/share/calc
756#
757# If in doubt, for non-macOS hosts set:
758#
759#	BINDIR= /usr/bin
760#	LIBDIR= /usr/lib
761#	CALC_SHAREDIR= /usr/share/calc
762#
763# However, if you are on macOS then set:
764#
765#	BINDIR= ${PREFIX}/bin
766#	LIBDIR= ${PREFIX}/lib
767#	CALC_SHAREDIR= ${PREFIX}/share/calc
768#
769#	NOTE: Starting with macOS El Capitan OS X 10.11, root by default
770#	      could not mkdir under system locations, so macOS must now
771#	      use the ${PREFIX} tree.
772
773
774# default BINDIR for non-macOS
775BINDIR= /usr/bin
776#BINDIR= ${PREFIX}/bin
777#BINDIR= /dev/env/DJDIR/bin
778
779
780# default LIBDIR for non-macOS
781LIBDIR= /usr/lib
782#LIBDIR= ${PREFIX}/lib
783#LIBDIR= /dev/env/DJDIR/lib
784
785
786# default CALC_SHAREDIR for non-macOS
787CALC_SHAREDIR= /usr/share/calc
788#CALC_SHAREDIR= ${PREFIX}/lib/calc
789#CALC_SHAREDIR= /dev/env/DJDIR/share/calc
790
791
792# NOTE: Do not set CALC_INCDIR to /usr/include or ${PREFIX}/include!!!
793#	Always be sure that the CALC_INCDIR path ends in /calc to avoid
794#	conflicts with system or other application include files!!!
795#
796#CALC_INCDIR= ${PREFIX}/include/calc
797#CALC_INCDIR= /dev/env/DJDIR/include/calc
798CALC_INCDIR= ${INCDIR}/calc
799
800# By default, these values are based CALC_SHAREDIR, INCDIR, BINDIR
801# ---------------------------------------------------------------
802# ${HELPDIR}		where the help directory is installed
803# ${CUSTOMCALDIR}	where custom *.cal files are installed
804# ${CUSTOMHELPDIR}	where custom help files are installed
805# ${CUSTOMINCDIR}	where custom .h files are installed
806# ${SCRIPTDIR}		where calc shell scripts are installed
807#
808# NOTE: The install rule prepends installation paths with ${T}, which
809#	by default is empty.  If ${T} is non-empty, then installation
810#	locations will be relative to the ${T} directory.
811#
812# If in doubt, set:
813#
814#	HELPDIR= ${CALC_SHAREDIR}/help
815#	CALC_INCDIR= ${INCDIR}/calc
816#	CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
817#	CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
818#	CUSTOMINCDIR= ${CALC_INCDIR}/custom
819#	SCRIPTDIR= ${BINDIR}/cscript
820#
821HELPDIR= ${CALC_SHAREDIR}/help
822CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
823CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
824CUSTOMINCDIR= ${CALC_INCDIR}/custom
825SCRIPTDIR= ${BINDIR}/cscript
826
827# T - top level directory under which calc will be installed
828#
829# The calc install is performed under ${T}, the calc build is
830# performed under /.  The purpose for ${T} is to allow someone
831# to install calc somewhere other than into the system area.
832#
833# For example, if:
834#
835#     BINDIR= /usr/bin
836#     LIBDIR= /usr/lib
837#     CALC_SHAREDIR= /usr/share/calc
838#
839# and if:
840#
841#     T= /var/tmp/testing
842#
843# Then the installation locations will be:
844#
845#     calc binary files:	/var/tmp/testing/usr/bin
846#     calc link library:	/var/tmp/testing/usr/lib
847#     calc help, .cal ...:	/var/tmp/testing/usr/share/calc
848#     ... etc ...               /var/tmp/testing/...
849#
850# If ${T} is empty, calc is installed under /, which is the same
851# top of tree for which it was built.  If ${T} is non-empty, then
852# calc is installed under ${T}, as if one had to chroot under
853# ${T} for calc to operate.
854#
855# NOTE: The ${PREFIX} is not the same as ${T}.  The ${T} specifies
856#	a top level directory under which calc installs things.
857#	While usually ${T} is empty, it can be specific path
858#	as if calc where "chrooted" during an install.
859#	The ${PREFIX} value, during install, is a path between
860#	the top level ${T} install directory and the object
861#	such as an include file.
862#
863#	See ${PREFIX} above.
864#
865# If in doubt, use T=
866#
867T=
868
869# where man section 1 pages are installed
870#
871# Select MANDIR= /dev/env/DJDIR/man/man1 for DJGPP.
872#
873# Use MANDIR= to disable installation of the calc man (source) page.
874#
875# NOTE: man pages not installed by macOS must go under,
876# (according to MANPATH as found in /private/etc/man.conf):
877#
878#	MANDIR= ${PREFIX}/share/man/man1
879#
880#MANDIR=
881#MANDIR= ${PREFIX}/man/man1
882#MANDIR= /usr/man/man1
883#
884MANDIR= /usr/share/man/man1
885#MANDIR= /dev/env/DJDIR/man/man1
886#MANDIR= /usr/man/u_man/man1
887#MANDIR= /usr/contrib/man/man1
888
889# where cat (formatted man) pages are installed
890#
891# Select CATDIR= /dev/env/DJDIR/man/cat1 for DJGPP.
892#
893# Use CATDIR= to disable installation of the calc cat (formatted) page.
894#
895# NOTE: If CATDIR is non-empty, then one should have either the
896#	${NROFF} executable and/or the ${MANMAKE} executable.
897#
898CATDIR=
899#CATDIR= ${PREFIX}/man/cat1
900#CATDIR= ${PREFIX}/catman/cat1
901#CATDIR= /usr/man/cat1
902#CATDIR= /usr/share/man/cat1
903#CATDIR= /dev/env/DJDIR/man/cat1
904#CATDIR= /var/cache/man/cat1
905#CATDIR= /usr/man/u_man/cat1
906#CATDIR= /usr/contrib/man/cat1
907
908# extension to add on to the calc man page filename
909#
910# This is ignored if CATDIR is empty.
911#
912MANEXT= 1
913#MANEXT= l
914
915# extension to add on to the calc man page filename
916#
917# This is ignored if CATDIR is empty.
918#
919CATEXT= 1
920#CATEXT= 1.gz
921#CATEXT= 0
922#CATEXT= l
923
924# how to format a man page
925#
926# If CATDIR is non-empty, then
927#
928#     If NROFF is non-empty, then
929#
930#	  ${NROFF} ${NROFF_ARG} calc.1 > ${CATDIR}/calc.${CATEXT}
931#		   is used to build and install the cat page
932#
933#     else (NROFF is empty)
934#
935#	  ${MANMAKE} calc.1 ${CATDIR}
936#		     is used to build and install the cat page
937# else
938#
939#     The cat page is not built or installed
940#
941# Select NROFF= groff for DJGPP.
942#
943# If in doubt and you don't want to fool with man pages, set MANDIR
944# and CATDIR to empty and ignore the NROFF, NROFF_ARG and MANMAKE
945# lines below.
946#
947#NROFF= nroff
948NROFF=
949#NROFF= groff
950NROFF_ARG= -man
951#NROFF_ARG= -mandoc
952MANMAKE= ${PREFIX}/bin/manmake
953#MANMAKE= manmake
954MANMODE= 0444
955CATMODE= 0444
956
957# By default, custom builtin functions may only be executed if calc
958# is given the -C option.  This is because custom builtin functions
959# may invoke non-standard or non-portable code.  One may completely
960# disable custom builtin functions by not compiling any custom code
961#
962# ALLOW_CUSTOM= -DCUSTOM	# allow custom only if -C is given
963# ALLOW_CUSTOM=			# disable custom even if -C is given
964#
965# If in doubt, use ALLOW_CUSTOM= -DCUSTOM
966#
967ALLOW_CUSTOM= -DCUSTOM
968#ALLOW_CUSTOM=
969
970# If the $CALCPATH environment variable is not defined, then the following
971# path will be searched for calc resource file routines.
972#
973# Select CALCPATH= .;./cal;~/.cal;${CALC_SHAREDIR};${CUSTOMCALDIR} for DJGPP.
974#
975CALCPATH= .:./cal:~/.cal:${T}${CALC_SHAREDIR}:${T}${CUSTOMCALDIR}
976
977# If the $CALCRC environment variable is not defined, then the following
978# path will be searched for calc resource files.
979#
980# Select CALCRC= ./.calcinit:~/.calcrc:${CALC_SHAREDIR}/startup for DJGPP.
981#
982CALCRC= ./.calcinit:~/.calcrc:${CALC_SHAREDIR}/startup
983#CALCRC= ./.calcinit;~/.calcrc;${CALC_SHAREDIR}/startup
984
985# Determine of the GNU-readline facility will be used instead of the
986# builtin calc binding method.
987#
988# USE_READLINE=			    Do not use GNU-readline, use calc bindings
989# USE_READLINE= -DUSE_READLINE	    Use GNU-readline, do not use calc bindings
990#
991# NOTE: If you select the 'USE_READLINE= -DUSE_READLINE' mode, you must set:
992#
993#	READLINE_LIB		The flags needed to link in the readline
994#				and history link libraries
995#	READLINE_EXTRAS		Flags and libs needed to use the readline
996#				and history link libraries
997#	READLINE_INCLUDE	Where the readline include files reside
998#				(leave blank if they are /usr/include/readline)
999#
1000# NOTE: The GNU-readline code is not shipped with calc.  You must have
1001#	the appropriate headers and link libs installed on your system in
1002#	order to use it.
1003#
1004# If in doubt, set USE_READLINE, READLINE_LIB and READLINE_INCLUDE to nothing.
1005#
1006#USE_READLINE=
1007USE_READLINE= -DUSE_READLINE
1008#
1009#READLINE_LIB=
1010#READLINE_EXTRAS=
1011#
1012READLINE_LIB= -lreadline
1013READLINE_EXTRAS= -lhistory -lncurses
1014#
1015#READLINE_LIB= -L/usr/gnu/lib -lreadline
1016#READLINE_EXTRAS= -lhistory -lncurses
1017#
1018#READLINE_LIB= -L${PREFIX}/lib -lreadline
1019#READLINE_EXTRAS= -lhistory -lncurses
1020#
1021# For Apple OS X: install fink from http://fink.sourceforge.net
1022#		  and then do a 'fink install readline' and then use:
1023#
1024#READLINE_LIB= -L/sw/lib -lreadline
1025#READLINE_EXTRAS= -lhistory -lncurses
1026#
1027# For Apple OS X: install HomeBrew and then:
1028#
1029#	brew install readline
1030#
1031# and use:
1032#
1033#READLINE_LIB= -L${PREFIX}/opt/readline/lib -lreadline
1034#READLINE_EXTRAS= -lhistory -lncurses
1035#
1036READLINE_INCLUDE=
1037#READLINE_INCLUDE= -I/usr/gnu/include
1038#READLINE_INCLUDE= -I${PREFIX}/include
1039
1040
1041# If $PAGER is not set, use this program to display a help file
1042#
1043# Select CALCPAGER= less.exe -ci for DJGPP.
1044#
1045#CALCPAGER= more
1046#CALCPAGER= pg
1047#CALCPAGER= cat
1048CALCPAGER= less
1049#CALCPAGER= less.exe -ci
1050
1051# Debug/Optimize options for ${CC} and ${LCC}
1052#
1053# Select DEBUG= -O2 -gstabs+ -DWINDOZ for DJGPP.
1054#
1055#DEBUG=
1056#DEBUG= -g
1057#DEBUG= -g3
1058#
1059#DEBUG= -O
1060#DEBUG= -O -g
1061#DEBUG= -O -g3
1062#
1063#DEBUG= -O1
1064#DEBUG= -O1 -g
1065#DEBUG= -O1 -g3
1066#
1067#DEBUG= -O2
1068#DEBUG= -O2 -g
1069#DEBUG= -O2 -g3
1070#DEBUG= -O2 -ipa
1071#DEBUG= -O2 -g3 -ipa
1072#
1073#DEBUG= -O3
1074#DEBUG= -O3 -g
1075DEBUG= -O3 -g3
1076#DEBUG= -O3 -ipa
1077#DEBUG= -O3 -g3 -ipa
1078
1079# Some systems require one to use ranlib to add a symbol table to
1080# a *.a link library.  Set RANLIB to the utility that performs this
1081# action.  Set RANLIB to : if your system does not need such a utility.
1082#
1083RANLIB=ranlib
1084#RANLIB=:
1085
1086# Normally certain files depend on the Makefile.  If the Makefile is
1087# changed, then certain steps should be redone.  If MAKE_FILE is
1088# set to Makefile, then these files will depend on Makefile.  If
1089# MAKE_FILE is empty, then they won't.
1090#
1091# If in doubt, set MAKE_FILE to Makefile
1092#
1093MAKE_FILE= Makefile
1094
1095# Local file that is included just prior to the first rule,
1096# that allows one to override any values set in this Makefile.
1097#
1098LOC_MKF= Makefile.local
1099
1100# If you do not wish to use purify, set PURIFY to an empty string.
1101#
1102# If in doubt, use PURIFY=
1103#
1104#PURIFY= purify
1105#PURIFY= purify -m71-engine
1106#PURIFY= purify -logfile=pure.out
1107#PURIFY= purify -m71-engine -logfile=pure.out
1108PURIFY=
1109
1110# If you want to use a debugging link library such as a malloc debug link
1111# library, or need to add special ld flags after the calc link libraries
1112# are included, set ${LD_DEBUG} below.
1113#
1114# If in doubt, set LD_DEBUG to empty.
1115#
1116#LD_DEBUG= -lmalloc_cv
1117LD_DEBUG=
1118
1119# When doing a:
1120#
1121#	make check
1122#	make chk
1123#	make debug
1124#
1125# the ${CALC_ENV} is used to supply the proper environment variables
1126# to calc.  Most people will simply need 'CALCPATH=./cal' to ensure
1127# that these debug rules will only use calc resource files under the
1128# local source directory.
1129#
1130# If in doubt, use:
1131#
1132#	CALC_ENV= CALCPATH=./cal LD_LIBRARY_PATH=.:./custom DYLD_LIBRARY_PATH=.
1133#
1134CALC_ENV= CALCPATH=./cal LD_LIBRARY_PATH=. DYLD_LIBRARY_PATH=. CALCHELP=./help \
1135	  CALCCUSTOMHELP=./custom
1136
1137# Some out of date operating systems require/want an executable to
1138# end with a certain file extension.  Some compiler systems such as
1139# Windows build calc as calc.exe.  The EXT variable is used to denote
1140# the extension required by such.  Note that Cygwin requires EXT to be
1141# the same as Linux/Un*x/GNU, even though it runs under Windows.
1142#
1143# EXT=				# normal Un*x / Linux / GNU/Linux / Cygwin
1144# EXT=.exe			# Windows
1145#
1146# If in doubt, use EXT=
1147#
1148EXT=
1149#EXT=.exe
1150
1151# The default calc versions
1152#
1153VERSION= 2.14.0.14
1154
1155# Names of shared libraries with versions
1156#
1157LIB_EXT= .so
1158LIB_EXT_VERSION= ${LIB_EXT}.${VERSION}
1159
1160# standard utilities used during make
1161#
1162AR= ar
1163AWK= awk
1164CAT= cat
1165CHMOD= chmod
1166CMP= cmp
1167CO= co
1168COL= col
1169CP= cp
1170CTAGS= ctags
1171DATE= date
1172DIFF= diff
1173FMT= fmt
1174GREP= egrep
1175HOSTNAME= hostname
1176LANG= C
1177LDCONFIG= ldconfig
1178LN= ln
1179LS= ls
1180MAKE= make
1181MAKEDEPEND= makedepend
1182MKDIR= mkdir
1183MV= mv
1184PWDCMD= pwd
1185RM= rm
1186RMDIR= rmdir
1187SED= sed
1188SORT= sort
1189SPLINT= splint
1190SPLINT_OPTS=
1191STRIP= strip
1192TEE= tee
1193TAIL= tail
1194TOUCH= touch
1195TRUE= true
1196UNAME= uname
1197XARGS= xargs
1198
1199# NOTE: On some shells, echo is a builtin that does
1200#	not understand -n, so we call /bin/echo -n
1201#	directly to get around such shells.
1202#
1203ECHON= /bin/echo -n
1204
1205# Extra compiling and linking flags
1206#
1207# EXTRA_CFLAGS are flags given to ${CC} when compiling C files
1208# EXTRA_LDFLAGS are flags given to ${CC} when linking programs
1209#
1210# Both CFLAGS and LDFLAGS are left blank in this Makefile by
1211# default so that users may use them on the make command line
1212# to always set the way that C is compiled and files are linked
1213# respectively.  For example:
1214#
1215#	make all EXTRA_CFLAGS="-DMAGIC" EXTRA_LDFLAGS="-lmagic"
1216#
1217# NOTE: These should be left blank in this Makefile to make it
1218#       easier to add stuff on the command line.  If you want to
1219#	to change the way calc is compiled by this Makefile, change
1220#	the appropriate host target section below or a flag above.
1221#
1222EXTRA_CFLAGS=
1223EXTRA_LDFLAGS=
1224
1225# Architecture compile flags
1226#
1227# The ARCH_CFLAGS are ${CC} when compiling C files. They follow
1228# CCMISC and precede EXTRA_CFLAGS.
1229#
1230ARCH_CFLAGS=
1231#ARCH_CFLAGS= -march=native
1232
1233# COMMON_CFLAGS are the common ${CC} flags used for all programs, both
1234#	    intermediate and final calc and calc related programs
1235#
1236COMMON_CFLAGS= -DCALC_SRC ${ALLOW_CUSTOM} ${CCWARN} \
1237    ${CCMISC} ${ARCH_CFLAGS} ${EXTRA_CFLAGS}
1238
1239# COMMON_LDFLAGS are the common flags used for linking all programs, both
1240#	     intermediate and final calc and calc related programs
1241#
1242COMMON_LDFLAGS= ${EXTRA_LDFLAGS}
1243
1244###################################################
1245# End skipping lines for the custom/Makefile      #
1246#						  #
1247# The lines in section are NOT used by the lower  #
1248# level custom/Makefile's "include ../Makefile".  #
1249#						  #
1250# The section starts with the next line that has  #
1251# a line that starts with '# Begin skipping ..'.  #
1252###################################################
1253# include start from top Makefile - keep this line
1254######################################################
1255# NOTE: Start of section from the middle of Makefile #
1256#						     #
1257# These lines are shared in common with the lower    #
1258# custom/Makefile. That is, until the comment line   #
1259# that starts with '# NOTE: End of section ..' line, #
1260# these Makefile lines are used in BOTH Makefiles.   #
1261######################################################
1262
1263##############################################################################
1264#-=-=-=-=-=- host target section - targets that override defaults -=-=-=-=-=-#
1265##############################################################################
1266
1267# Common values set in targets
1268#
1269# BLD_TYPE determines if calc is built with static and/or dynamic libs.
1270#	       Set this value to one of:
1271#
1272#	BLD_TYPE= calc-dynamic-only
1273#	BLD_TYPE= calc-static-only
1274#
1275# CC_SHARE are flags given to ${CC} to build .o files suitable for shared libs
1276# DEFAULT_LIB_INSTALL_PATH is where calc programs look for calc shared libs
1277# LD_SHARE are common flags given to ${CC} to link with shared libraries
1278# LIBCALC_SHLIB are flags given to ${CC} to build libcalc shared libraries
1279# LIBCUSTCALC_SHLIB are flags given to ${CC} to build libcustcalc shared lib
1280#
1281#	NOTE: The above 5 values are unused if BLD_TYPE= calc-static-only
1282#
1283# CC_STATIC are flags given to ${CC} to build .o files suitable for static libs
1284# LD_STATIC are common flags given to ${CC} to link with static libraries
1285# LIBCALC_STATIC are flags given to ${CC} to build libcalc static libraries
1286# LIBCUSTCALC_STATIC are flags given to ${CC} to build libcustcalc static lib
1287#
1288#	NOTE: The above 4 values are unused if BLD_TYPE= calc-dynamic-only
1289#
1290# CCOPT are flags given to ${CC} for optimization
1291# CCWARN are flags given to ${CC} for warning message control
1292#
1293# The following are given to ${CC}:
1294#
1295#	WNO_IMPLICT
1296#	WNO_ERROR_LONG_LONG
1297#	WNO_LONG_LONG
1298#
1299# when compiling special .o files that may need special compile options:
1300#
1301#	NOTE: These flags simply turn off certain compiler warnings,
1302#	      which is useful only when CCWERR is set to -Werror.
1303#
1304#	NOTE: If your compiler does not have these -Wno files, just
1305#	      set these variables to nothing as in:
1306#
1307#		WNO_IMPLICT=
1308#		WNO_ERROR_LONG_LONG=
1309#		WNO_LONG_LONG=
1310#
1311# CCWERR are flags given to ${CC} to make warnings fatal errors
1312#	NOTE: CCWERR is only set in development Makefiles and must only be
1313#	      used with ${CC}, not ${LCC}.  If you do not want the compiler
1314#	      to abort on warnings, then leave CCWERR blank.
1315# CCMISC are misc flags given to ${CC}
1316#
1317# CCBAN is given to ${CC} in order to control if banned.h is in effect.
1318#	NOTE: See where CCBAN is defined above for details.
1319#
1320# LCC is how the C compiler is invoked on locally executed intermediate programs
1321# CC is how the C compiler is invoked (with an optional Purify)
1322#
1323# Specific target overrides or modifications to default values
1324
1325##########################################################################
1326# NOTE: If your target is not supported below and the default target	 #
1327#	is not suitable for your needs, please send to the:		 #
1328#									 #
1329#		calc-contrib at asthe dot com				 #
1330#									 #
1331#	Email address an "ifeq ($(target),YOUR_TARGET_NAME)" ... "endif" #
1332#	set of lines so that we can consider them for the next release.  #
1333##########################################################################
1334
1335#
1336BLD_TYPE= calc-static-only
1337#
1338CC_SHARE= -fPIC
1339DEFAULT_LIB_INSTALL_PATH= ${PWD}:/lib:/usr/lib:${LIBDIR}:${PREFIX}/lib
1340LD_SHARE= "-Wl,-rpath,${DEFAULT_LIB_INSTALL_PATH}" \
1341    "-Wl,-rpath-link,${DEFAULT_LIB_INSTALL_PATH}"
1342LIBCALC_SHLIB= -shared "-Wl,-soname,libcalc${LIB_EXT_VERSION}"
1343LIBCUSTCALC_SHLIB= -shared "-Wl,-soname,libcustcalc${LIB_EXT_VERSION}"
1344#
1345CC_STATIC=
1346LD_STATIC=
1347LIBCALC_STATIC=
1348LIBCUSTCALC_STATIC=
1349#
1350#CCWARN= -Wall
1351CCWARN= -Wall -Wextra -pedantic
1352WNO_IMPLICT= -Wno-implicit
1353WNO_ERROR_LONG_LONG= -Wno-error=long-long
1354WNO_LONG_LONG= -Wno-long-long
1355CCWERR=
1356CCOPT= ${DEBUG}
1357CCMISC=
1358#
1359LCC= cc
1360CC= ${PURIFY} ${LCC} ${CCWERR}
1361#
1362# The simple makefile forces the use of static ${CC} flags
1363#
1364# ICFLAGS are given to ${CC} for intermediate programs used to help compile calc
1365# CFLAGS are given to ${CC} for calc programs other than intermediate programs
1366# ILDFLAGS for ${CC} in linking intermediate programs used to help compile calc
1367# LDFLAGS for ${CC} in linking calc programs other than intermediate programs
1368#
1369ICFLAGS= ${COMMON_CFLAGS} ${CCBAN} ${CC_STATIC}
1370CFLAGS= ${ICFLAGS} ${CCOPT}
1371#
1372ILDFLAGS= ${COMMON_LDFLAGS} ${LD_STATIC}
1373LDFLAGS= ${LD_DEBUG} ${ILDFLAGS} ${LIBCALC_STATIC} ${LIBCUSTCALC_STATIC}
1374#
1375
1376#######################################################################
1377#-=-=-=-=-=- end of target section - only make rules below -=-=-=-=-=-#
1378#######################################################################
1379
1380######################################################
1381# NOTE: End of section from the middle of Makefile   #
1382#						     #
1383# These lines are shared in common with the lower    #
1384# custom/Makefile. That is, starting with the line   #
1385# that starts with '# NOTE: End of section ..' line, #
1386# these Makefile lines are used in BOTH Makefiles.   #
1387######################################################
1388# include end from top Makefile - keep this line
1389
1390# end of host target cut - Do not remove this line
1391
1392##########################################################################
1393#=-=-=-=-=- Be careful if you change something below this line -=-=-=-=-=#
1394##########################################################################
1395
1396# Makefile debug
1397#
1398# Q=@	do not echo internal Makefile actions (quiet mode)
1399# Q=	echo internal Makefile actions (debug / verbose mode)
1400#
1401# H=@:	do not report hsrc file formation progress
1402# H=@	do echo hsrc file formation progress
1403#
1404# S= >/dev/null 2>&1	silence ${CC} output during hsrc file formation
1405# S=			full ${CC} output during hsrc file formation
1406#
1407# E= 2>/dev/null	silence command stderr during hsrc file formation
1408# E=			full command stderr during hsrc file formation
1409#
1410# V=@:	do not echo debug statements (quiet mode)
1411# V=@	do echo debug statements (debug / verbose mode)
1412#
1413#Q=
1414Q=@
1415#
1416S= >/dev/null 2>&1
1417#S=
1418#
1419E= 2>/dev/null
1420#E=
1421#
1422#H=@:
1423H=@
1424#
1425V=@:
1426#V=@
1427
1428# the source files which are built into a math link library
1429#
1430# There MUST be a .o for every .c in LIBOBJS
1431#
1432LIBSRC= addop.c assocfunc.c blkcpy.c block.c byteswap.c \
1433	codegen.c comfunc.c commath.c config.c const.c custom.c \
1434	file.c func.c hash.c help.c hist.c input.c jump.c label.c \
1435	lib_calc.c lib_util.c listfunc.c matfunc.c math_error.c \
1436	obj.c opcodes.c pix.c poly.c prime.c qfunc.c qio.c \
1437	qmath.c qmod.c qtrans.c quickhash.c seed.c sha1.c size.c \
1438	str.c strl.c symbol.c token.c value.c version.c zfunc.c zio.c \
1439	zmath.c zmod.c zmul.c zprime.c zrand.c zrandom.c
1440
1441# the object files which are built into a math link library
1442#
1443# There MUST be a .o for every .c in LIBSRC plus calcerr.o
1444# which is built via this Makefile.
1445#
1446LIBOBJS= addop.o assocfunc.o blkcpy.o block.o byteswap.o calcerr.o \
1447	codegen.o comfunc.o commath.o config.o const.o custom.o \
1448	file.o func.o hash.o help.o hist.o input.o jump.o label.o \
1449	lib_calc.o lib_util.o listfunc.o matfunc.o math_error.o \
1450	obj.o opcodes.o pix.o poly.o prime.o qfunc.o qio.o \
1451	qmath.o qmod.o qtrans.o quickhash.o seed.o sha1.o size.o \
1452	str.o strl.o symbol.o token.o value.o version.o zfunc.o zio.o \
1453	zmath.o zmod.o zmul.o zprime.o zrand.o zrandom.o
1454
1455# the calculator source files
1456#
1457# There MUST be a .c for every .o in CALCOBJS.
1458#
1459CALCSRC= calc.c
1460
1461# we build these .o files for calc
1462#
1463# There MUST be a .o for every .c in CALCSRC.
1464#
1465CALCOBJS= calc.o
1466
1467# these .h files are needed to build the math link library
1468#
1469LIB_H_SRC= alloc.h banned.h blkcpy.h block.h byteswap.h calc.h cmath.h \
1470	config.h custom.h decl.h file.h func.h hash.h hist.h jump.h \
1471	label.h lib_util.h lib_calc.h nametype.h \
1472	opcodes.h prime.h qmath.h sha1.h str.h strl.h \
1473	symbol.h token.h value.h zmath.h zrand.h zrandom.h
1474
1475# we build these .h files during the make
1476#
1477BUILD_H_SRC= align32.h args.h calcerr.h conf.h endian_calc.h \
1478	fposval.h have_ban_pragma.h have_const.h have_fpos.h \
1479	have_fpos_pos.h have_getpgid.h have_getprid.h have_getsid.h \
1480	have_gettime.h have_memmv.h have_newstr.h have_offscl.h \
1481	have_posscl.h have_rusage.h have_stdlib.h have_strdup.h \
1482	have_string.h have_strlcat.h have_strlcpy.h have_times.h \
1483	have_uid_t.h have_unistd.h have_unused.h have_urandom.h \
1484	have_ustat.h longbits.h terminal.h have_environ.h \
1485	have_arc4random.h have_limits.h charbit.h
1486
1487# we build these .c files during the make
1488#
1489BUILD_C_SRC= calcerr.c
1490
1491# these .c files may be used in the process of building BUILD_H_SRC
1492#
1493# There MUST be a .c for every .o in UTIL_OBJS.
1494#
1495UTIL_C_SRC= align32.c endian.c longbits.c have_newstr.c have_uid_t.c \
1496	have_const.c have_stdvs.c have_varvs.c fposval.c have_fpos.c \
1497	have_fpos_pos.c have_offscl.c have_posscl.c have_memmv.c \
1498	have_ustat.c have_getsid.c have_getpgid.c have_environ.c \
1499	have_gettime.c have_getprid.c have_rusage.c have_strdup.c \
1500	have_unused.c have_ban_pragma.c have_strlcpy.c have_strlcat.c \
1501	have_arc4random.c charbit.c
1502
1503# these awk and sed tools are used in the process of building BUILD_H_SRC
1504# and BUILD_C_SRC
1505#
1506UTIL_MISC_SRC= calcerr_h.sed calcerr_h.awk calcerr_c.sed calcerr_c.awk \
1507	calcerr.tbl check.awk win32.mkdef fposval.h.def
1508
1509# these .o files may get built in the process of building BUILD_H_SRC
1510#
1511# There MUST be a .o for every .c in UTIL_C_SRC.
1512#
1513UTIL_OBJS= endian.o longbits.o have_newstr.o have_uid_t.o \
1514	have_const.o fposval.o have_fpos.o have_fpos_pos.o \
1515	try_strarg.o have_stdvs.o have_varvs.o have_posscl.o have_memmv.o \
1516	have_ustat.o have_getsid.o have_getpgid.o have_environ.o \
1517	have_gettime.o have_getprid.o ver_calc.o have_rusage.o have_strdup.o \
1518	have_unused.o have_ban_pragma.o have_strlcpy.o have_strlcat.o \
1519	have_arc4random.o charbit.o
1520
1521# these temp files may be created (and removed) during the build of BUILD_C_SRC
1522#
1523UTIL_TMP= ll_tmp fpos_tmp fposval_tmp const_tmp uid_tmp newstr_tmp vs_tmp \
1524	memmv_tmp offscl_tmp posscl_tmp newstr_tmp \
1525	getsid_tmp gettime_tmp getprid_tmp rusage_tmp strdup_tmp
1526
1527# these utility executables may be created in the process of
1528# building the BUILD_H_SRC file set
1529#
1530UTIL_PROGS= align32${EXT} fposval${EXT} have_uid_t${EXT} have_const${EXT} \
1531	endian${EXT} longbits${EXT} have_newstr${EXT} have_stdvs${EXT} \
1532	have_varvs${EXT} have_ustat${EXT} have_getsid${EXT} \
1533	have_getpgid${EXT} have_gettime${EXT} have_getprid${EXT} \
1534	ver_calc${EXT} have_strdup${EXT} have_environ{EXT} \
1535	have_unused${EXT} have_fpos${EXT} have_fpos_pos${EXT} \
1536	have_offscl${EXT} have_rusage${EXT} have_ban_pragma${EXT} \
1537	have_strlcpy${EXT} have_strlcat${EXT} have_arc4random${EXT} \
1538	charbit${EXT}
1539
1540# these utility files and scripts may be created in the process of building
1541# the BUILD_H_SRC file set
1542#
1543UTIL_FILES= have_args.sh
1544
1545# Any .h files that are needed to compile sample code.
1546#
1547SAMPLE_H_SRC=
1548
1549# Any .c files that are needed to compile sample code.
1550#
1551# There MUST be a .c in SAMPLE_C_SRC for every .o in SAMPLE_OBJ.
1552#
1553SAMPLE_C_SRC= sample_many.c sample_rand.c
1554
1555# Any .o files that are needed to compile sample code.
1556#
1557# There MUST be a .c in SAMPLE_C_SRC for every .o in SAMPLE_OBJ.
1558#
1559SAMPLE_OBJ= sample_many.o sample_rand.o
1560
1561# The complete list of Makefile vars passed down to custom/Makefile.
1562#
1563CUSTOM_PASSDOWN=  \
1564    ALLOW_CUSTOM="${ALLOW_CUSTOM}" \
1565    AR=${AR} \
1566    ARCH_CFLAGS=${ARCH_CFLAGS} \
1567    AWK=${AWK} \
1568    BINDIR="${BINDIR}" \
1569    BLD_TYPE="${BLD_TYPE}" \
1570    CALC_INCDIR="${CALC_INCDIR}" \
1571    CALC_SHAREDIR="${CALC_SHAREDIR}" \
1572    CAT=${CAT} \
1573    CC="${CC}" \
1574    CCBAN="${CCBAN}" \
1575    CCERR="${CCERR}" \
1576    CCMISC="${CCMISC}" \
1577    CCOPT="${CCOPT}" \
1578    CCWARN="${CCWARN}" \
1579    CC_SHARE="${CC_SHARE}" \
1580    CFLAGS="${CFLAGS} -I.." \
1581    CHMOD=${CHMOD} \
1582    CMP=${CMP} \
1583    CO=${CO} \
1584    COMMON_ADD="${COMMON_ADD}" \
1585    COMMON_CFLAGS="${COMMON_CFLAGS} -I.." \
1586    COMMON_LDFLAGS="${COMMON_LDFLAGS}" \
1587    CP=${CP} \
1588    CUSTOMCALDIR="${CUSTOMCALDIR}" \
1589    CUSTOMHELPDIR="${CUSTOMHELPDIR}" \
1590    CUSTOMINCDIR="${CUSTOMINCDIR}" \
1591    DEBUG="${DEBUG}" \
1592    DEFAULT_LIB_INSTALL_PATH="${DEFAULT_LIB_INSTALL_PATH}" \
1593    DIFF="${DIFF}" \
1594    E="${E}" \
1595    FMT=${FMT} \
1596    GREP=${GREP} \
1597    H="${H}" \
1598    HELPDIR="${HELPDIR}" \
1599    ICFLAGS="${ICFLAGS} -I.." \
1600    ILDFLAGS="${ILDFLAGS}" \
1601    INCDIR="${INCDIR}" \
1602    LANG=${LANG} \
1603    LCC="${LCC}" \
1604    LDCONFIG=${LDCONFIG} \
1605    LDFLAGS="${LDFLAGS}" \
1606    LD_SHARE="${LD_SHARE}" \
1607    LIBCUSTCALC_SHLIB="${LIBCUSTCALC_SHLIB}" \
1608    LIBDIR="${LIBDIR}" \
1609    LN=${LN} \
1610    LS=${LS} \
1611    MAKE=${MAKE} \
1612    MAKEDEPEND=${MAKEDEPEND} \
1613    MAKE_FILE=Makefile \
1614    MKDIR=${MKDIR} \
1615    MV=${MV} \
1616    PREFIX="${PREFIX}" \
1617    PURIFY="${PURIFY}" \
1618    Q="${Q}" \
1619    RANLIB="${RANLIB}" \
1620    RM=${RM} \
1621    RMDIR=${RMDIR} \
1622    S="${S}" \
1623    SCRIPTDIR="${SCRIPTDIR}" \
1624    SED=${SED} \
1625    SHELL=${SHELL} \
1626    SORT=${SORT} \
1627    T=${T} \
1628    TAIL=${TAIL} \
1629    TOUCH=${TOUCH} \
1630    TRUE=${TRUE} \
1631    V=${V} \
1632    VERSION=${VERSION} \
1633    WNO_IMPLICT=${WNO_IMPLICT} \
1634    WNO_ERROR_LONG_LONG=${WNO_ERROR_LONG_LONG} \
1635    WNO_LONG_LONG=${WNO_LONG_LONG} \
1636    target=${target}
1637
1638# The complete list of Makefile vars passed down to help/Makefile.
1639#
1640HELP_PASSDOWN= \
1641    AR=${AR} \
1642    BINDIR="${BINDIR}" \
1643    CALC_INCDIR="${CALC_INCDIR}" \
1644    CALC_SHAREDIR="${CALC_SHAREDIR}" \
1645    CAT=${CAT} \
1646    CFLAGS="${CFLAGS}" \
1647    CHMOD=${CHMOD} \
1648    CMP=${CMP} \
1649    CO=${CO} \
1650    COMMON_ADD="${COMMON_ADD}" \
1651    COMMON_CFLAGS="${COMMON_CFLAGS}" \
1652    COMMON_LDFLAGS="${COMMON_LDFLAGS}" \
1653    CP=${CP} \
1654    E="${E}" \
1655    EXT=${EXT} \
1656    FMT=${FMT} \
1657    GREP=${GREP} \
1658    H="${H}" \
1659    HELPDIR="${HELPDIR}" \
1660    ICFLAGS="${ICFLAGS}" \
1661    ILDFLAGS="${ILDFLAGS}" \
1662    INCDIR="${INCDIR}" \
1663    LANG=${LANG} \
1664    LCC="${LCC}" \
1665    LIBDIR="${LIBDIR}" \
1666    MAKE_FILE=Makefile \
1667    MKDIR=${MKDIR} \
1668    MV=${MV} \
1669    PREFIX="${PREFIX}" \
1670    Q="${Q}" \
1671    RM=${RM} \
1672    RMDIR=${RMDIR} \
1673    S="${S}" \
1674    SCRIPTDIR="${SCRIPTDIR}" \
1675    SED=${SED} \
1676    SHELL=${SHELL} \
1677    T=${T} \
1678    TOUCH=${TOUCH} \
1679    TRUE=${TRUE} \
1680    V=${V}
1681
1682# The complete list of Makefile vars passed down to cal/Makefile.
1683#
1684CAL_PASSDOWN= \
1685    AR=${AR} \
1686    BINDIR="${BINDIR}" \
1687    CALC_INCDIR="${CALC_INCDIR}" \
1688    CALC_SHAREDIR="${CALC_SHAREDIR}" \
1689    CAT=${CAT} \
1690    CHMOD=${CHMOD} \
1691    CMP=${CMP} \
1692    CO=${CO} \
1693    CP=${CP} \
1694    E="${E}" \
1695    H="${H}" \
1696    HELPDIR="${HELPDIR}" \
1697    INCDIR="${INCDIR}" \
1698    LANG=${LANG} \
1699    LIBDIR="${LIBDIR}" \
1700    MAKE_FILE=Makefile \
1701    MKDIR=${MKDIR} \
1702    MV=${MV} \
1703    PREFIX="${PREFIX}" \
1704    Q="${Q}" \
1705    RM=${RM} \
1706    RMDIR=${RMDIR} \
1707    S="${S}" \
1708    SCRIPTDIR="${SCRIPTDIR}" \
1709    SHELL=${SHELL} \
1710    T=${T} \
1711    TOUCH=${TOUCH} \
1712    TRUE=${TRUE} \
1713    V=${V}
1714
1715# The complete list of Makefile vars passed down to cscript/Makefile.
1716#
1717CSCRIPT_PASSDOWN= \
1718    AR=${AR} \
1719    BINDIR="${BINDIR}" \
1720    CALC_INCDIR="${CALC_INCDIR}" \
1721    CALC_SHAREDIR="${CALC_SHAREDIR}" \
1722    CAT=${CAT} \
1723    CHMOD=${CHMOD} \
1724    CMP=${CMP} \
1725    CO=${CO} \
1726    CP=${CP} \
1727    E="${E}" \
1728    ECHON="${ECHON}" \
1729    FMT=${FMT} \
1730    H="${H}" \
1731    HELPDIR="${HELPDIR}" \
1732    INCDIR="${INCDIR}" \
1733    LANG=${LANG} \
1734    LIBDIR="${LIBDIR}" \
1735    MAKE_FILE=Makefile \
1736    MKDIR=${MKDIR} \
1737    MV=${MV} \
1738    PREFIX="${PREFIX}" \
1739    Q="${Q}" \
1740    RM=${RM} \
1741    RMDIR=${RMDIR} \
1742    S="${S}" \
1743    SCRIPTDIR="${SCRIPTDIR}" \
1744    SED=${SED} \
1745    SHELL=${SHELL} \
1746    SORT=${SORT} \
1747    T=${T} \
1748    TOUCH=${TOUCH} \
1749    TRUE=${TRUE} \
1750    V=${V}
1751
1752# complete list of .h files found (but not built) in the distribution
1753#
1754H_SRC= ${LIB_H_SRC} ${SAMPLE_H_SRC}
1755
1756# complete list of .c files found (but not built) in the distribution
1757#
1758C_SRC= ${LIBSRC} ${CALCSRC} ${UTIL_C_SRC} ${SAMPLE_C_SRC}
1759
1760# The list of files that describe calc's GNU Lesser General Public License
1761#
1762LICENSE= COPYING COPYING-LGPL
1763
1764# These files are found (but not built) in the distribution
1765#
1766DISTLIST= ${C_SRC} ${H_SRC} ${MAKE_FILE} BUGS CHANGES LIBRARY README.FIRST \
1767	  README.WINDOWS calc.man HOWTO.INSTALL ${UTIL_MISC_SRC} ${LICENSE} \
1768	  sample.README calc.spec.in rpm.mk README.md QUESTIONS CONTRIB-CODE \
1769	  ${LOC_MKF} Makefile.simple README.RELEASE
1770
1771# These files are used to make (but not build) a calc .a link library
1772#
1773CALCLIBLIST= ${LIBSRC} ${UTIL_C_SRC} ${LIB_H_SRC} ${MAKE_FILE} \
1774	     ${UTIL_MISC_SRC} BUGS CHANGES LIBRARY
1775
1776# complete list of .o files
1777#
1778OBJS= ${LIBOBJS} ${CALCOBJS} ${UTIL_OBJS} ${SAMPLE_OBJ}
1779
1780# static library build
1781#
1782CALC_STATIC_LIBS= libcalc.a libcustcalc.a
1783
1784# Libraries created and used to build calc
1785#
1786CALC_DYNAMIC_LIBS= libcalc${LIB_EXT_VERSION} libcustcalc${LIB_EXT_VERSION}
1787
1788# Symlinks of dynamic shared libraries
1789#
1790SYM_DYNAMIC_LIBS= libcalc${LIB_EXT} \
1791	libcustcalc${LIB_EXT_VERSION}  libcustcalc${LIB_EXT}
1792
1793# list of sample programs that need to be built to satisfy sample rule
1794#
1795# NOTE: The ${SAMPLE_TARGETS} and ${SAMPLE_STATIC_TARGETS} are built but
1796#	not installed at this time.
1797#
1798# NOTE: There must be a foo-static${EXT} in SAMPLE_STATIC_TARGETS for
1799#	every foo${EXT} in ${SAMPLE_TARGETS}.
1800#
1801SAMPLE_TARGETS= sample_rand${EXT} sample_many${EXT}
1802SAMPLE_STATIC_TARGETS= sample_rand-static${EXT} sample_many-static${EXT}
1803
1804# list of cscript programs that need to be built to satisfy cscript/.all
1805#
1806# NOTE: This list MUST be coordinated with the ${CSCRIPT_TARGETS} variable
1807#	in the cscript/Makefile
1808#
1809CSCRIPT_TARGETS= cscript/mersenne cscript/piforever cscript/plus \
1810		 cscript/square cscript/fproduct cscript/powerterm
1811
1812# dynamic first targets
1813#
1814DYNAMIC_FIRST_TARGETS= ${LICENSE} .dynamic
1815
1816# static first targets
1817#
1818STATIC_FIRST_TARGETS= ${LICENSE} .static
1819
1820# early targets - things needed before the main build phase can begin
1821#
1822EARLY_TARGETS= hsrc .hsrc custom/.all custom/Makefile
1823
1824# late targets - things needed after the main build phase is complete
1825#
1826LATE_TARGETS= calc.1 calc.usage \
1827	      cal/.all help/.all help/builtin cscript/.all \
1828	      Makefile.simple
1829
1830# complete list of targets
1831#
1832TARGETS= ${EARLY_TARGETS} ${BLD_TYPE} ${LATE_TARGETS}
1833
1834
1835###
1836#
1837# The main reason for this Makefile	:-)
1838#
1839###
1840
1841all: check_include ${BLD_TYPE} CHANGES
1842
1843check_include:
1844	${Q} if ! echo '#include <stdio.h>' | ${CC} -E - >/dev/null 2>&1; then \
1845	    echo "ERROR: Missing critical <stdio.h> include file." 1>&2; \
1846	    echo "Without critical include files, we cannot compile." 1>&2; \
1847	    echo "Perhaps your system isn't setup to compile C source?" 1>&2; \
1848	    echo 1>&2; \
1849	    echo "For example, Apple macOS / Darwin requires that XCode" 1>&2; \
1850	    echo "must be installed." 1>&2; \
1851	    echo 1>&2; \
1852	    echo "Also macOS users might later to run this command:" 1>&2; \
1853	    echo 1>&2; \
1854	    echo "    xcode-select --install" 1>&2; \
1855	    echo 1>&2; \
1856	    exit 1; \
1857	fi
1858
1859prep:
1860	${Q} ${MAKE} -f ${MAKE_FILE} all DEBUG='-g3'
1861
1862calc-dynamic-only: ${DYNAMIC_FIRST_TARGETS} ${EARLY_TARGETS} \
1863		   ${CALC_DYNAMIC_LIBS} ${SYM_DYNAMIC_LIBS} calc${EXT} \
1864		   ${SAMPLE_TARGETS} ${LATE_TARGETS}
1865
1866.dynamic: ${MAKE_FILE} ${LOC_MKF}
1867	${Q} r="calc-dynamic-only"; \
1868	    if [ "${BLD_TYPE}" != "$$r" ]; then \
1869	    echo "NOTE: The host target $(target) defaults to a build" 1>&2; \
1870	    echo "      type of: ${BLD_TYPE}, so you need to use" 1>&2; \
1871	    echo "      the following make command:" 1>&2; \
1872	    echo "" 1>&2; \
1873	    echo "      ${MAKE} -f ${MAKE_FILE} clobber" 1>&2; \
1874	    echo "      ${MAKE} -f ${MAKE_FILE} $$r BLD_TYPE=$$r" 1>&2; \
1875	    echo "" 1>&2; \
1876	    echo "NOTE: It is a very good idea to first clobber any" 1>&2; \
1877	    echo "      previously built .o, libs and executables" 1>&2; \
1878	    echo "      before switching to $$r!" 1>&2; \
1879	    echo "" 1>&2; \
1880	    echo "=== aborting make ===" 1>&2; \
1881	    exit 1; \
1882	fi
1883	${Q} for i in .static calc-static${EXT} ${SAMPLE_STATIC_TARGETS} \
1884		      libcalc.a custom/libcustcalc.a; do \
1885	    r="calc-dynamic-only"; \
1886	    if [ -r "$$i" ]; then \
1887		echo "Found the static target $$i file.  You must:" 1>&2; \
1888		echo "" 1>&2; \
1889		echo "      ${MAKE} -f ${MAKE_FILE} clobber" 1>&2; \
1890		echo "      ${MAKE} -f ${MAKE_FILE} $$r BLD_TYPE=$$r" 1>&2; \
1891		echo "" 1>&2; \
1892		echo "to clean out any previously built static files." 1>&2; \
1893		echo "" 1>&2; \
1894		echo "=== aborting make ===" 1>&2; \
1895		exit 2; \
1896	    fi; \
1897	done
1898	 -${Q} ${TOUCH} $@
1899
1900calc-static-only: ${STATIC_FIRST_TARGETS} ${EARLY_TARGETS} \
1901		  ${CALC_STATIC_LIBS} calc-static${EXT} \
1902		  ${SAMPLE_STATIC_TARGETS} ${LATE_TARGETS}
1903	${Q} for i in calc${EXT} ${SAMPLE_TARGETS}; do \
1904	    if ${CMP} -s "$$i-static" "$$i"; then \
1905		${TRUE}; \
1906	    else \
1907		${RM} -f "$$i"; \
1908		${LN} "$$i-static" "$$i"; \
1909	    fi; \
1910	done
1911
1912.static: ${MAKE_FILE} ${LOC_MKF}
1913	${Q} r="calc-static-only"; \
1914	    if [ "${BLD_TYPE}" != "$$r" ]; then \
1915	    echo "NOTE: The host target $(target) defaults to a build" 1>&2; \
1916	    echo "      type of: ${BLD_TYPE}, so you need to use" 1>&2; \
1917	    echo "      the following make command:" 1>&2; \
1918	    echo "" 1>&2; \
1919	    echo "      ${MAKE} -f ${MAKE_FILE} clobber" 1>&2; \
1920	    echo "      ${MAKE} -f ${MAKE_FILE} $$r BLD_TYPE=$$r" 1>&2; \
1921	    echo "" 1>&2; \
1922	    echo "NOTE: It is a very good idea to first clobber any" 1>&2; \
1923	    echo "      previously built .o, libs and executables" 1>&2; \
1924	    echo "      before switching to $$r!" 1>&2; \
1925	    echo "" 1>&2; \
1926	    echo "=== aborting make ===" 1>&2; \
1927	    exit 3; \
1928	fi
1929	${Q} for i in .dynamic ${CALC_DYNAMIC_LIBS} ${SYM_DYNAMIC_LIBS} \
1930		      custom/libcustcalc${LIB_EXT_VERSION}; do \
1931	    r="calc-static-only"; \
1932	    if [ -r "$$i" ]; then \
1933		echo "Found the dynamic target $$i file.  You must:" 1>&2; \
1934		echo "" 1>&2; \
1935		echo "      ${MAKE} -f ${MAKE_FILE} clobber" 1>&2; \
1936		echo "      ${MAKE} -f ${MAKE_FILE} $$r BLD_TYPE=$$r" 1>&2; \
1937		echo "" 1>&2; \
1938		echo "to clean out any previously built dynamic files." 1>&2; \
1939		echo "" 1>&2; \
1940		echo "=== aborting make ===" 1>&2; \
1941		exit 4; \
1942	    fi; \
1943	done
1944	 -${Q} ${TOUCH} $@
1945
1946calc${EXT}: .hsrc ${CALCOBJS} ${CALC_DYNAMIC_LIBS} ${MAKE_FILE} ${LOC_MKF}
1947	${RM} -f $@
1948	${CC} ${CALCOBJS} ${LDFLAGS} ${LD_SHARE} ${CALC_DYNAMIC_LIBS} \
1949	      ${READLINE_LIB} ${READLINE_EXTRAS} -o $@
1950
1951libcalc${LIB_EXT_VERSION}: ${LIBOBJS} ver_calc${EXT} ${MAKE_FILE} ${LOC_MKF}
1952	${CC} ${LIBCALC_SHLIB} ${LIBOBJS} \
1953	      ${READLINE_LIB} ${READLINE_EXTRAS} -o libcalc${LIB_EXT_VERSION}
1954
1955libcalc${LIB_EXT}: libcalc${LIB_EXT_VERSION}
1956	${Q} ${RM} -f $@
1957	${LN} -s $? $@
1958
1959###
1960#
1961# calc documentation
1962#
1963###
1964
1965calc.1: calc.man ${MAKE_FILE} ${LOC_MKF}
1966	${RM} -f $@
1967	${Q} echo forming calc.1 from calc.man
1968	@${SED} -e 's:$${LIBDIR}:${LIBDIR}:g' \
1969	        -e 's,$${BINDIR},${BINDIR},g' \
1970	        -e 's,$${VERSION},${VERSION},g' \
1971	        -e 's,$${CALCPATH},${CALCPATH},g' \
1972	        -e 's,$${SCRIPTDIR},${SCRIPTDIR},g' \
1973	        -e 's,$${CALC_INCDIR},${CALC_INCDIR},g' \
1974	        -e 's,$${CUSTOMCALDIR},${CUSTOMCALDIR},g' \
1975	        -e 's,$${CUSTOMINCDIR},${CUSTOMINCDIR},g' \
1976	        -e 's,$${HELPDIR},${HELPDIR},g' \
1977	        -e 's,$${CUSTOMHELPDIR},${CUSTOMHELPDIR},g' \
1978	        -e 's,$${CALCRC},${CALCRC},g' < calc.man > calc.1
1979	${Q} echo calc.1 formed
1980
1981calc.usage: calc.1 ${MAKE_FILE} ${LOC_MKF}
1982	${RM} -f $@
1983	${Q} echo forming calc.usage from calc.1
1984	${Q} if [ -z "${NROFF}" ]; then \
1985	    LESSCHARSET=iso8859 ${CALCPAGER} calc.1; \
1986	else \
1987	    ${NROFF} -man calc.1; \
1988	fi 2>&1 | ${GREP} -v 'cannot adjust line' | ${COL} -b > $@
1989	${Q} echo calc.usage formed
1990
1991
1992##
1993#
1994# These rules compile the sample code against the calc library
1995#
1996##
1997
1998sample: ${SAMPLE_TARGETS}
1999
2000sample_rand${EXT}: sample_rand.o ${CALC_DYNAMIC_LIBS} ${MAKE_FILE} ${LOC_MKF}
2001	${CC} sample_rand.o ${LDFLAGS} ${LD_SHARE} ${CALC_DYNAMIC_LIBS} \
2002	      ${READLINE_LIB} ${READLINE_EXTRAS} -o $@
2003
2004sample_many${EXT}: sample_many.o ${CALC_DYNAMIC_LIBS} ${MAKE_FILE} ${LOC_MKF}
2005	${CC} sample_many.o ${LDFLAGS} ${LD_SHARE} ${CALC_DYNAMIC_LIBS} \
2006	      ${READLINE_LIB} ${READLINE_EXTRAS} -o $@
2007
2008###
2009#
2010# Special .o files that may need special compile options
2011#
2012###
2013
2014hist.o: hist.c ${MAKE_FILE} ${LOC_MKF}
2015	${CC} ${CFLAGS} ${TERMCONTROL} ${USE_READLINE} ${READLINE_INCLUDE} \
2016	    -c hist.c
2017
2018seed.o: seed.c ${MAKE_FILE} ${LOC_MKF}
2019	${CC} ${CFLAGS} ${WNO_IMPLICT} ${WNO_ERROR_LONG_LONG} \
2020	    ${WNO_LONG_LONG} -c seed.c
2021
2022file.o: file.c ${MAKE_FILE} ${LOC_MKF}
2023	${CC} ${CFLAGS} ${WNO_ERROR_LONG_LONG} ${WNO_LONG_LONG} -c file.c
2024
2025###
2026#
2027# The next set of rules cause the .h files BUILD_H_SRC files to be built
2028# according to the system and the Makefile variables above.  The hsrc rule
2029# is a convenient rule to invoke to build all of the BUILD_H_SRC.
2030#
2031# We add in the BUILD_C_SRC files because they are similar to the
2032# BUILD_H_SRC files in terms of the build process.
2033#
2034# NOTE: Due to bogus shells found on one common system we must have
2035#	an non-empty else clause for every if condition.  *sigh*
2036#	We also place ; ${TRUE} at the end of some commands to avoid
2037#	meaningless cosmetic messages by the same system.
2038#
2039###
2040
2041hsrc: ${BUILD_H_SRC} ${BUILD_C_SRC}
2042
2043.hsrc: ${BUILD_H_SRC} ${BUILD_C_SRC}
2044	${Q} ${RM} -f .hsrc
2045	-${Q} ${TOUCH} .hsrc
2046
2047conf.h: ${MAKE_FILE} ${LOC_MKF}
2048	${Q} ${RM} -f $@
2049	${H} echo 'forming $@'
2050	${Q} echo '/*' > $@
2051	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2052	${Q} echo ' */' >> $@
2053	${Q} echo '' >> $@
2054	${Q} echo '' >> $@
2055	${Q} echo '#if !defined(CALC_CONF_H)' >> $@
2056	${Q} echo '#define CALC_CONF_H' >> $@
2057	${Q} echo '' >> $@
2058	${Q} echo '' >> $@
2059	${Q} echo '/* the default :-separated search path */' >> $@
2060	${Q} echo '#if !defined(DEFAULTCALCPATH)' >> $@
2061	${Q} echo '#define DEFAULTCALCPATH "${CALCPATH}"' >> $@
2062	${Q} echo '#endif /* DEFAULTCALCPATH */' >> $@
2063	${Q} echo '' >> $@
2064	${Q} echo '/* the default :-separated startup file list */' >> $@
2065	${Q} echo '#if !defined(DEFAULTCALCRC)' >> $@
2066	${Q} echo '#define DEFAULTCALCRC "${CALCRC}"' >> $@
2067	${Q} echo '#endif /* DEFAULTCALCRC */' >> $@
2068	${Q} echo '' >> $@
2069	${Q} echo '/* the location of the help directory */' >> $@
2070	${Q} echo '#if !defined(HELPDIR)' >> $@
2071	${Q} echo '#define HELPDIR "${T}${HELPDIR}"' >> $@
2072	${Q} echo '#endif /* HELPDIR */' >> $@
2073	${Q} echo '' >> $@
2074	${Q} echo '/* the location of the custom help directory */' >> $@
2075	${Q} echo '#if !defined(CUSTOMHELPDIR)' >> $@
2076	${Q} echo '#define CUSTOMHELPDIR "${T}${CUSTOMHELPDIR}"' >> $@
2077	${Q} echo '#endif /* CUSTOMHELPDIR */' >> $@
2078	${Q} echo '' >> $@
2079	${Q} echo '/* the default pager to use */' >> $@
2080	${Q} echo '#if !defined(DEFAULTCALCPAGER)' >> $@
2081	${Q} echo '#define DEFAULTCALCPAGER "${CALCPAGER}"' >> $@
2082	${Q} echo '#endif /* DEFAULTCALCPAGER */' >> $@
2083	${Q} echo '' >> $@
2084	${Q} echo '' >> $@
2085	${Q} echo '#endif /* !CALC_CONF_H */' >> $@
2086	${H} echo '$@ formed'
2087	-@if [ -z "${Q}" ]; then \
2088	    echo ''; \
2089	    echo '=-=-= start of $@ =-=-='; \
2090	    ${CAT} $@; \
2091	    echo '=-=-= end of $@ =-=-='; \
2092	    echo ''; \
2093	else \
2094	    ${TRUE}; \
2095	fi
2096
2097endian_calc.h: endian.c have_stdlib.h have_unistd.h \
2098	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2099	${Q} ${RM} -f endian.o endian${EXT} $@
2100	${H} echo 'forming $@'
2101	${Q} echo '/*' > $@
2102	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2103	${Q} echo ' */' >> $@
2104	${Q} echo '' >> $@
2105	${Q} echo '' >> $@
2106	${Q} echo '#if !defined(ENDIAN_CALC_H)' >> $@
2107	${Q} echo '#define ENDIAN_CALC_H' >> $@
2108	${Q} echo '' >> $@
2109	${Q} echo '' >> $@
2110	${Q} echo '/* what byte order are we? */' >> $@
2111	-${Q} if [ X"${CALC_BYTE_ORDER}" = X ]; then \
2112	    if echo '#include <endian.h>' | ${CC} -E - ${S}; then \
2113		echo '#include <endian.h>' >> $@; \
2114		echo '#define CALC_BYTE_ORDER BYTE_ORDER' >> $@; \
2115	    elif echo '#include <machine/endian.h>' | \
2116		 ${CC} -E - ${S}; then \
2117		echo '#include <machine/endian.h>' >> $@; \
2118		echo '#define CALC_BYTE_ORDER BYTE_ORDER' >> $@; \
2119	    elif echo '#include <sys/endian.h>' | \
2120		 ${CC} -E- ${S}; then \
2121		echo '#include <sys/endian.h>' >> $@; \
2122		echo '#define CALC_BYTE_ORDER BYTE_ORDER' >> $@; \
2123	    else \
2124		${LCC} ${ICFLAGS} ${CALC_BYTE_ORDER} endian.c -c ${S}; \
2125		${LCC} ${ILDFLAGS} endian.o -o endian${EXT} ${S}; \
2126		./endian${EXT} >> $@; \
2127		${RM} -f endian.o endian${EXT}; \
2128	    fi; \
2129	else \
2130	    ${LCC} ${ICFLAGS} ${CALC_BYTE_ORDER} endian.c -c ${S}; \
2131	    ${LCC} ${ILDFLAGS} endian.o -o endian${EXT} ${S}; \
2132	    ./endian${EXT} >> $@; \
2133	    ${RM} -f endian.o endian${EXT}; \
2134	fi
2135	${Q} echo '' >> $@
2136	${Q} echo '' >> $@
2137	${Q} echo '#endif /* !ENDIAN_CALC_H */' >> $@
2138	${H} echo '$@ formed'
2139	-@if [ -z "${Q}" ]; then \
2140	    echo ''; \
2141	    echo '=-=-= start of $@ =-=-='; \
2142	    ${CAT} $@; \
2143	    echo '=-=-= end of $@ =-=-='; \
2144	    echo ''; \
2145	else \
2146	    ${TRUE}; \
2147	fi
2148
2149charbit.h: charbit.c have_limits.h \
2150	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2151	${Q} ${RM} -f charbit.o charbit${EXT} $@
2152	${H} echo 'forming $@'
2153	${Q} echo '/*' > $@
2154	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2155	${Q} echo ' */' >> $@
2156	${Q} echo '' >> $@
2157	${Q} echo '' >> $@
2158	${Q} echo '#if !defined(CALC_CHARBIT_H)' >> $@
2159	${Q} echo '#define CALC_CHARBIT_H' >> $@
2160	${Q} echo '' >> $@
2161	${Q} echo '' >> $@
2162	-@if [ -z ${CALC_CHARBIT} ]; then \
2163	    ${LCC} ${ICFLAGS} charbit.c -c ${S}; \
2164	    ${LCC} ${ILDFLAGS} charbit.o -o charbit${EXT} ${S}; \
2165	    ./charbit${EXT} >> $@ ${E}; \
2166	else \
2167	    echo '#define CALC_CHARBIT ${CALC_CHARBIT} ' \
2168		 '/* set by Makefile.ship */' >> $@; \
2169	fi
2170	${Q} echo '' >> $@
2171	${Q} echo '' >> $@
2172	${Q} echo '#endif /* !CALC_CHARBIT_H */' >> $@
2173	${H} echo '$@ formed'
2174	${Q} ${RM} -f charbit.o charbit${EXT}
2175	-@if [ -z "${Q}" ]; then \
2176	    echo ''; \
2177	    echo '=-=-= start of $@ =-=-='; \
2178	    ${CAT} $@; \
2179	    echo '=-=-= end of $@ =-=-='; \
2180	    echo ''; \
2181	else \
2182	    ${TRUE}; \
2183	fi
2184
2185longbits.h: longbits.c charbit.h have_unistd.h have_stdlib.h \
2186	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2187	${Q} ${RM} -f longbits.o longbits${EXT} $@
2188	${H} echo 'forming $@'
2189	${Q} echo '/*' > $@
2190	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2191	${Q} echo ' */' >> $@
2192	${Q} echo '' >> $@
2193	${Q} echo '' >> $@
2194	${Q} echo '#if !defined(CALC_LONGBITS_H)' >> $@
2195	${Q} echo '#define CALC_LONGBITS_H' >> $@
2196	${Q} echo '' >> $@
2197	${Q} echo '' >> $@
2198	${Q} ${LCC} ${ICFLAGS} longbits.c -c ${S}
2199	${Q} ${LCC} ${ILDFLAGS} longbits.o -o longbits${EXT} ${S}
2200	${Q} ./longbits${EXT} ${LONG_BITS} >> $@ ${E}
2201	${Q} echo '' >> $@
2202	${Q} echo '' >> $@
2203	${Q} echo '#endif /* !CALC_LONGBITS_H */' >> $@
2204	${H} echo '$@ formed'
2205	${Q} ${RM} -f longbits.o longbits${EXT}
2206	-@if [ -z "${Q}" ]; then \
2207	    echo ''; \
2208	    echo '=-=-= start of $@ =-=-='; \
2209	    ${CAT} $@; \
2210	    echo '=-=-= end of $@ =-=-='; \
2211	    echo ''; \
2212	else \
2213	    ${TRUE}; \
2214	fi
2215
2216have_times.h: ${MAKE_FILE} ${LOC_MKF}
2217	${Q} ${RM} -f $@
2218	${H} echo 'forming $@'
2219	${Q} echo '/*' > $@
2220	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2221	${Q} echo ' */' >> $@
2222	${Q} echo '' >> $@
2223	${Q} echo '' >> $@
2224	${Q} echo '#if !defined(CALC_HAVE_TIMES_H)' >> $@
2225	${Q} echo '#define CALC_HAVE_TIMES_H' >> $@
2226	${Q} echo '' >> $@
2227	${Q} echo '' >> $@
2228	${Q} echo '/* do we have <times.h>? */' >> $@
2229	-${Q} if [ X"${HAVE_TIMES_H}" = X"YES" ]; then \
2230	    echo '#define HAVE_TIMES_H	/* yes */' >> $@; \
2231	elif [ X"${HAVE_TIMES_H}" = X"NO" ]; then \
2232	    echo '#undef HAVE_TIMES_H  /* no */' >> $@; \
2233	elif echo '#include <times.h>' | ${CC} -E - ${S}; then \
2234	    echo '#define HAVE_TIMES_H	/* yes */' >> $@; \
2235	else \
2236	    echo '#undef HAVE_TIMES_H  /* no */' >> $@; \
2237	fi
2238	${Q} echo '/* do we have <sys/times.h>? */' >> $@
2239	-${Q} if [ X"${HAVE_SYS_TIMES_H}" = X"YES" ]; then \
2240	    echo '#define HAVE_SYS_TIMES_H	/* yes */' >> $@; \
2241	elif [ X"${HAVE_SYS_TIMES_H}" = X"NO" ]; then \
2242	    echo '#undef HAVE_SYS_TIMES_H  /* no */' >> $@; \
2243	elif echo '#include <sys/times.h>' | ${CC} -E - ${S}; then \
2244	    echo '#define HAVE_SYS_TIMES_H  /* yes */' >> $@; \
2245	else \
2246	    echo '#undef HAVE_SYS_TIMES_H  /* no */' >> $@; \
2247	fi
2248	${Q} echo '/* do we have <time.h>? */' >> $@
2249	-${Q} if [ X"${HAVE_TIME_H}" = X"YES" ]; then \
2250	    echo '#define HAVE_TIME_H	/* yes */' >> $@; \
2251	elif [ X"${HAVE_TIME_H}" = X"NO" ]; then \
2252	    echo '#undef HAVE_TIME_H  /* no */' >> $@; \
2253	elif echo '#include <time.h>' | ${CC} -E - ${S}; then \
2254	    echo '#define HAVE_TIME_H  /* yes */' >> $@; \
2255	else \
2256	    echo '#undef HAVE_TIME_H  /* no */' >> $@; \
2257	fi
2258	${Q} echo '/* do we have <sys/time.h>? */' >> $@
2259	-${Q} if [ X"${HAVE_SYS_TIME_H}" = X"YES" ]; then \
2260	    echo '#define HAVE_SYS_TIME_H	/* yes */' >> $@; \
2261	elif [ X"${HAVE_SYS_TIME_H}" = X"NO" ]; then \
2262	    echo '#undef HAVE_SYS_TIME_H  /* no */' >> $@; \
2263	elif echo '#include <sys/time.h>' | ${CC} -E - ${S}; then \
2264	    echo '#define HAVE_SYS_TIME_H  /* yes */' >> $@; \
2265	else \
2266	    echo '#undef HAVE_SYS_TIME_H  /* no */' >> $@; \
2267	fi
2268	${Q} echo '' >> $@
2269	${Q} echo '' >> $@
2270	${Q} echo '#endif /* !CALC_HAVE_TIMES_H */' >> $@
2271	${H} echo '$@ formed'
2272	-@if [ -z "${Q}" ]; then \
2273	    echo ''; \
2274	    echo '=-=-= start of $@ =-=-='; \
2275	    ${CAT} $@; \
2276	    echo '=-=-= end of $@ =-=-='; \
2277	    echo ''; \
2278	else \
2279	    ${TRUE}; \
2280	fi
2281
2282have_stdlib.h: ${MAKE_FILE} ${LOC_MKF}
2283	${Q} ${RM} -f $@
2284	${H} echo 'forming $@'
2285	${Q} echo '/*' > $@
2286	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2287	${Q} echo ' */' >> $@
2288	${Q} echo '' >> $@
2289	${Q} echo '' >> $@
2290	${Q} echo '#if !defined(CALC_HAVE_STDLIB_H)' >> have_stdlib.h
2291	${Q} echo '#define CALC_HAVE_STDLIB_H' >> have_stdlib.h
2292	${Q} echo '' >> $@
2293	${Q} echo '' >> $@
2294	${Q} echo '/* do we have <stdlib.h>? */' >> $@
2295	-${Q} if [ X"${HAVE_STDLIB_H}" = X"YES" ]; then \
2296	    echo '#define HAVE_STDLIB_H	/* yes */' >> have_stdlib.h; \
2297	elif [ X"${HAVE_STDLIB_H}" = X"NO" ]; then \
2298	    echo '#undef HAVE_STDLIB_H  /* no */' >> have_stdlib.h; \
2299	elif echo '#include <stdlib.h>' | ${CC} -E - ${S}; then \
2300	    echo '#define HAVE_STDLIB_H	 /* yes */' >> have_stdlib.h; \
2301	else \
2302	    echo '#undef HAVE_STDLIB_H	/* no */' >> have_stdlib.h; \
2303	fi
2304	${Q} echo '' >> $@
2305	${Q} echo '' >> $@
2306	${Q} echo '#endif /* !CALC_HAVE_STDLIB_H */' >> have_stdlib.h
2307	${H} echo '$@ formed'
2308	-@if [ -z "${Q}" ]; then \
2309	    echo ''; \
2310	    echo '=-=-= start of $@ =-=-='; \
2311	    ${CAT} $@; \
2312	    echo '=-=-= end of $@ =-=-='; \
2313	    echo ''; \
2314	else \
2315	    ${TRUE}; \
2316	fi
2317
2318have_unistd.h: ${MAKE_FILE} ${LOC_MKF}
2319	${Q} ${RM} -f $@
2320	${H} echo 'forming $@'
2321	${Q} echo '/*' > $@
2322	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2323	${Q} echo ' */' >> $@
2324	${Q} echo '' >> $@
2325	${Q} echo '' >> $@
2326	${Q} echo '#if !defined(CALC_HAVE_UNISTD_H)' >> $@
2327	${Q} echo '#define CALC_HAVE_UNISTD_H' >> $@
2328	${Q} echo '' >> $@
2329	${Q} echo '' >> $@
2330	${Q} echo '/* do we have <unistd.h>? */' >> $@
2331	-${Q} if [ X"${HAVE_UNISTD_H}" = X"YES" ]; then \
2332	    echo '#define HAVE_UNISTD_H	/* yes */' >> $@; \
2333	elif [ X"${HAVE_UNISTD_H}" = X"NO" ]; then \
2334	    echo '#undef HAVE_UNISTD_H  /* no */' >> $@; \
2335	elif echo '#include <unistd.h>' | ${CC} -E - ${S}; then \
2336	    echo '#define HAVE_UNISTD_H	 /* yes */' >> $@; \
2337	else \
2338	    echo '#undef HAVE_UNISTD_H	/* no */' >> $@; \
2339	fi
2340	${Q} echo '' >> $@
2341	${Q} echo '' >> $@
2342	${Q} echo '#endif /* !CALC_HAVE_UNISTD_H */' >> $@
2343	${H} echo '$@ formed'
2344	-@if [ -z "${Q}" ]; then \
2345	    echo ''; \
2346	    echo '=-=-= start of $@ =-=-='; \
2347	    ${CAT} $@; \
2348	    echo '=-=-= end of $@ =-=-='; \
2349	    echo ''; \
2350	else \
2351	    ${TRUE}; \
2352	fi
2353
2354have_limits.h: ${MAKE_FILE} ${LOC_MKF}
2355	${Q} ${RM} -f $@
2356	${H} echo 'forming $@'
2357	${Q} echo '/*' > $@
2358	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2359	${Q} echo ' */' >> $@
2360	${Q} echo '' >> $@
2361	${Q} echo '' >> $@
2362	${Q} echo '#if !defined(CALC_HAVE_LIMITS_H)' >> $@
2363	${Q} echo '#define CALC_HAVE_LIMITS_H' >> $@
2364	${Q} echo '' >> $@
2365	${Q} echo '' >> $@
2366	${Q} echo '/* do we have <limits.h>? */' >> $@
2367	-${Q} if [ X"${HAVE_LIMITS_H}" = X"YES" ]; then \
2368	    echo '#define HAVE_LIMITS_H	/* yes */' >> $@; \
2369	elif [ X"${HAVE_LIMITS_H}" = X"NO" ]; then \
2370	    echo '#undef HAVE_LIMITS_H  /* no */' >> $@; \
2371	elif echo '#include <limits.h>' | ${CC} -E - ${S}; then \
2372	    echo '#define HAVE_LIMITS_H	 /* yes */' >> $@; \
2373	else \
2374	    echo '#undef HAVE_LIMITS_H	/* no */' >> $@; \
2375	fi
2376	${Q} echo '' >> $@
2377	${Q} echo '' >> $@
2378	${Q} echo '#endif /* !CALC_HAVE_LIMITS_H */' >> $@
2379	${H} echo '$@ formed'
2380	-@if [ -z "${Q}" ]; then \
2381	    echo ''; \
2382	    echo '=-=-= start of $@ =-=-='; \
2383	    ${CAT} $@; \
2384	    echo '=-=-= end of $@ =-=-='; \
2385	    echo ''; \
2386	else \
2387	    ${TRUE}; \
2388	fi
2389
2390have_string.h: ${MAKE_FILE} ${LOC_MKF}
2391	${Q} ${RM} -f $@
2392	${H} echo 'forming $@'
2393	${Q} echo '/*' > $@
2394	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2395	${Q} echo ' */' >> $@
2396	${Q} echo '' >> $@
2397	${Q} echo '' >> $@
2398	${Q} echo '#if !defined(CALC_HAVE_STRING_H)' >> $@
2399	${Q} echo '#define CALC_HAVE_STRING_H' >> $@
2400	${Q} echo '' >> $@
2401	${Q} echo '' >> $@
2402	${Q} echo '/* do we have <string.h>? */' >> $@
2403	-${Q} if [ X"${HAVE_STRING_H}" = X"YES" ]; then \
2404	    echo '#define HAVE_STRING_H	/* yes */' >> $@; \
2405	elif [ X"${HAVE_STRING_H}" = X"NO" ]; then \
2406	    echo '#undef HAVE_STRING_H  /* no */' >> $@; \
2407	elif echo '#include <string.h>' | ${CC} -E - ${S}; then \
2408	    echo '#define HAVE_STRING_H	 /* yes */' >> $@; \
2409	else \
2410	    echo '#undef HAVE_STRING_H	/* no */' >> $@; \
2411	fi
2412	${Q} echo '' >> $@
2413	${Q} echo '' >> $@
2414	${Q} echo '#endif /* !CALC_HAVE_STRING_H */' >> $@
2415	${H} echo '$@ formed'
2416	-@if [ -z "${Q}" ]; then \
2417	    echo ''; \
2418	    echo '=-=-= start of $@ =-=-='; \
2419	    ${CAT} $@; \
2420	    echo '=-=-= end of $@ =-=-='; \
2421	    echo ''; \
2422	else \
2423	    ${TRUE}; \
2424	fi
2425
2426terminal.h: ${MAKE_FILE} ${LOC_MKF}
2427	${Q} ${RM} -f $@
2428	${H} echo 'forming $@'
2429	${Q} echo '/*' > $@
2430	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2431	${Q} echo ' */' >> $@
2432	${Q} echo '' >> $@
2433	${Q} echo '' >> $@
2434	${Q} echo '#if !defined(CALC_TERMINAL_H)' >> $@
2435	${Q} echo '#define CALC_TERMINAL_H' >> $@
2436	${Q} echo '' >> $@
2437	${Q} echo '' >> $@
2438	${Q} echo '/* determine the type of terminal interface */' >> $@
2439	${Q} echo '#if !defined(USE_TERMIOS)' >> $@
2440	${Q} echo '#if !defined(USE_TERMIO)' >> $@
2441	${Q} echo '#if !defined(USE_SGTTY)' >> $@
2442	-${Q} if [ X"${TERMCONTROL}" = X"-DUSE_WIN32" ]; then \
2443	    echo '/* Windows, use none of these modes */' >> $@; \
2444	    echo '#undef USE_TERMIOS   /* <termios.h> */' >> $@; \
2445	    echo '#undef USE_TERMIO    /* <termio.h> */' >> $@; \
2446	    echo '#undef USE_SGTTY     /* <sys/ioctl.h> */' >> $@; \
2447	elif echo '#include <termios.h>' | ${CC} -E - ${S}; then \
2448	    echo '/* use termios */' >> $@; \
2449	    echo '#define USE_TERMIOS  /* <termios.h> */' >> $@; \
2450	    echo '#undef USE_TERMIO    /* <termio.h> */' >> $@; \
2451	    echo '#undef USE_SGTTY     /* <sys/ioctl.h> */' >> $@; \
2452	elif echo '#include <termio.h>' | ${CC} -E - ${S}; then \
2453	    echo '/* use termio */' >> $@; \
2454	    echo '#undef USE_TERMIOS   /* <termios.h> */' >> $@; \
2455	    echo '#define USE_TERMIO   /* <termio.h> */' >> $@; \
2456	    echo '#undef USE_SGTTY     /* <sys/ioctl.h> */' >> $@; \
2457	else \
2458	    echo '/* use sgtty */' >> $@; \
2459	    echo '#undef USE_TERMIOS   /* <termios.h> */' >> $@; \
2460	    echo '#undef USE_TERMIO    /* <termio.h> */' >> $@; \
2461	    echo '#define USE_SGTTY    /* <sys/ioctl.h> */' >> $@; \
2462	fi
2463	${Q} echo '#endif' >> $@
2464	${Q} echo '#endif' >> $@
2465	${Q} echo '#endif' >> $@
2466	${Q} echo '' >> $@
2467	${Q} echo '' >> $@
2468	${Q} echo '#endif /* !CALC_TERMINAL_H */' >> $@
2469	${H} echo '$@ formed'
2470	-@if [ -z "${Q}" ]; then \
2471	    echo ''; \
2472	    echo '=-=-= start of $@ =-=-='; \
2473	    ${CAT} $@; \
2474	    echo '=-=-= end of $@ =-=-='; \
2475	    echo ''; \
2476	else \
2477	    ${TRUE}; \
2478	fi
2479
2480have_fpos.h: have_fpos.c banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2481	${Q} ${RM} -f fpos_tmp $@
2482	${H} echo 'forming $@'
2483	${Q} echo '/*' > $@
2484	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2485	${Q} echo ' */' >> $@
2486	${Q} echo '' >> $@
2487	${Q} echo '' >> $@
2488	${Q} echo '#if !defined(CALC_HAVE_FPOS_H)' >> $@
2489	${Q} echo '#define CALC_HAVE_FPOS_H' >> $@
2490	${Q} echo '' >> $@
2491	${Q} echo '' >> $@
2492	${Q} echo '/* do we have fgetpos & fsetpos functions? */' >> $@
2493	${Q} ${RM} -f have_fpos.o have_fpos${EXT}
2494	-${Q} ${LCC} ${HAVE_FPOS} ${ICFLAGS} have_fpos.c -c ${S} \
2495		|| ${TRUE}
2496	-${Q} ${LCC} ${ILDFLAGS} have_fpos.o -o have_fpos${EXT} ${S} \
2497		|| ${TRUE}
2498	-${Q} ./have_fpos${EXT} > fpos_tmp ${E} \
2499		|| ${TRUE}
2500	-${Q} if [ -s fpos_tmp ]; then \
2501	    ${CAT} fpos_tmp >> $@; \
2502	else \
2503	    echo '#undef HAVE_FPOS  /* no */' >> $@; \
2504	    echo '' >> $@; \
2505	    echo 'typedef long FILEPOS;' >> $@; \
2506	fi
2507	${Q} echo '' >> $@
2508	${Q} echo '' >> $@
2509	${Q} echo '#endif /* !CALC_HAVE_FPOS_H */' >> $@
2510	${Q} ${RM} -f have_fpos${EXT} have_fpos.o fpos_tmp
2511	${H} echo '$@ formed'
2512	-@if [ -z "${Q}" ]; then \
2513	    echo ''; \
2514	    echo '=-=-= start of $@ =-=-='; \
2515	    ${CAT} $@; \
2516	    echo '=-=-= end of $@ =-=-='; \
2517	    echo ''; \
2518	else \
2519	    ${TRUE}; \
2520	fi
2521
2522have_fpos_pos.h: have_fpos_pos.c have_fpos.h have_posscl.h \
2523		 banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2524	${Q} ${RM} -f fpos_tmp $@
2525	${H} echo 'forming $@'
2526	${Q} echo '/*' > $@
2527	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2528	${Q} echo ' */' >> $@
2529	${Q} echo '' >> $@
2530	${Q} echo '' >> $@
2531	${Q} echo '#if !defined(CALC_HAVE_FPOS_POS_H)' >> $@
2532	${Q} echo '#define CALC_HAVE_FPOS_POS_H' >> $@
2533	${Q} echo '' >> $@
2534	${Q} echo '' >> $@
2535	${Q} echo '/* do we have fgetpos & fsetpos functions? */' >> $@
2536	${Q} ${RM} -f have_fpos_pos.o have_fpos_pos${EXT}
2537	-${Q} ${LCC} ${HAVE_FPOS} ${HAVE_FPOS_POS} ${ICFLAGS} \
2538		have_fpos_pos.c -c ${S} \
2539			|| ${TRUE}
2540	-${Q} ${LCC} ${ILDFLAGS} have_fpos_pos.o -o have_fpos_pos${EXT} ${S} \
2541		|| ${TRUE}
2542	-${Q} ./have_fpos_pos${EXT} > fpos_tmp ${E} \
2543		|| ${TRUE}
2544	-${Q} if [ -s fpos_tmp ]; then \
2545	    ${CAT} fpos_tmp >> $@; \
2546	else \
2547	    echo '#undef HAVE_FPOS_POS  /* no */' >> $@; \
2548	    echo '' >> $@; \
2549	    echo '#undef FPOS_POS_BITS' >> $@; \
2550	fi
2551	${Q} echo '' >> $@
2552	${Q} echo '' >> $@
2553	${Q} echo '#endif /* !CALC_HAVE_FPOS_POS_H */' >> $@
2554	${Q} ${RM} -f have_fpos_pos${EXT} have_fpos_pos.o fpos_tmp
2555	${H} echo '$@ formed'
2556	-@if [ -z "${Q}" ]; then \
2557	    echo ''; \
2558	    echo '=-=-= start of $@ =-=-='; \
2559	    ${CAT} $@; \
2560	    echo '=-=-= end of $@ =-=-='; \
2561	    echo ''; \
2562	else \
2563	    ${TRUE}; \
2564	fi
2565
2566fposval.h: fposval.c have_fpos.h have_fpos_pos.h have_offscl.h have_posscl.h \
2567	   endian_calc.h banned.h have_ban_pragma.h fposval.h.def alloc.h \
2568	   have_newstr.h have_memmv.h ${MAKE_FILE} ${LOC_MKF}
2569	${Q} ${RM} -f fposval_tmp $@
2570	${H} echo 'forming $@'
2571	${Q} echo '/*' > $@
2572	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2573	${Q} echo ' */' >> $@
2574	${Q} echo '' >> $@
2575	${Q} echo '' >> $@
2576	${Q} echo '#if !defined(CALC_FPOSVAL_H)' >> $@
2577	${Q} echo '#define CALC_FPOSVAL_H' >> $@
2578	${Q} echo '' >> $@
2579	${Q} echo '' >> $@
2580	${Q} echo '/* what are our file position & size types? */' >> $@
2581	${Q} ${RM} -f fposval.o fposval${EXT}
2582	-${Q} ${LCC} ${ICFLAGS} ${FPOS_BITS} ${OFF_T_BITS} \
2583		${DEV_BITS} ${INODE_BITS} fposval.c -c ${S} \
2584			|| ${TRUE}
2585	-${Q} ${LCC} ${ILDFLAGS} fposval.o -o fposval${EXT} ${S} \
2586		|| ${TRUE}
2587	-${Q} ./fposval${EXT} > fposval_tmp ${E} \
2588		|| ${TRUE}
2589	-${Q} if [ -s fposval_tmp ]; then \
2590	    ${CAT} fposval_tmp >> $@; \
2591	else \
2592	    echo 'WARNING!! ./fposval${EXT} failed, using fposval.h.def' 1>&2; \
2593	    ${CAT} fposval.h.def >> $@; \
2594	fi
2595	${Q} echo '' >> $@
2596	${Q} echo '' >> $@
2597	${Q} echo '#endif /* !CALC_FPOSVAL_H */' >> $@
2598	${Q} ${RM} -f fposval${EXT} fposval.o fposval_tmp
2599	${H} echo '$@ formed'
2600	-@if [ -z "${Q}" ]; then \
2601	    echo ''; \
2602	    echo '=-=-= start of $@ =-=-='; \
2603	    ${CAT} $@; \
2604	    echo '=-=-= end of $@ =-=-='; \
2605	    echo ''; \
2606	else \
2607	    ${TRUE}; \
2608	fi
2609
2610have_const.h: have_const.c banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2611	${Q} ${RM} -f have_const const_tmp $@
2612	${H} echo 'forming $@'
2613	${Q} echo '/*' > $@
2614	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2615	${Q} echo ' */' >> $@
2616	${Q} echo '' >> $@
2617	${Q} echo '' >> $@
2618	${Q} echo '#if !defined(CALC_HAVE_CONST_H)' >> $@
2619	${Q} echo '#define CALC_HAVE_CONST_H' >> $@
2620	${Q} echo '' >> $@
2621	${Q} echo '' >> $@
2622	${Q} echo '/* do we have or want const? */' >> $@
2623	${Q} ${RM} -f have_const.o have_const${EXT}
2624	-${Q} ${LCC} ${ICFLAGS} ${HAVE_CONST} have_const.c -c ${S} \
2625		|| ${TRUE}
2626	-${Q} ${LCC} ${ILDFLAGS} have_const.o -o have_const${EXT} ${S} \
2627		|| ${TRUE}
2628	-${Q} ./have_const${EXT} > const_tmp ${E} \
2629		|| ${TRUE}
2630	-${Q} if [ -s const_tmp ]; then \
2631	    ${CAT} const_tmp >> $@; \
2632	else \
2633	    echo '#undef HAVE_CONST /* no */' >> $@; \
2634	    echo '#undef CONST' >> $@; \
2635	    echo '#define CONST /* no */' >> $@; \
2636	fi
2637	${Q} echo '' >> $@
2638	${Q} echo '' >> $@
2639	${Q} echo '#endif /* !CALC_HAVE_CONST_H */' >> $@
2640	${Q} ${RM} -f have_const${EXT} have_const.o const_tmp
2641	${H} echo '$@ formed'
2642	-@if [ -z "${Q}" ]; then \
2643	    echo ''; \
2644	    echo '=-=-= start of $@ =-=-='; \
2645	    ${CAT} $@; \
2646	    echo '=-=-= end of $@ =-=-='; \
2647	    echo ''; \
2648	else \
2649	    ${TRUE}; \
2650	fi
2651
2652have_offscl.h: have_offscl.c have_unistd.h \
2653	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2654	${Q} ${RM} -f offscl_tmp $@
2655	${H} echo 'forming $@'
2656	${Q} echo '/*' > $@
2657	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2658	${Q} echo ' */' >> $@
2659	${Q} echo '' >> $@
2660	${Q} echo '' >> $@
2661	${Q} echo '#if !defined(CALC_HAVE_OFFSCL_H)' >> $@
2662	${Q} echo '#define CALC_HAVE_OFFSCL_H' >> $@
2663	${Q} echo '' >> $@
2664	${Q} echo '' >> $@
2665	${Q} ${RM} -f have_offscl.o have_offscl${EXT}
2666	-${Q} ${LCC} ${ICFLAGS} ${HAVE_OFFSCL} have_offscl.c -c ${S} \
2667		|| ${TRUE}
2668	-${Q} ${LCC} ${ILDFLAGS} have_offscl.o -o have_offscl${EXT} ${S} \
2669		|| ${TRUE}
2670	-${Q} ./have_offscl${EXT} > offscl_tmp ${E} \
2671		|| ${TRUE}
2672	-${Q} if [ -s offscl_tmp ]; then \
2673	    ${CAT} offscl_tmp >> $@; \
2674	else \
2675	    echo '#undef HAVE_OFF_T_SCALAR /* off_t is not a simple value */' \
2676		>> $@; \
2677	fi
2678	${Q} echo '' >> $@
2679	${Q} echo '' >> $@
2680	${Q} echo '#endif /* !CALC_HAVE_OFFSCL_H */' >> $@
2681	${Q} ${RM} -f have_offscl${EXT} have_offscl.o offscl_tmp
2682	${H} echo '$@ formed'
2683	-@if [ -z "${Q}" ]; then \
2684	    echo ''; \
2685	    echo '=-=-= start of $@ =-=-='; \
2686	    ${CAT} $@; \
2687	    echo '=-=-= end of $@ =-=-='; \
2688	    echo ''; \
2689	else \
2690	    ${TRUE}; \
2691	fi
2692
2693have_posscl.h: have_posscl.c have_fpos.h have_unistd.h \
2694	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2695	${Q} ${RM} -f have_posscl have_posscl.o posscl_tmp $@
2696	${H} echo 'forming $@'
2697	${Q} echo '/*' > $@
2698	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2699	${Q} echo ' */' >> $@
2700	${Q} echo '' >> $@
2701	${Q} echo '' >> $@
2702	${Q} echo '#if !defined(CALC_HAVE_POSSCL_H)' >> $@
2703	${Q} echo '#define CALC_HAVE_POSSCL_H' >> $@
2704	${Q} echo '' >> $@
2705	${Q} echo '' >> $@
2706	${Q} ${RM} -f have_posscl.o have_posscl
2707	-${Q} ${LCC} ${ICFLAGS} ${HAVE_POSSCL} have_posscl.c -c ${S} \
2708		|| ${TRUE}
2709	-${Q} ${LCC} ${ILDFLAGS} have_posscl.o -o have_posscl ${S} \
2710		|| ${TRUE}
2711	-${Q} ./have_posscl > posscl_tmp ${E} \
2712		|| ${TRUE}
2713	-${Q} if [ -s posscl_tmp ]; then \
2714	    ${CAT} posscl_tmp >> $@; \
2715	else \
2716	    echo '/* FILEPOS is not a simple value */' >> $@; \
2717	    echo '#undef HAVE_FILEPOS_SCALAR' >> $@; \
2718	fi
2719	${Q} echo '' >> $@
2720	${Q} echo '' >> $@
2721	${Q} echo '#endif /* !CALC_HAVE_POSSCL_H */' >> $@
2722	${Q} ${RM} -f have_posscl have_posscl.o posscl_tmp
2723	${H} echo '$@ formed'
2724	-@if [ -z "${Q}" ]; then \
2725	    echo ''; \
2726	    echo '=-=-= start of $@ =-=-='; \
2727	    ${CAT} $@; \
2728	    echo '=-=-= end of $@ =-=-='; \
2729	    echo ''; \
2730	else \
2731	    ${TRUE}; \
2732	fi
2733
2734align32.h: align32.c longbits.h have_unistd.h \
2735	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2736	${Q} ${RM} -f align32 align32_tmp $@
2737	${H} echo 'forming $@'
2738	${Q} echo '/*' > $@
2739	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2740	${Q} echo ' */' >> $@
2741	${Q} echo '' >> $@
2742	${Q} echo '' >> $@
2743	${Q} echo '#if !defined(CALC_ALIGN32_H)' >> $@
2744	${Q} echo '#define CALC_ALIGN32_H' >> $@
2745	${Q} echo '' >> $@
2746	${Q} echo '' >> $@
2747	${Q} echo '/* must we always align 32 bit accesses? */' >> $@
2748	-${Q} if [ X"-DMUST_ALIGN32" = X${ALIGN32} ]; then \
2749	    echo '/* forced to align 32 bit values */' >> $@; \
2750	    echo '#define MUST_ALIGN32' >> $@; \
2751	else \
2752	    ${TRUE}; \
2753	fi
2754	-${Q} if [ X"-UMUST_ALIGN32" = X${ALIGN32} ]; then \
2755	    echo '/* forced to not require 32 bit alignment */' >> $@; \
2756	    echo '#undef MUST_ALIGN32' >> $@; \
2757	else \
2758	    ${TRUE}; \
2759	fi
2760	-${Q} if [ X = X${ALIGN32} ]; then \
2761	    ${RM} -f align32.o align32${EXT}; \
2762	    ${LCC} ${ICFLAGS} ${ALIGN32} align32.c -c ${S}; \
2763	    ${LCC} ${ILDFLAGS} align32.o -o align32${EXT} ${S}; \
2764	    ./align32${EXT} >align32_tmp ${E}; \
2765	    if [ -s align32_tmp ]; then \
2766		${CAT} align32_tmp >> $@; \
2767	    else \
2768		echo '/* guess we must align 32 bit values */' >> $@; \
2769		echo '#define MUST_ALIGN32' >> $@; \
2770	    fi; \
2771	    ${RM} -f align32${EXT} align32.o align32_tmp core; \
2772	else \
2773	    ${TRUE}; \
2774	fi
2775	${Q} echo '' >> $@
2776	${Q} echo '' >> $@
2777	${Q} echo '#endif /* !CALC_ALIGN32_H */' >> $@
2778	${H} echo '$@ formed'
2779	-@if [ -z "${Q}" ]; then \
2780	    echo ''; \
2781	    echo '=-=-= start of $@ =-=-='; \
2782	    ${CAT} $@; \
2783	    echo '=-=-= end of $@ =-=-='; \
2784	    echo ''; \
2785	else \
2786	    ${TRUE}; \
2787	fi
2788
2789have_uid_t.h: have_uid_t.c have_unistd.h \
2790	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2791	${Q} ${RM} -f have_uid_t uid_tmp $@
2792	${H} echo 'forming $@'
2793	${Q} echo '/*' > $@
2794	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2795	${Q} echo ' */' >> $@
2796	${Q} echo '' >> $@
2797	${Q} echo '' >> $@
2798	${Q} echo '#if !defined(CALC_HAVE_UID_T_H)' >> $@
2799	${Q} echo '#define CALC_HAVE_UID_T_H' >> $@
2800	${Q} echo '' >> $@
2801	${Q} echo '' >> $@
2802	${Q} echo '/* do we have or want uid_t? */' >> $@
2803	${Q} ${RM} -f have_uid_t.o have_uid_t${EXT}
2804	-${Q} ${LCC} ${ICFLAGS} ${HAVE_UID_T} have_uid_t.c -c ${S} \
2805		|| ${TRUE}
2806	-${Q} ${LCC} ${ILDFLAGS} have_uid_t.o -o have_uid_t${EXT} ${S} \
2807		|| ${TRUE}
2808	-${Q} ./have_uid_t${EXT} > uid_tmp ${E} \
2809		|| ${TRUE}
2810	-${Q} if [ -s uid_tmp ]; then \
2811	    ${CAT} uid_tmp >> $@; \
2812	else \
2813	    echo '#undef HAVE_UID_T /* no */' >> $@; \
2814	fi
2815	${Q} echo '' >> $@
2816	${Q} echo '' >> $@
2817	${Q} echo '#endif /* !CALC_HAVE_UID_T_H */' >> $@
2818	${Q} ${RM} -f have_uid_t${EXT} have_uid_t.o uid_tmp
2819	${H} echo '$@ formed'
2820	-@if [ -z "${Q}" ]; then \
2821	    echo ''; \
2822	    echo '=-=-= start of $@ =-=-='; \
2823	    ${CAT} $@; \
2824	    echo '=-=-= end of $@ =-=-='; \
2825	    echo ''; \
2826	else \
2827	    ${TRUE}; \
2828	fi
2829
2830have_environ.h: have_environ.c \
2831	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2832	${Q} ${RM} -f have_environ environ_tmp $@
2833	${H} echo 'forming $@'
2834	${Q} echo '/*' > $@
2835	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2836	${Q} echo ' */' >> $@
2837	${Q} echo '' >> $@
2838	${Q} echo '' >> $@
2839	${Q} echo '#if !defined(CALC_HAVE_ENVIRON_H)' >> $@
2840	${Q} echo '#define CALC_HAVE_ENVIRON_H' >> $@
2841	${Q} echo '' >> $@
2842	${Q} echo '' >> $@
2843	${Q} echo '/* do we have or want environ? */' >> $@
2844	${Q} ${RM} -f have_environ.o have_environ${EXT}
2845	-${Q} ${LCC} ${ICFLAGS} ${HAVE_ENVIRON} have_environ.c -c ${S} \
2846		|| ${TRUE}
2847	-${Q} ${LCC} ${ILDFLAGS} have_environ.o -o have_environ${EXT} ${S} \
2848		|| ${TRUE}
2849	-${Q} ./have_environ${EXT} > environ_tmp ${E} \
2850		|| ${TRUE}
2851	-${Q} if [ -s environ_tmp ]; then \
2852	    ${CAT} environ_tmp >> $@; \
2853	else \
2854	    echo '#undef HAVE_ENVIRON /* no */' >> $@; \
2855	fi
2856	${Q} echo '' >> $@
2857	${Q} echo '' >> $@
2858	${Q} echo '#endif /* !CALC_HAVE_ENVIRON_H */' >> $@
2859	${Q} ${RM} -f have_environ${EXT} have_environ.o environ_tmp
2860	${H} echo '$@ formed'
2861	-@if [ -z "${Q}" ]; then \
2862	    echo ''; \
2863	    echo '=-=-= start of $@ =-=-='; \
2864	    ${CAT} $@; \
2865	    echo '=-=-= end of $@ =-=-='; \
2866	    echo ''; \
2867	else \
2868	    ${TRUE}; \
2869	fi
2870
2871have_arc4random.h: have_arc4random.c have_stdlib.h \
2872	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2873	${Q} ${RM} -f have_arc4random arc4random_tmp $@
2874	${H} echo 'forming $@'
2875	${Q} echo '/*' > $@
2876	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2877	${Q} echo ' */' >> $@
2878	${Q} echo '' >> $@
2879	${Q} echo '' >> $@
2880	${Q} echo '#if !defined(HAVE_ARC4RANDOM)' >> $@
2881	${Q} echo '#define HAVE_ARC4RANDOM' >> $@
2882	${Q} echo '' >> $@
2883	${Q} echo '' >> $@
2884	${Q} echo '/* do we have or want arc4random? */' >> $@
2885	${Q} ${RM} -f have_arc4random.o have_arc4random${EXT}
2886	-${Q} ${LCC} ${ICFLAGS} ${HAVE_ARC4RANDOM} have_arc4random.c -c ${S} \
2887		|| ${TRUE}
2888	-${Q} ${LCC} ${ILDFLAGS} have_arc4random.o \
2889		-o have_arc4random${EXT} ${S} \
2890		|| ${TRUE}
2891	-${Q} ./have_arc4random${EXT} > arc4random_tmp ${E} \
2892		|| ${TRUE}
2893	-${Q} if [ -s arc4random_tmp ]; then \
2894	    ${CAT} arc4random_tmp >> $@; \
2895	else \
2896	    echo '#undef HAVE_ARC4RANDOM /* no */' >> $@; \
2897	fi
2898	${Q} echo '' >> $@
2899	${Q} echo '' >> $@
2900	${Q} echo '#endif /* !HAVE_ARC4RANDOM */' >> $@
2901	${Q} ${RM} -f have_arc4random${EXT} have_arc4random.o arc4random_tmp
2902	${H} echo '$@ formed'
2903	-@if [ -z "${Q}" ]; then \
2904	    echo ''; \
2905	    echo '=-=-= start of $@ =-=-='; \
2906	    ${CAT} $@; \
2907	    echo '=-=-= end of $@ =-=-='; \
2908	    echo ''; \
2909	else \
2910	    ${TRUE}; \
2911	fi
2912
2913have_newstr.h: have_newstr.c banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2914	${Q} ${RM} -f newstr_tmp $@
2915	${H} echo 'forming $@'
2916	${Q} echo '/*' > $@
2917	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2918	${Q} echo ' */' >> $@
2919	${Q} echo '' >> $@
2920	${Q} echo '' >> $@
2921	${Q} echo '#if !defined(CALC_HAVE_NEWSTR_H)' >> $@
2922	${Q} echo '#define CALC_HAVE_NEWSTR_H' >> $@
2923	${Q} echo '' >> $@
2924	${Q} echo '' >> $@
2925	${Q} echo '/* do we have/want memcpy(), memset() & strchr()? */' >> $@
2926	${Q} ${RM} -f have_newstr.o have_newstr${EXT}
2927	-${Q} ${LCC} ${ICFLAGS} ${HAVE_NEWSTR} have_newstr.c -c ${S} \
2928		|| ${TRUE}
2929	-${Q} ${LCC} ${ILDFLAGS} have_newstr.o -o have_newstr${EXT} ${S} \
2930		|| ${TRUE}
2931	-${Q} ./have_newstr${EXT} > newstr_tmp ${E} \
2932		|| ${TRUE}
2933	-${Q} if [ -s newstr_tmp ]; then \
2934	    ${CAT} newstr_tmp >> $@; \
2935	else \
2936	    echo '#undef HAVE_NEWSTR /* no */' >> $@; \
2937	fi
2938	${Q} echo '' >> $@
2939	${Q} echo '' >> $@
2940	${Q} echo '#endif /* !CALC_HAVE_NEWSTR_H */' >> $@
2941	${Q} ${RM} -f have_newstr${EXT} have_newstr.o newstr_tmp
2942	${H} echo '$@ formed'
2943	-@if [ -z "${Q}" ]; then \
2944	    echo ''; \
2945	    echo '=-=-= start of $@ =-=-='; \
2946	    ${CAT} $@; \
2947	    echo '=-=-= end of $@ =-=-='; \
2948	    echo ''; \
2949	else \
2950	    ${TRUE}; \
2951	fi
2952
2953have_memmv.h: have_memmv.c banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2954	${Q} ${RM} -f have_memmv have_memmv.o memmv_tmp $@
2955	${H} echo 'forming $@'
2956	${Q} echo '/*' > $@
2957	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2958	${Q} echo ' */' >> $@
2959	${Q} echo '' >> $@
2960	${Q} echo '' >> $@
2961	${Q} echo '#if !defined(CALC_HAVE_MEMMV_H)' >> $@
2962	${Q} echo '#define CALC_HAVE_MEMMV_H' >> $@
2963	${Q} echo '' >> $@
2964	${Q} echo '' >> $@
2965	${Q} echo '/* do we have or want memmove()? */' >> $@
2966	${Q} ${RM} -f have_memmv.o have_memmv
2967	-${Q} ${LCC} ${ICFLAGS} ${HAVE_MEMMOVE} have_memmv.c -c ${S} \
2968		|| ${TRUE}
2969	-${Q} ${LCC} ${ILDFLAGS} have_memmv.o -o have_memmv ${S} \
2970		|| ${TRUE}
2971	-${Q} ./have_memmv > memmv_tmp ${E} \
2972		|| ${TRUE}
2973	-${Q} if [ -s memmv_tmp ]; then \
2974	    ${CAT} memmv_tmp >> $@; \
2975	else \
2976	    echo '#undef HAVE_MEMMOVE /* no */' >> $@; \
2977	fi
2978	${Q} echo '' >> $@
2979	${Q} echo '' >> $@
2980	${Q} echo '#endif /* !CALC_HAVE_MEMMV_H */' >> $@
2981	${Q} ${RM} -f have_memmv have_memmv.o memmv_tmp
2982	${H} echo '$@ formed'
2983	-@if [ -z "${Q}" ]; then \
2984	    echo ''; \
2985	    echo '=-=-= start of $@ =-=-='; \
2986	    ${CAT} $@; \
2987	    echo '=-=-= end of $@ =-=-='; \
2988	    echo ''; \
2989	else \
2990	    ${TRUE}; \
2991	fi
2992
2993have_ustat.h: have_ustat.c banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
2994	${Q} ${RM} -f ustat_tmp $@
2995	${H} echo 'forming $@'
2996	${Q} echo '/*' > $@
2997	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
2998	${Q} echo ' */' >> $@
2999	${Q} echo '' >> $@
3000	${Q} echo '' >> $@
3001	${Q} echo '#if !defined(CALC_HAVE_USTAT_H)' >> $@
3002	${Q} echo '#define CALC_HAVE_USTAT_H' >> $@
3003	${Q} echo '' >> $@
3004	${Q} echo '' >> $@
3005	${Q} echo '/* do we have or want ustat()? */' >> $@
3006	${Q} ${RM} -f have_ustat.o have_ustat${EXT}
3007	-${Q} if echo '#include <ustat.h>' | ${CC} -E - ${S}; then \
3008	    ${LCC} ${ICFLAGS} ${HAVE_USTAT} have_ustat.c -c ${S}; \
3009	    ${LCC} ${ILDFLAGS} have_ustat.o -o have_ustat${EXT} ${S}; \
3010	    ./have_ustat${EXT} > ustat_tmp ${E}; \
3011	fi
3012	-${Q} if [ -s ustat_tmp ]; then \
3013	    ${CAT} ustat_tmp >> $@; \
3014	else \
3015	    echo '#undef HAVE_USTAT /* no */' >> $@; \
3016	fi
3017	${Q} echo '' >> $@
3018	${Q} echo '' >> $@
3019	${Q} echo '#endif /* !CALC_HAVE_USTAT_H */' >> $@
3020	${Q} ${RM} -f have_ustat${EXT} have_ustat.o ustat_tmp
3021	${H} echo '$@ formed'
3022	-@if [ -z "${Q}" ]; then \
3023	    echo ''; \
3024	    echo '=-=-= start of $@ =-=-='; \
3025	    ${CAT} $@; \
3026	    echo '=-=-= end of $@ =-=-='; \
3027	    echo ''; \
3028	else \
3029	    ${TRUE}; \
3030	fi
3031
3032have_getsid.h: have_getsid.c have_unistd.h \
3033	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
3034	${Q} ${RM} -f getsid_tmp $@
3035	${H} echo 'forming $@'
3036	${Q} echo '/*' > $@
3037	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3038	${Q} echo ' */' >> $@
3039	${Q} echo '' >> $@
3040	${Q} echo '' >> $@
3041	${Q} echo '#if !defined(CALC_HAVE_GETSID_H)' >> $@
3042	${Q} echo '#define CALC_HAVE_GETSID_H' >> $@
3043	${Q} echo '' >> $@
3044	${Q} echo '' >> $@
3045	${Q} echo '/* do we have or want getsid()? */' >> $@
3046	${Q} ${RM} -f have_getsid.o have_getsid${EXT}
3047	-${Q} ${LCC} ${ICFLAGS} ${HAVE_GETSID} have_getsid.c -c ${S} \
3048		|| ${TRUE}
3049	-${Q} ${LCC} ${ILDFLAGS} have_getsid.o -o have_getsid ${S} \
3050		|| ${TRUE}
3051	-${Q} ./have_getsid${EXT} > getsid_tmp ${E} \
3052		|| ${TRUE}
3053	-${Q} if [ -s getsid_tmp ]; then \
3054	    ${CAT} getsid_tmp >> $@; \
3055	else \
3056	    echo '#undef HAVE_GETSID /* no */' >> $@; \
3057	fi
3058	${Q} echo '' >> $@
3059	${Q} echo '' >> $@
3060	${Q} echo '#endif /* !CALC_HAVE_GETSID_H */' >> $@
3061	${Q} ${RM} -f have_getsid${EXT} have_getsid.o getsid_tmp
3062	${H} echo '$@ formed'
3063	-@if [ -z "${Q}" ]; then \
3064	    echo ''; \
3065	    echo '=-=-= start of $@ =-=-='; \
3066	    ${CAT} $@; \
3067	    echo '=-=-= end of $@ =-=-='; \
3068	    echo ''; \
3069	else \
3070	    ${TRUE}; \
3071	fi
3072
3073have_getpgid.h: have_getpgid.c have_unistd.h \
3074	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
3075	${Q} ${RM} -f getpgid_tmp $@
3076	${H} echo 'forming $@'
3077	${Q} echo '/*' > $@
3078	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3079	${Q} echo ' */' >> $@
3080	${Q} echo '' >> $@
3081	${Q} echo '' >> $@
3082	${Q} echo '#if !defined(CALC_HAVE_GETPGID_H)' >> $@
3083	${Q} echo '#define CALC_HAVE_GETPGID_H' >> $@
3084	${Q} echo '' >> $@
3085	${Q} echo '' >> $@
3086	${Q} echo '/* do we have or want getpgid()? */' >> $@
3087	${Q} ${RM} -f have_getpgid.o have_getpgid${EXT}
3088	-${Q} ${LCC} ${ICFLAGS} ${HAVE_GETPGID} have_getpgid.c -c ${S} \
3089		|| ${TRUE}
3090	-${Q} ${LCC} ${ILDFLAGS} have_getpgid.o -o have_getpgid${EXT} ${S} \
3091		|| ${TRUE}
3092	-${Q} ./have_getpgid${EXT} > getpgid_tmp ${E} \
3093		|| ${TRUE}
3094	-${Q} if [ -s getpgid_tmp ]; then \
3095	    ${CAT} getpgid_tmp >> $@; \
3096	else \
3097	    echo '#undef HAVE_GETPGID /* no */' >> $@; \
3098	fi
3099	${Q} echo '' >> $@
3100	${Q} echo '' >> $@
3101	${Q} echo '#endif /* !CALC_HAVE_GETPGID_H */' >> $@
3102	${Q} ${RM} -f have_getpgid${EXT} have_getpgid.o getpgid_tmp
3103	${H} echo '$@ formed'
3104	-@if [ -z "${Q}" ]; then \
3105	    echo ''; \
3106	    echo '=-=-= start of $@ =-=-='; \
3107	    ${CAT} $@; \
3108	    echo '=-=-= end of $@ =-=-='; \
3109	    echo ''; \
3110	else \
3111	    ${TRUE}; \
3112	fi
3113
3114have_gettime.h: have_gettime.c banned.h have_ban_pragma.h \
3115		${MAKE_FILE} ${LOC_MKF}
3116	${Q} ${RM} -f gettime_tmp $@
3117	${H} echo 'forming $@'
3118	${Q} echo '/*' > $@
3119	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3120	${Q} echo ' */' >> $@
3121	${Q} echo '' >> $@
3122	${Q} echo '' >> $@
3123	${Q} echo '#if !defined(CALC_HAVE_GETTIME_H)' >> $@
3124	${Q} echo '#define CALC_HAVE_GETTIME_H' >> $@
3125	${Q} echo '' >> $@
3126	${Q} echo '' >> $@
3127	${Q} echo '/* do we have or want clock_gettime()? */' >> $@
3128	${Q} ${RM} -f have_gettime.o have_gettime${EXT}
3129	-${Q} ${LCC} ${ICFLAGS} ${HAVE_GETTIME} have_gettime.c -c ${S} \
3130		|| ${TRUE}
3131	-${Q} ${LCC} ${ILDFLAGS} have_gettime.o -o have_gettime ${S} \
3132		|| ${TRUE}
3133	-${Q} ./have_gettime${EXT} > gettime_tmp ${E} \
3134		|| ${TRUE}
3135	-${Q} if [ -s gettime_tmp ]; then \
3136	    ${CAT} gettime_tmp >> $@; \
3137	else \
3138	    echo '#undef HAVE_GETTIME /* no */' >> $@; \
3139	fi
3140	${Q} echo '' >> $@
3141	${Q} echo '' >> $@
3142	${Q} echo '#endif /* !CALC_HAVE_GETTIME_H */' >> $@
3143	${Q} ${RM} -f have_gettime${EXT} have_gettime.o gettime_tmp
3144	${H} echo '$@ formed'
3145	-@if [ -z "${Q}" ]; then \
3146	    echo ''; \
3147	    echo '=-=-= start of $@ =-=-='; \
3148	    ${CAT} $@; \
3149	    echo '=-=-= end of $@ =-=-='; \
3150	    echo ''; \
3151	else \
3152	    ${TRUE}; \
3153	fi
3154
3155have_getprid.h: have_getprid.c have_unistd.h \
3156	banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
3157	${Q} ${RM} -f getprid_tmp $@
3158	${H} echo 'forming $@'
3159	${Q} echo '/*' > $@
3160	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3161	${Q} echo ' */' >> $@
3162	${Q} echo '' >> $@
3163	${Q} echo '' >> $@
3164	${Q} echo '#if !defined(CALC_HAVE_GETPRID_H)' >> $@
3165	${Q} echo '#define CALC_HAVE_GETPRID_H' >> $@
3166	${Q} echo '' >> $@
3167	${Q} echo '' >> $@
3168	${Q} echo '/* do we have or want getprid()? */' >> $@
3169	${Q} ${RM} -f have_getprid.o have_getprid${EXT}
3170	-${Q} ${LCC} ${ICFLAGS} ${HAVE_GETPRID} have_getprid.c -c ${S} \
3171		|| ${TRUE}
3172	-${Q} ${LCC} ${ILDFLAGS} have_getprid.o -o have_getprid${EXT} ${S} \
3173		|| ${TRUE}
3174	-${Q} ./have_getprid${EXT} > getprid_tmp ${E} \
3175		|| ${TRUE}
3176	-${Q} if [ -s getprid_tmp ]; then \
3177	    ${CAT} getprid_tmp >> $@; \
3178	else \
3179	    echo '#undef HAVE_GETPRID /* no */' >> $@; \
3180	fi
3181	${Q} echo '' >> $@
3182	${Q} echo '' >> $@
3183	${Q} echo '#endif /* !CALC_HAVE_GETPRID_H */' >> $@
3184	${Q} ${RM} -f have_getprid${EXT} have_getprid.o getprid_tmp
3185	${H} echo '$@ formed'
3186	-@if [ -z "${Q}" ]; then \
3187	    echo ''; \
3188	    echo '=-=-= start of $@ =-=-='; \
3189	    ${CAT} $@; \
3190	    echo '=-=-= end of $@ =-=-='; \
3191	    echo ''; \
3192	else \
3193	    ${TRUE}; \
3194	fi
3195
3196have_urandom.h: ${MAKE_FILE} ${LOC_MKF}
3197	${Q} ${RM} -f $@
3198	${H} echo 'forming $@'
3199	${Q} echo '/*' > $@
3200	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3201	${Q} echo ' */' >> $@
3202	${Q} echo '' >> $@
3203	${Q} echo '' >> $@
3204	${Q} echo '#if !defined(CALC_HAVE_URANDOM_H)' >> $@
3205	${Q} echo '#define CALC_HAVE_URANDOM_H' >> $@
3206	${Q} echo '' >> $@
3207	${Q} echo '' >> $@
3208	${Q} echo '/* do we have /dev/urandom? */' >> $@
3209	-${Q} if [ X"${HAVE_URANDOM}" = X"YES" ]; then \
3210	    echo '#define HAVE_URANDOM	/* yes */' >> $@; \
3211	elif [ X"${HAVE_URANDOM}" = X"NO" ]; then \
3212	    echo '#undef HAVE_URANDOM  /* no */' >> $@; \
3213	elif [ -r /dev/urandom ] 2>/dev/null; then \
3214	    echo '#define HAVE_URANDOM  /* yes */' >> $@; \
3215	else \
3216	    echo '#undef HAVE_URANDOM	 /* no */' >> $@; \
3217	fi
3218	${Q} echo '' >> $@
3219	${Q} echo '' >> $@
3220	${Q} echo '#endif /* !CALC_HAVE_URANDOM_H */' >> $@
3221	${H} echo '$@ formed'
3222	-@if [ -z "${Q}" ]; then \
3223	    echo ''; \
3224	    echo '=-=-= start of $@ =-=-='; \
3225	    ${CAT} $@; \
3226	    echo '=-=-= end of $@ =-=-='; \
3227	    echo ''; \
3228	else \
3229	    ${TRUE}; \
3230	fi
3231
3232have_rusage.h: have_rusage.c banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
3233	${Q} ${RM} -f rusage_tmp $@
3234	${H} echo 'forming $@'
3235	${Q} echo '/*' > $@
3236	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3237	${Q} echo ' */' >> $@
3238	${Q} echo '' >> $@
3239	${Q} echo '' >> $@
3240	${Q} echo '#if !defined(CALC_HAVE_RUSAGE_H)' >> $@
3241	${Q} echo '#define CALC_HAVE_RUSAGE_H' >> $@
3242	${Q} echo '' >> $@
3243	${Q} echo '' >> $@
3244	${Q} echo '/* do we have or want getrusage()? */' >> $@
3245	${Q} ${RM} -f have_rusage.o have_rusage${EXT}
3246	-${Q} ${LCC} ${ICFLAGS} ${HAVE_GETRUSAGE} have_rusage.c -c ${S} \
3247		|| ${TRUE}
3248	-${Q} ${LCC} ${ILDFLAGS} have_rusage.o -o have_rusage${EXT} ${S} \
3249		|| ${TRUE}
3250	-${Q} ./have_rusage${EXT} > rusage_tmp ${E} \
3251		|| ${TRUE}
3252	-${Q} if [ -s rusage_tmp ]; then \
3253	    ${CAT} rusage_tmp >> $@; \
3254	else \
3255	    echo '#undef HAVE_GETRUSAGE /* no */' >> $@; \
3256	fi
3257	${Q} echo '' >> $@
3258	${Q} echo '' >> $@
3259	${Q} echo '#endif /* !CALC_HAVE_RUSAGE_H */' >> $@
3260	${Q} ${RM} -f have_rusage${EXT} have_rusage.o rusage_tmp
3261	${H} echo '$@ formed'
3262	-@if [ -z "${Q}" ]; then \
3263	    echo ''; \
3264	    echo '=-=-= start of $@ =-=-='; \
3265	    ${CAT} $@; \
3266	    echo '=-=-= end of $@ =-=-='; \
3267	    echo ''; \
3268	else \
3269	    ${TRUE}; \
3270	fi
3271
3272have_strdup.h: have_strdup.c banned.h have_ban_pragma.h ${MAKE_FILE} ${LOC_MKF}
3273	${Q} ${RM} -f strdup_tmp $@
3274	${H} echo 'forming $@'
3275	${Q} echo '/*' > $@
3276	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3277	${Q} echo ' */' >> $@
3278	${Q} echo '' >> $@
3279	${Q} echo '' >> $@
3280	${Q} echo '#if !defined(CALC_HAVE_STRDUP_H)' >> $@
3281	${Q} echo '#define CALC_HAVE_STRDUP_H' >> $@
3282	${Q} echo '' >> $@
3283	${Q} echo '' >> $@
3284	${Q} echo '/* do we have or want getstrdup()? */' >> $@
3285	${Q} ${RM} -f have_strdup.o have_strdup${EXT}
3286	-${Q} ${LCC} ${ICFLAGS} ${HAVE_STRDUP} have_strdup.c -c ${S} \
3287		|| ${TRUE}
3288	-${Q} ${LCC} ${ILDFLAGS} have_strdup.o -o have_strdup ${S} \
3289		|| ${TRUE}
3290	-${Q} ./have_strdup${EXT} > strdup_tmp ${E} \
3291		|| ${TRUE}
3292	-${Q} if [ -s strdup_tmp ]; then \
3293	    ${CAT} strdup_tmp >> $@; \
3294	else \
3295	    echo '#undef HAVE_STRDUP /* no */' >> $@; \
3296	fi
3297	${Q} echo '' >> $@
3298	${Q} echo '' >> $@
3299	${Q} echo '#endif /* !CALC_HAVE_STRDUP_H */' >> $@
3300	${Q} ${RM} -f have_strdup${EXT} have_strdup.o strdup_tmp
3301	${H} echo '$@ formed'
3302	-@if [ -z "${Q}" ]; then \
3303	    echo ''; \
3304	    echo '=-=-= start of $@ =-=-='; \
3305	    ${CAT} $@; \
3306	    echo '=-=-= end of $@ =-=-='; \
3307	    echo ''; \
3308	else \
3309	    ${TRUE}; \
3310	fi
3311
3312args.h: have_stdvs.c have_varvs.c have_string.h have_unistd.h \
3313	have_stdlib.h banned.h have_ban_pragma.h
3314	${Q} ${RM} -f $@
3315	${H} echo 'forming $@'
3316	${Q} echo '/*' > $@
3317	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3318	${Q} echo ' */' >> $@
3319	${Q} echo '' >> $@
3320	${Q} echo '' >> $@
3321	${Q} echo '#if !defined(CALC_ARGS_H)' >> $@
3322	${Q} echo '#define CALC_ARGS_H' >> $@
3323	${Q} echo '' >> $@
3324	${Q} echo '' >> $@
3325	${Q} ${RM} -f have_stdvs.o have_stdvs${EXT}
3326	-${Q} ${LCC} ${ICFLAGS} ${HAVE_VSNPRINTF} have_stdvs.c -c ${S} \
3327		|| ${TRUE}
3328	-${Q} ${LCC} ${ILDFLAGS} have_stdvs.o -o have_stdvs${EXT} ${S} \
3329		|| ${TRUE}
3330	-${Q} if ./have_stdvs${EXT} >>$@ ${E}; then \
3331	    ${TOUCH} have_args.sh; \
3332	else \
3333	    ${TRUE}; \
3334	fi
3335	-${Q} if [ ! -f have_args.sh ] && [ X"${HAVE_VSNPRINTF}" = X ]; then \
3336	    ${RM} -f have_stdvs.o have_stdvs${EXT} have_varvs.o; \
3337	    ${RM} -f have_varvs${EXT}; \
3338	    ${LCC} ${ICFLAGS} ${HAVE_VSNPRINTF} have_varvs.c -c ${S}; \
3339	    ${LCC} ${ILDFLAGS} have_varvs.o -o have_varvs${EXT} ${E}; \
3340	    if ./have_varvs${EXT} >>$@ 2>/dev/null; then \
3341		${TOUCH} have_args.sh; \
3342	    else \
3343		${TRUE}; \
3344	    fi; \
3345	else \
3346	    ${TRUE}; \
3347	fi
3348	-${Q} if [ -f have_args.sh ]; then \
3349	    echo 'exit 0' > have_args.sh; \
3350	else \
3351	    echo 'exit 1' > have_args.sh; \
3352	    echo "Unable to determine what type of variable args and"; \
3353	    echo "what type of vsnprintf() should be used.  Set or change"; \
3354	    echo "the Makefile variable HAVE_VSNPRINTF."; \
3355	fi
3356	${Q} sh ./have_args.sh
3357	${Q} echo '' >> $@
3358	${Q} echo '' >> $@
3359	${Q} echo '#endif /* !CALC_ARGS_H */' >> $@
3360	${Q} ${RM} -f have_stdvs.o have_varvs.o have_varvs${EXT} have_args.sh
3361	${Q} ${RM} -f core
3362	${H} echo '$@ formed'
3363	-@if [ -z "${Q}" ]; then \
3364	    echo ''; \
3365	    echo '=-=-= start of $@ =-=-='; \
3366	    ${CAT} $@; \
3367	    echo '=-=-= end of $@ =-=-='; \
3368	    echo ''; \
3369	else \
3370	    ${TRUE}; \
3371	fi
3372
3373calcerr.h: calcerr.tbl calcerr_h.sed calcerr_h.awk ${MAKE_FILE} ${LOC_MKF}
3374	${Q} ${RM} -f calerr.h
3375	${H} echo 'forming $@'
3376	${Q} echo '/*' > $@
3377	${Q} echo ' * DO NOT EDIT' >> $@
3378	${Q} echo ' *' >> $@
3379	${Q} echo ' * generated by calcerr.tbl via Makefile.simple' >> $@
3380	${Q} echo ' */' >> $@
3381	${Q} echo '' >> $@
3382	${Q} echo '' >> $@
3383	${Q} echo '#if !defined(CALC_CALCERR_H)' >> $@
3384	${Q} echo '#define CALC_CALCERR_H' >> $@
3385	${Q} echo '' >> $@
3386	${Q} echo '' >> $@
3387	${Q} ${SED} -f calcerr_h.sed < calcerr.tbl | \
3388	    ${AWK} -f calcerr_h.awk >> $@
3389	${Q} echo '' >> $@
3390	${Q} echo '' >> $@
3391	${Q} echo '#endif /* !CALC_CALCERR_H */' >> $@
3392	${H} echo '$@ formed'
3393	-@if [ -z "${Q}" ]; then \
3394	    echo ''; \
3395	    echo '=-=-= start of $@ =-=-='; \
3396	    ${CAT} $@; \
3397	    echo '=-=-= end of $@ =-=-='; \
3398	    echo ''; \
3399	else \
3400	    ${TRUE}; \
3401	fi
3402
3403calcerr.c: calcerr.tbl calcerr_c.sed calcerr_c.awk ${MAKE_FILE} ${LOC_MKF}
3404	${Q} ${RM} -f calerr.c
3405	${H} echo 'forming $@'
3406	${Q} echo '/*' > $@
3407	${Q} echo ' * DO NOT EDIT' >> $@
3408	${Q} echo ' *' >> $@
3409	${Q} echo ' * generated by calcerr.tbl via Makefile.simple' >> $@
3410	${Q} echo ' */' >> $@
3411	${Q} echo '' >> $@
3412	${Q} ${SED} -f calcerr_c.sed < calcerr.tbl | \
3413	    ${AWK} -f calcerr_c.awk >> $@
3414	${H} echo '$@ formed'
3415	-@if [ -z "${Q}" ]; then \
3416	    echo ''; \
3417	    echo '=-=-= start of $@ =-=-='; \
3418	    ${CAT} $@; \
3419	    echo '=-=-= end of $@ =-=-='; \
3420	    echo ''; \
3421	else \
3422	    ${TRUE}; \
3423	fi
3424
3425have_unused.h: have_unused.c have_stdlib.h have_ban_pragma.h \
3426	       ${MAKE_FILE} ${LOC_MKF}
3427	${Q} ${RM} -f unused_tmp $@
3428	${H} echo 'forming $@'
3429	${Q} echo '/*' > $@
3430	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3431	${Q} echo ' */' >> $@
3432	${Q} echo '' >> $@
3433	${Q} echo '' >> $@
3434	${Q} echo '#if !defined(CALC_HAVE_UNUSED_H)' >> $@
3435	${Q} echo '#define CALC_HAVE_UNUSED_H' >> $@
3436	${Q} echo '' >> $@
3437	${Q} echo '' >> $@
3438	${Q} echo '/* do we have/want the unused attribute? */' >> $@
3439	${Q} ${RM} -f have_unused.o have_unused${EXT}
3440	-${Q} ${LCC} ${ICFLAGS} ${HAVE_UNUSED} have_unused.c -c ${S} \
3441		|| ${TRUE}
3442	-${Q} ${LCC} ${ILDFLAGS} have_unused.o -o have_unused ${S} \
3443		|| ${TRUE}
3444	-${Q} ./have_unused${EXT} > unused_tmp ${E} \
3445		|| ${TRUE}
3446	-${Q} if [ -s unused_tmp ]; then \
3447	    ${CAT} unused_tmp >> $@; \
3448	else \
3449	    echo '#undef HAVE_UNUSED /* no */' >> $@; \
3450	    echo '#undef UNUSED' >> $@; \
3451	    echo '#define UNUSED /* no */' >> $@; \
3452	fi
3453	${Q} echo '' >> $@
3454	${Q} echo '' >> $@
3455	${Q} echo '#endif /* !CALC_HAVE_UNUSED_H */' >> $@
3456	${Q} ${RM} -f have_unused${EXT} have_unused.o unused_tmp
3457	${H} echo '$@ formed'
3458	-@if [ -z "${Q}" ]; then \
3459	    echo ''; \
3460	    echo '=-=-= start of $@ =-=-='; \
3461	    ${CAT} $@; \
3462	    echo '=-=-= end of $@ =-=-='; \
3463	    echo ''; \
3464	else \
3465	    ${TRUE}; \
3466	fi
3467
3468have_ban_pragma.h: have_ban_pragma.c banned.h ${MAKE_FILE} ${LOC_MKF}
3469	${Q} ${RM} -f unused_tmp $@
3470	${H} echo 'forming $@'
3471	${Q} echo '/*' > $@
3472	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3473	${Q} echo ' */' >> $@
3474	${Q} echo '' >> $@
3475	${Q} echo '' >> $@
3476	${Q} echo '#if !defined(CALC_HAVE_BAN_PRAGMA_H)' >> $@
3477	${Q} echo '#define CALC_HAVE_BAN_PRAGMA_H' >> $@
3478	${Q} echo '' >> $@
3479	${Q} echo '' >> $@
3480	${Q} echo '/* do we have/want #pragma GCC poison func_name? */' >> $@
3481	${Q} ${RM} -f have_ban_pragma.o have_ban_pragma${EXT}
3482	-${Q} ${LCC} ${ICFLAGS} ${HAVE_PRAGMA_GCC_POSION} \
3483		have_ban_pragma.c -c ${S} \
3484			|| ${TRUE}
3485	-${Q} ${LCC} ${ILDFLAGS} have_ban_pragma.o -o have_ban_pragma ${S} \
3486		|| ${TRUE}
3487	-${Q} ./have_ban_pragma${EXT} > unused_tmp ${E} \
3488		|| ${TRUE}
3489	-${Q} if [ -s unused_tmp ]; then \
3490	    ${CAT} unused_tmp >> $@; \
3491	else \
3492	    echo '#undef HAVE_PRAGMA_GCC_POSION /* no */' \
3493	         >> $@; \
3494	fi
3495	${Q} echo '' >> $@
3496	${Q} echo '' >> $@
3497	${Q} echo '#endif /* !CALC_HAVE_BAN_PRAGMA_H */' >> $@
3498	${Q} ${RM} -f have_ban_pragma${EXT} have_ban_pragma.o unused_tmp
3499	${H} echo '$@ formed'
3500	-@if [ -z "${Q}" ]; then \
3501	    echo ''; \
3502	    echo '=-=-= start of $@ =-=-='; \
3503	    ${CAT} $@; \
3504	    echo '=-=-= end of $@ =-=-='; \
3505	    echo ''; \
3506	else \
3507	    ${TRUE}; \
3508	fi
3509
3510have_strlcpy.h: have_strlcpy.c banned.h have_ban_pragma.h \
3511		${MAKE_FILE} ${LOC_MKF}
3512	${Q} ${RM} -f unused_tmp $@
3513	${H} echo 'forming $@'
3514	${Q} echo '/*' > $@
3515	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3516	${Q} echo ' */' >> $@
3517	${Q} echo '' >> $@
3518	${Q} echo '' >> $@
3519	${Q} echo '#if !defined(CALC_HAVE_STRLCPY_H)' >> $@
3520	${Q} echo '#define CALC_HAVE_STRLCPY_H' >> $@
3521	${Q} echo '' >> $@
3522	${Q} echo '' >> $@
3523	${Q} echo '/* do we have/want the strlcpy() function? */' >> $@
3524	${Q} ${RM} -f have_strlcpy.o have_strlcpy${EXT}
3525	-${Q} ${LCC} ${ICFLAGS} ${HAVE_NO_STRLCPY} have_strlcpy.c -c ${S} \
3526		|| ${TRUE}
3527	-${Q} ${LCC} ${ILDFLAGS} have_strlcpy.o -o have_strlcpy ${S} \
3528		|| ${TRUE}
3529	-${Q} ./have_strlcpy${EXT} > unused_tmp ${E} \
3530		|| ${TRUE}
3531	-${Q} if [ -s unused_tmp ]; then \
3532	    ${CAT} unused_tmp >> $@; \
3533	else \
3534	    echo '#undef HAVE_STRLCPY /* no */' \
3535	         >> $@; \
3536	fi
3537	${Q} echo '' >> $@
3538	${Q} echo '' >> $@
3539	${Q} echo '#endif /* !CALC_HAVE_STRLCPY_H */' >> $@
3540	${Q} ${RM} -f have_strlcpy${EXT} have_strlcpy.o unused_tmp
3541	${H} echo '$@ formed'
3542	-@if [ -z "${Q}" ]; then \
3543	    echo ''; \
3544	    echo '=-=-= start of $@ =-=-='; \
3545	    ${CAT} $@; \
3546	    echo '=-=-= end of $@ =-=-='; \
3547	    echo ''; \
3548	else \
3549	    ${TRUE}; \
3550	fi
3551
3552have_strlcat.h: have_strlcat.c banned.h have_ban_pragma.h \
3553		${MAKE_FILE} ${LOC_MKF}
3554	${Q} ${RM} -f unused_tmp $@
3555	${H} echo 'forming $@'
3556	${Q} echo '/*' > $@
3557	${Q} echo ' * DO NOT EDIT -- generated by the Makefile' >> $@
3558	${Q} echo ' */' >> $@
3559	${Q} echo '' >> $@
3560	${Q} echo '' >> $@
3561	${Q} echo '#if !defined(CALC_HAVE_STRLCAT_H)' >> $@
3562	${Q} echo '#define CALC_HAVE_STRLCAT_H' >> $@
3563	${Q} echo '' >> $@
3564	${Q} echo '' >> $@
3565	${Q} echo '/* do we have/want the strlcat() function? */' >> $@
3566	${Q} ${RM} -f have_strlcat.o have_strlcat${EXT}
3567	-${Q} ${LCC} ${ICFLAGS} ${HAVE_NO_STRLCAT} have_strlcat.c -c ${S} \
3568		|| ${TRUE}
3569	-${Q} ${LCC} ${ILDFLAGS} have_strlcat.o -o have_strlcat ${S} \
3570		|| ${TRUE}
3571	-${Q} ./have_strlcat${EXT} > unused_tmp ${E} \
3572		|| ${TRUE}
3573	-${Q} if [ -s unused_tmp ]; then \
3574	    ${CAT} unused_tmp >> $@; \
3575	else \
3576	    echo '#undef HAVE_STRLCAT /* no */' \
3577	         >> $@; \
3578	fi
3579	${Q} echo '' >> $@
3580	${Q} echo '' >> $@
3581	${Q} echo '#endif /* !CALC_HAVE_STRLCAT_H */' >> $@
3582	${Q} ${RM} -f have_strlcat${EXT} have_strlcat.o unused_tmp
3583	${H} echo '$@ formed'
3584	-@if [ -z "${Q}" ]; then \
3585	    echo ''; \
3586	    echo '=-=-= start of $@ =-=-='; \
3587	    ${CAT} $@; \
3588	    echo '=-=-= end of $@ =-=-='; \
3589	    echo ''; \
3590	else \
3591	    ${TRUE}; \
3592	fi
3593
3594###
3595#
3596# Build .h files for Windows based systems
3597#
3598# This is really a internal utility rule that is used to create the
3599# win32 sub-directory for distribution.
3600#
3601###
3602
3603win32_hsrc: win32.mkdef banned.h have_ban_pragma.h alloc.h \
3604	    ${MAKE_FILE} ${LOC_MKF}
3605	${H} echo 'forming win32 directory'
3606	${Q} ${RM} -rf win32
3607	${Q} ${MKDIR} -p win32
3608	${Q} ${CP} banned.h have_ban_pragma.h alloc.h win32
3609	${Q} ${CP} ${UTIL_C_SRC} win32
3610	${Q} ${CP} ${UTIL_MISC_SRC} win32
3611	${Q} ${CP} ${MAKE_FILE} ${LOC_MKF}  win32
3612	${Q} (cd win32; \
3613	 echo "${MAKE} -f ${MAKE_FILE} hsrc `${CAT} win32.mkdef` EXT="; \
3614	 ${MAKE} -f ${MAKE_FILE} hsrc `${CAT} win32.mkdef` EXT=; \
3615	 ${RM} -f ${UTIL_C_SRC}; \
3616	 ${RM} -f ${UTIL_MISC_SRC}; \
3617	 ${RM} -f ${UTIL_OBJS}; \
3618	 ${RM} -f ${UTIL_PROGS}; \
3619	 ${RM} -f ${UTIL_FILES}; \
3620	 ${RM} -f ${MAKE_FILE} ${LOC_MKF})
3621	${H} echo 'win32 directory formed'
3622
3623###
3624#
3625# These two .all rules are used to determine of the lower level
3626# directory has had its all rule performed.
3627#
3628###
3629
3630cal/.all: cal/Makefile
3631	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
3632	${V} echo '=-=-=-=-= Invoking all rule for cal =-=-=-=-='
3633	${RM} -f $@
3634	cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} all
3635	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
3636	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
3637
3638help/.all: help/Makefile
3639	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
3640	${V} echo '=-=-=-=-= Invoking all rule for help =-=-=-=-='
3641	${RM} -f $@
3642	cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} all
3643	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
3644	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
3645
3646help/builtin: help/Makefile \
3647	      func.c help/builtin.top help/builtin.end help/funclist.sed
3648	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
3649	${V} echo '=-=-=-=-= Invoking builtin rule for help =-=-=-=-='
3650	${RM} -f $@
3651	cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} builtin
3652	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
3653	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
3654
3655cscript/.all: ${CSCRIPT_TARGETS}
3656
3657${CSCRIPT_TARGETS}: cscript/Makefile
3658	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
3659	${V} echo '=-=-=-=-= Invoking all rule for cscript =-=-=-=-='
3660	${RM} -f cscript/.all
3661	cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} all
3662	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
3663	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
3664
3665custom/.all: custom/Makefile
3666	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
3667	${V} echo '=-=-=-=-= Invoking all rule for custom =-=-=-=-='
3668	${RM} -f $@
3669	cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} all
3670	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
3671	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
3672
3673custom/libcustcalc${LIB_EXT_VERSION}: custom/Makefile
3674	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
3675	${V} echo '=-=-=-=-= Invoking all rule for custom =-=-=-=-='
3676	cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} $@
3677	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
3678	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
3679
3680libcustcalc${LIB_EXT_VERSION}: custom/libcustcalc${LIB_EXT_VERSION}
3681	${Q} ${RM} -f $@
3682	${CP} -p $? $@
3683
3684libcustcalc${LIB_EXT}: libcustcalc${LIB_EXT_VERSION}
3685	${Q} ${RM} -f $@
3686	${LN} -s $? $@
3687
3688###
3689#
3690# building calc-static and static lib*.a libraries
3691#
3692###
3693
3694calc-static${EXT}: .hsrc ${CALCOBJS} \
3695		   ${CALC_STATIC_LIBS} ${MAKE_FILE} ${LOC_MKF}
3696	${RM} -f $@
3697	${CC} ${LDFLAGS} ${CALCOBJS} ${LD_STATIC} ${CALC_STATIC_LIBS} \
3698	      ${READLINE_LIB} ${READLINE_EXTRAS} -o $@
3699
3700libcustcalc.a: custom/libcustcalc.a
3701	${Q} ${RM} -f $@
3702	${CP} -f $? $@
3703
3704libcalc.a: ${LIBOBJS} ${MAKE_FILE} ${LOC_MKF}
3705	${RM} -f libcalc.a
3706	${AR} qc libcalc.a ${LIBOBJS}
3707	${RANLIB} libcalc.a
3708	${CHMOD} 0644 libcalc.a
3709
3710custom/libcustcalc.a: custom/Makefile
3711	cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} libcustcalc.a
3712
3713sample_rand-static${EXT}: sample_rand.o ${CALC_STATIC_LIBS} \
3714			  ${MAKE_FILE} ${LOC_MKF}
3715	${CC} ${LDFLAGS} sample_rand.o ${LD_STATIC} \
3716	      ${CALC_STATIC_LIBS} ${READLINE_LIB} ${READLINE_EXTRAS} -o $@
3717
3718sample_many-static${EXT}: sample_many.o ${CALC_STATIC_LIBS} \
3719			  ${MAKE_FILE} ${LOC_MKF}
3720	${CC} ${LDFLAGS} sample_many.o ${LD_STATIC} \
3721	      ${CALC_STATIC_LIBS} ${READLINE_LIB} ${READLINE_EXTRAS} -o $@
3722
3723###
3724#
3725# Home grown make dependency rules.  Your system may not support
3726# or have the needed tools.  You can ignore this section.
3727#
3728# We will form a skeleton tree of *.c files containing only #include "foo.h"
3729# lines and .h files containing the same lines surrounded by multiple include
3730# prevention lines.  This allows us to build a static depend list that will
3731# satisfy all possible cpp symbol definition combinations.
3732#
3733###
3734
3735depend: hsrc custom/Makefile
3736	${Q} if [ -f ${MAKE_FILE}.bak ]; then \
3737		echo "${MAKE_FILE}.bak exists, remove or move it"; \
3738		exit 1; \
3739	else \
3740	    ${TRUE}; \
3741	fi
3742	${V} echo '=-=-=-=-= Invoking depend rule for cscript =-=-=-=-='
3743	${Q} cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} depend
3744	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
3745	${V} echo '=-=-=-=-= Invoking depend rule for custom =-=-=-=-='
3746	${Q} cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} depend
3747	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
3748	${Q} echo forming skel
3749	${Q} ${RM} -rf skel
3750	${Q} ${MKDIR} -p skel
3751	-${Q} for i in ${C_SRC} ${BUILD_C_SRC}; do \
3752	    ${SED} -n '/^#[	 ]*include[	 ]*"/p' "$$i" | \
3753	    ${GREP} -v '\.\./getopt/getopt\.h' > "skel/$$i"; \
3754	done
3755	${Q} ${MKDIR} -p skel/custom
3756	-${Q} for i in ${H_SRC} ${BUILD_H_SRC} custom.h /dev/null; do \
3757	    if [ X"$$i" != X"/dev/null" ]; then \
3758		tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \
3759		echo "#if !defined($$tag)" > "skel/$$i"; \
3760		echo "#define $$tag" >> "skel/$$i"; \
3761		${SED} -n '/^#[	 ]*include[	 ]*"/p' "$$i" | \
3762		    LANG=C ${SORT} -u >> "skel/$$i"; \
3763		echo '#endif /* '"$$tag"' */' >> "skel/$$i"; \
3764	    fi; \
3765	done
3766	${Q} ${RM} -f skel/makedep.out
3767	${Q} echo top level skel formed
3768	${Q} echo forming dependency list
3769	${Q} :> skel/makedep.out
3770	${Q} cd skel; ${MAKEDEPEND} \
3771	    -w 1 -f makedep.out -- \
3772	    ${CFLAGS} -- \
3773	    ${C_SRC} ${BUILD_C_SRC} 2>/dev/null
3774	-${Q} for i in ${C_SRC} ${BUILD_C_SRC} /dev/null; do \
3775	    if [ X"$$i" != X"/dev/null" ]; then \
3776	      echo "$$i" | ${SED} 's/^\(.*\)\.c/\1.o: \1.c/'; \
3777	    fi; \
3778	done >> skel/makedep.out
3779	${Q} LANG=C ${SORT} -u skel/makedep.out -o skel/makedep.out
3780	echo '#if 0	/* start of skip for non-Gnu makefiles */' \
3781	  >> skel/makedep.out
3782	echo '###################################################' \
3783	  >> skel/makedep.out
3784	echo '# End 2nd skip of lines for the custom/Makefile   #' \
3785	  >> skel/makedep.out
3786	echo '###################################################' \
3787	  >> skel/makedep.out
3788	echo 'endif' >> skel/makedep.out
3789	echo '#endif	/* end of skip for non-Gnu makefiles */' \
3790	  >> skel/makedep.out
3791	${Q} echo dependency list formed
3792	${Q} echo forming new ${MAKE_FILE}
3793	${Q} ${RM} -f ${MAKE_FILE}.bak
3794	${Q} ${MV} ${MAKE_FILE} ${MAKE_FILE}.bak
3795	${Q} ${SED} -n '1,/^# DO NOT DELETE THIS LINE/p' \
3796		    ${MAKE_FILE}.bak > ${MAKE_FILE}
3797	${Q} ${GREP} -v '^#' skel/makedep.out >> ${MAKE_FILE}
3798	${Q} echo removing top level skel
3799	${Q} ${RM} -rf skel
3800	-${Q} if ${CMP} -s ${MAKE_FILE}.bak ${MAKE_FILE}; then \
3801	    echo 'top level ${MAKE_FILE} was already up to date'; \
3802	    echo 'restoring original ${MAKE_FILE}'; \
3803	    ${MV} -f ${MAKE_FILE}.bak ${MAKE_FILE}; \
3804	else \
3805	    echo 'old ${MAKE_FILE} is now ${MAKE_FILE}.bak'; \
3806	    echo 'new top level ${MAKE_FILE} formed'; \
3807	    echo 'try: diff -u ${MAKE_FILE}.bak ${MAKE_FILE}'; \
3808	fi
3809
3810# generate the list of h files for lower level depend use
3811#
3812h_list:
3813	-${Q} for i in ${H_SRC} ${BUILD_H_SRC} /dev/null; do \
3814	    if [ X"$$i" != X"/dev/null" ]; then \
3815		echo $$i; \
3816	    fi; \
3817	done
3818
3819###
3820#
3821# calc version
3822#
3823# calc_version:
3824#	This rule is the most accurate as it uses calc source to
3825#	produce the version value.  This rule produces a full
3826#	version string.  Note that the full version could be 4
3827#	or 3 levels long depending on the minor patch number.
3828#
3829# version:
3830#	This rule simply echoes the value found in this makefile.
3831#	This rule produces the full version string.  Note that the
3832#	full version could be 4 or 3 levels long depending on the
3833#	minor patch number.
3834#
3835###
3836
3837calc_version: ver_calc${EXT}
3838	@./ver_calc${EXT}
3839
3840version:
3841	@echo ${VERSION}
3842
3843ver_calc${EXT}: version.c strl.c have_string.h have_const.h have_newstr.h \
3844	have_strlcpy.h have_memmv.h have_strlcat.h endian_calc.h longbits.h \
3845	have_unused.h charbit.h
3846	${RM} -f $@
3847	${LCC} ${ICFLAGS} -DCALC_VER ${ILDFLAGS} version.c strl.c -o $@
3848
3849###
3850#
3851# File distribution list generation.  You can ignore this section.
3852#
3853# We will form the names of source files as if they were in a
3854# sub-directory called calc.
3855#
3856###
3857
3858distlist: ${DISTLIST} custom/Makefile
3859	${Q} (for i in ${DISTLIST} /dev/null; do \
3860	    if [ X"$$i" != X"/dev/null" ]; then \
3861		echo $$i; \
3862	    fi; \
3863	done; \
3864	for i in ${BUILD_H_SRC} ${BUILD_C_SRC} /dev/null; do \
3865	    if [ X"$$i" != X"/dev/null" ]; then \
3866		echo win32/$$i; \
3867	    fi; \
3868	done; \
3869	(cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} $@); \
3870	(cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} $@); \
3871	(cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} $@); \
3872	(cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} $@) \
3873	) | LANG=C ${SORT}
3874
3875distdir: custom/Makefile
3876	${Q} (echo .; \
3877	echo win32; \
3878	(cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} $@); \
3879	(cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} $@); \
3880	(cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} $@); \
3881	(cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} $@) \
3882	) | LANG=C ${SORT}
3883
3884calcliblist: custom/Makefile
3885	${Q} (for i in ${CALCLIBLIST} /dev/null; do \
3886	    if [ X"$$i" != X"/dev/null" ]; then \
3887		echo $$i; \
3888	    fi; \
3889	done; \
3890	(cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} $@); \
3891	(cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} $@); \
3892	(cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} $@); \
3893	(cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} $@) \
3894	) | LANG=C ${SORT}
3895
3896calcliblistfmt:
3897	${Q} ${MAKE} -f Makefile calcliblist | \
3898	    ${FMT} -64 | ${SED} -e 's/^/	/'
3899
3900Makefile.simple: Makefile custom/Makefile.simple
3901	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
3902	${Q} if [ -f $@.bak ]; then \
3903		echo "$@.bak exists, remove or move it"; \
3904		exit 1; \
3905	else \
3906	    ${TRUE}; \
3907	fi
3908	-${Q} if [ -f $@ ]; then \
3909	    ${MV} -f $@ $@.bak; \
3910	fi
3911	${Q} ${AWK} '/^#if 0/{skp=1} {if(!skp){print $$0}} /^#endif/{skp=0}' \
3912	    Makefile | \
3913	    ${SED} -e 's/cd custom; $${MAKE} -f Makefile/&.simple/' \
3914		   -e 's;^# SRC:.*;# SRC: $@ - non-GNU version;' \
3915		   -e '/^ifeq /d' \
3916		   -e '/^ifneq /d' \
3917		   -e '/^ifdef /d' \
3918		   -e '/^ifndef /d' \
3919		   -e '/^else/d' \
3920		   -e '/^endif/d' \
3921		   -e 's;via Makefile.simple'"'"';via $@'"'"';' > $@
3922	-${Q} if [ -s $@.bak ]; then \
3923	    if ${CMP} -s $@.bak $@; then \
3924		echo 'top level $@ was already up to date'; \
3925		echo 'restoring original $@'; \
3926		${MV} -f $@.bak $@; \
3927	    else \
3928		echo 'old $@ is now $@.bak'; \
3929		echo 'updated top level $@ formed'; \
3930		${DIFF} -u $@.bak $@; \
3931	    fi \
3932	else \
3933	    echo 'new top level $@ formed'; \
3934	    echo; \
3935	    ${LS} -l $@; \
3936	    echo; \
3937	fi
3938	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
3939
3940
3941###
3942#
3943# Doing a 'make check' will cause the regression test suite to be executed.
3944# This rule will try to build anything that needs to be built as well.
3945#
3946# Doing a 'make chk' will cause only the context around interesting
3947# (and error) messages to be printed.  Unlike 'make check', this
3948# rule does not cause things to be built.  i.e., the all rule is
3949# not invoked.
3950#
3951###
3952
3953check: all ./cal/regress.cal
3954	${CALC_ENV} ./calc${EXT} -d -q read regress
3955
3956chk: ./cal/regress.cal
3957	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
3958	${CALC_ENV} ./calc${EXT} -d -q read regress 2>&1 | ${AWK} -f check.awk
3959	@${MAKE} -f Makefile Q= V=@ distdir >/dev/null 2>&1
3960	@${MAKE} -f Makefile Q= V=@ distlist >/dev/null 2>&1
3961	${Q} echo 'chk OK'
3962	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
3963
3964###
3965#
3966# debug
3967#
3968# make calcinfo:
3969#	* print information about the host and compile environment
3970#
3971# make env:
3972#	* print major Makefile variables
3973#
3974# make mkdebug:
3975#	* print major Makefile variables
3976#	* build anything not yet built
3977#
3978# make debug:
3979#	* remove everything that was previously built
3980#	* print major Makefile variables
3981#	* make everything
3982#	* run the regression tests
3983###
3984
3985calcinfo:
3986	@echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
3987	@echo
3988	@echo '=-=-= UNAME=${UNAME} =-=-='
3989	@echo
3990	@echo '=-=-= output of $${UNAME} -a follows =-=-='
3991	-@${UNAME} -a
3992	@echo '=-=-= end of output of $${UNAME} -a =-=-='
3993	@echo
3994	@echo '=-=-= HOSTNAME=${HOSTNAME} =-=-='
3995	@echo
3996	@echo '=-=-= output of $${HOSTNAME} follows =-=-='
3997	-@${HOSTNAME}
3998	@echo '=-=-= end of output of $${HOSTNAME} =-=-='
3999	@echo
4000	@echo '=-=-= DATE=${DATE} =-=-='
4001	@echo
4002	@echo '=-=-= output of $${DATE} follows =-=-='
4003	-@${DATE}
4004	@echo '=-=-= end of output of $${DATE} =-=-='
4005	@echo
4006	@echo '=-=-= LCC=${LCC} =-=-='
4007	@echo
4008	@echo '=-=-= output of $${LCC} -v follows =-=-='
4009	-@${LCC} -v
4010	@echo '=-=-= end of output of $${LCC} -v =-=-='
4011	@echo
4012	@echo '=-=-= PWD=${PWD} =-=-='
4013	@echo
4014	@echo '=-=-= output of echo $${PWD} follows =-=-='
4015	-@echo ${PWD}
4016	@echo '=-=-= end of output of echo $${PWD} =-=-='
4017	@echo
4018	@echo '=-=-= PWDCMD=${PWDCMD} =-=-='
4019	@echo
4020	@echo '=-=-= output of $${PWDCMD} follows =-=-='
4021	-@${PWDCMD}
4022	@echo '=-=-= end of output of $${PWDCMD} =-=-='
4023	@echo
4024	@echo '=-=-= VERSION=${VERSION} =-=-='
4025	@echo
4026	@echo '=-=-= output of echo $${VERSION} follows =-=-='
4027	-@echo ${VERSION}
4028	@echo '=-=-= end of output of echo $${VERSION} =-=-='
4029	@echo
4030	@echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4031
4032env:
4033	@echo '=-=-=-=-= dumping major make variables =-=-=-=-='
4034	@echo 'ALIGN32=${ALIGN32}'; echo ''
4035	@echo 'ALLOW_CUSTOM=${ALLOW_CUSTOM}'; echo ''
4036	@echo 'AR=${AR}'; echo ''
4037	@echo 'ARCH_CFLAGS=${ARCH_CFLAGS}'; echo ''
4038	@echo 'AWK=${AWK}'; echo ''
4039	@echo 'BINDIR=${BINDIR}'; echo ''
4040	@echo 'BLD_TYPE=${BLD_TYPE}'; echo ''
4041	@echo 'BUILD_C_SRC=${BUILD_C_SRC}'; echo ''
4042	@echo 'BUILD_H_SRC=${BUILD_H_SRC}'; echo ''
4043	@echo 'BYTE_ORDER=${BYTE_ORDER}'; echo ''
4044	@echo 'CALCLIBLIST=${CALCLIBLIST}'; echo ''
4045	@echo 'CALCOBJS=${CALCOBJS}'; echo ''
4046	@echo 'CALCPAGER=${CALCPAGER}'; echo ''
4047	@echo 'CALCPATH=${CALCPATH}'; echo ''
4048	@echo 'CALCRC=${CALCRC}'; echo ''
4049	@echo 'CALCSRC=${CALCSRC}'; echo ''
4050	@echo 'CALC_DYNAMIC_LIBS=${CALC_DYNAMIC_LIBS}'; echo ''
4051	@echo 'CALC_ENV=${CALC_ENV}'; echo ''
4052	@echo 'CALC_INCDIR=${CALC_INCDIR}'; echo ''
4053	@echo 'CALC_SHAREDIR=${CALC_SHAREDIR}'; echo ''
4054	@echo 'CALC_STATIC_LIBS=${CALC_STATIC_LIBS}'; echo ''
4055	@echo 'CAL_PASSDOWN=${CAL_PASSDOWN}'; echo ''
4056	@echo 'CAT=${CAT}'; echo ''
4057	@echo 'CATDIR=${CATDIR}'; echo ''
4058	@echo 'CATEXT=${CATEXT}'; echo ''
4059	@echo 'CATMODE=${CATMODE}'; echo ''
4060	@echo 'CC=${CC}'; echo ''
4061	@echo 'CCBAN=${CCBAN}'; echo ''
4062	@echo 'CCMISC=${CCMISC}'; echo ''
4063	@echo 'CCOPT=${CCOPT}'; echo ''
4064	@echo 'CCWARN=${CCWARN}'; echo ''
4065	@echo 'CCWERR=${CCWERR}'; echo ''
4066	@echo 'CFLAGS=${CFLAGS}'; echo ''
4067	@echo 'CHMOD=${CHMOD}'; echo ''
4068	@echo 'CMP=${CMP}'; echo ''
4069	@echo 'CO=${CO}'; echo ''
4070	@echo 'COL=${COL}'; echo ''
4071	@echo 'COMMON_ADD=${COMMON_ADD}'; echo ''
4072	@echo 'COMMON_CFLAGS=${COMMON_CFLAGS}'; echo ''
4073	@echo 'COMMON_LDFLAGS=${COMMON_LDFLAGS}'; echo ''
4074	@echo 'CP=${CP}'; echo ''
4075	@echo 'CSCRIPT_PASSDOWN=${CSCRIPT_PASSDOWN}'; echo ''
4076	@echo 'CSCRIPT_TARGETS=${CSCRIPT_TARGETS}'; echo ''
4077	@echo 'CTAGS=${CTAGS}'; echo ''
4078	@echo 'CUSTOMCALDIR=${CUSTOMCALDIR}'; echo ''
4079	@echo 'CUSTOMHELPDIR=${CUSTOMHELPDIR}'; echo ''
4080	@echo 'CUSTOMINCDIR=${CUSTOMINCDIR}'; echo ''
4081	@echo 'CUSTOM_PASSDOWN=${CUSTOM_PASSDOWN}'; echo ''
4082	@echo 'C_SRC=${C_SRC}'; echo ''
4083	@echo 'DATE=${DATE}'; echo ''
4084	@echo 'DEBUG=${DEBUG}'; echo ''
4085	@echo 'DEFAULT_LIB_INSTALL_PATH=${DEFAULT_LIB_INSTALL_PATH}'; echo ''
4086	@echo 'DEV_BITS=${DEV_BITS}'; echo ''
4087	@echo 'DIFF=${DIFF}'; echo ''
4088	@echo 'DISTLIST=${DISTLIST}'; echo ''
4089	@echo 'E=${E}'; echo ''
4090	@echo 'EXT=${EXT}'; echo ''
4091	@echo 'FMT=${FMT}'; echo ''
4092	@echo 'FPOS_BITS=${FPOS_BITS}'; echo ''
4093	@echo 'FPOS_POS_BITS=${FPOS_POS_BITS}'; echo ''
4094	@echo 'GREP=${GREP}'; echo ''
4095	@echo 'H=${H}'; echo ''
4096	@echo 'HAVE_ARC4RANDOM=${HAVE_ARC4RANDOM}'; echo ''
4097	@echo 'HAVE_CONST=${HAVE_CONST}'; echo ''
4098	@echo 'HAVE_ENVIRON=${HAVE_ENVIRON}'; echo ''
4099	@echo 'HAVE_FPOS=${HAVE_FPOS}'; echo ''
4100	@echo 'HAVE_FPOS_POS=${HAVE_FPOS_POS}'; echo ''
4101	@echo 'HAVE_GETPGID=${HAVE_GETPGID}'; echo ''
4102	@echo 'HAVE_GETPRID=${HAVE_GETPRID}'; echo ''
4103	@echo 'HAVE_GETRUSAGE=${HAVE_GETRUSAGE}'; echo ''
4104	@echo 'HAVE_GETSID=${HAVE_GETSID}'; echo ''
4105	@echo 'HAVE_GETTIME=${HAVE_GETTIME}'; echo ''
4106	@echo 'HAVE_LIMITS_H=${HAVE_LIMITS_H}'; echo ''
4107	@echo 'HAVE_MEMMOVE=${HAVE_MEMMOVE}'; echo ''
4108	@echo 'HAVE_NEWSTR=${HAVE_NEWSTR}'; echo ''
4109	@echo 'HAVE_OFFSCL=${HAVE_OFFSCL}'; echo ''
4110	@echo 'HAVE_POSSCL=${HAVE_POSSCL}'; echo ''
4111	@echo 'HAVE_PRAGMA_GCC_POSION=${HAVE_PRAGMA_GCC_POSION}'; echo ''
4112	@echo 'HAVE_STDLIB_H=${HAVE_STDLIB_H}'; echo ''
4113	@echo 'HAVE_STRDUP=${HAVE_STRDUP}'; echo ''
4114	@echo 'HAVE_STRING_H=${HAVE_STRING_H}'; echo ''
4115	@echo 'HAVE_STRLCAT=${HAVE_STRLCAT}'; echo ''
4116	@echo 'HAVE_STRLCPY=${HAVE_STRLCPY}'; echo ''
4117	@echo 'HAVE_SYS_TIMES_H=${HAVE_SYS_TIMES_H}'; echo ''
4118	@echo 'HAVE_SYS_TIME_H=${HAVE_SYS_TIME_H}'; echo ''
4119	@echo 'HAVE_TIMES_H=${HAVE_TIMES_H}'; echo ''
4120	@echo 'HAVE_TIME_H=${HAVE_TIME_H}'; echo ''
4121	@echo 'HAVE_UID_T=${HAVE_UID_T}'; echo ''
4122	@echo 'HAVE_UNISTD_H=${HAVE_UNISTD_H}'; echo ''
4123	@echo 'HAVE_UNUSED=${HAVE_UNUSED}'; echo ''
4124	@echo 'HAVE_URANDOM_H=${HAVE_URANDOM_H}'; echo ''
4125	@echo 'HAVE_USTAT=${HAVE_USTAT}'; echo ''
4126	@echo 'HAVE_VSNPRINTF=${HAVE_VSNPRINTF}'; echo ''
4127	@echo 'HELPDIR=${HELPDIR}'; echo ''
4128	@echo 'HELP_PASSDOWN=${HELP_PASSDOWN}'; echo ''
4129	@echo 'HOSTNAME=${HOSTNAME}'; echo ''
4130	@echo 'H_SRC=${H_SRC}'; echo ''
4131	@echo 'ICFLAGS=${ICFLAGS}'; echo ''
4132	@echo 'ILDFLAGS=${ILDFLAGS}'; echo ''
4133	@echo 'INCDIR=${INCDIR}'; echo ''
4134	@echo 'INODE_BITS=${INODE_BITS}'; echo ''
4135	@echo 'LANG=${LANG}'; echo ''
4136	@echo 'LCC=${LCC}'; echo ''
4137	@echo 'LDCONFIG=${LDCONFIG}'; echo ''
4138	@echo 'LDFLAGS=${LDFLAGS}'; echo ''
4139	@echo 'LD_DEBUG=${LD_DEBUG}'; echo ''
4140	@echo 'LD_SHARE=${LD_SHARE}'; echo ''
4141	@echo 'LIBCALC_SHLIB=${LIBCALC_SHLIB}'; echo ''
4142	@echo 'LIBCUSTCALC_SHLIB=${LIBCUSTCALC_SHLIB}'; echo ''
4143	@echo 'LIBDIR=${LIBDIR}'; echo ''
4144	@echo 'LIBOBJS=${LIBOBJS}'; echo ''
4145	@echo 'LIBSRC=${LIBSRC}'; echo ''
4146	@echo 'LIB_H_SRC=${LIB_H_SRC}'; echo ''
4147	@echo 'LICENSE=${LICENSE}'; echo ''
4148	@echo 'LN=${LN}'; echo ''
4149	@echo 'LOC_MKF=${LOC_MKF}'; echo ''
4150	@echo 'LONG_BITS=${LONG_BITS}'; echo ''
4151	@echo 'MAKE=${MAKE}'; echo ''
4152	@echo 'MAKEDEPEND=${MAKEDEPEND}'; echo ''
4153	@echo 'MAKE_FILE=${MAKE_FILE}'; echo ''
4154	@echo 'MANDIR=${MANDIR}'; echo ''
4155	@echo 'MANEXT=${MANEXT}'; echo ''
4156	@echo 'MANMAKE=${MANMAKE}'; echo ''
4157	@echo 'MANMODE=${MANMODE}'; echo ''
4158	@echo 'MKDIR=${MKDIR}'; echo ''
4159	@echo 'MV=${MV}'; echo ''
4160	@echo 'NROFF=${NROFF}'; echo ''
4161	@echo 'NROFF_ARG=${NROFF_ARG}'; echo ''
4162	@echo 'OBJS=${OBJS}'; echo ''
4163	@echo 'OFF_T_BITS=${OFF_T_BITS}'; echo ''
4164	@echo 'PURIFY=${PURIFY}'; echo ''
4165	@echo 'PWD=${PWD}'; echo ''
4166	@echo 'PWDCMD=${PWDCMD}'; echo ''
4167	@echo 'Q=${Q}'; echo ''
4168	@echo 'PREFIX=${PREFIX}'; echo ''
4169	@echo 'RANLIB=${RANLIB}'; echo ''
4170	@echo 'READLINE_EXTRAS=${READLINE_EXTRAS}'; echo ''
4171	@echo 'READLINE_INCLUDE=${READLINE_INCLUDE}'; echo ''
4172	@echo 'READLINE_LIB=${READLINE_LIB}'; echo ''
4173	@echo 'RM=${RM}'; echo ''
4174	@echo 'RMDIR=${RMDIR}'; echo ''
4175	@echo 'S=${S}'; echo ''
4176	@echo 'SAMPLE_C_SRC=${SAMPLE_C_SRC}'; echo ''
4177	@echo 'SAMPLE_H_SRC=${SAMPLE_H_SRC}'; echo ''
4178	@echo 'SAMPLE_OBJ=${SAMPLE_OBJ}'; echo ''
4179	@echo 'SAMPLE_STATIC_TARGETS=${SAMPLE_STATIC_TARGETS}'; echo ''
4180	@echo 'SAMPLE_TARGETS=${SAMPLE_TARGETS}'; echo ''
4181	@echo 'SCRIPTDIR=${SCRIPTDIR}'; echo ''
4182	@echo 'SED=${SED}'; echo ''
4183	@echo 'SHELL=${SHELL}'; echo ''
4184	@echo 'SORT=${SORT}'; echo ''
4185	@echo 'SPLINT=${SPLINT}'; echo ''
4186	@echo 'SPLINT_OPTS=${SPLINT_OPTS}'; echo ''
4187	@echo 'SYM_DYNAMIC_LIBS=${SYM_DYNAMIC_LIBS}'; echo ''
4188	@echo 'T=${T}'; echo ''
4189	@echo 'TARGETS=${TARGETS}'; echo ''
4190	@echo 'TEE=${TEE}'; echo ''
4191	@echo 'TERMCONTROL=${TERMCONTROL}'; echo ''
4192	@echo 'TOUCH=${TOUCH}'; echo ''
4193	@echo 'TRUE=${TRUE}'; echo ''
4194	@echo 'UNAME=${UNAME}'; echo ''
4195	@echo 'USE_READLINE=${USE_READLINE}'; echo ''
4196	@echo 'UTIL_C_SRC=${UTIL_C_SRC}'; echo ''
4197	@echo 'UTIL_FILES=${UTIL_FILES}'; echo ''
4198	@echo 'UTIL_MISC_SRC=${UTIL_MISC_SRC}'; echo ''
4199	@echo 'UTIL_OBJS=${UTIL_OBJS}'; echo ''
4200	@echo 'UTIL_PROGS=${UTIL_PROGS}'; echo ''
4201	@echo 'UTIL_TMP=${UTIL_TMP}'; echo ''
4202	@echo 'V=${V}'; echo ''
4203	@echo 'VERSION=${VERSION}'; echo ''
4204	@echo 'WNO_ERROR_LONG_LONG=${WNO_ERROR_LONG_LONG}'; echo ''
4205	@echo 'WNO_IMPLICT=${WNO_IMPLICT};' echo ''
4206	@echo 'WNO_LONG_LONG=${WNO_LONG_LONG}'; echo ''
4207	@echo 'XARGS=${XARGS}'; echo ''
4208	@echo 'target=${target}'; echo ''
4209	@echo '=-=-=-=-= ${MAKE_FILE} end of major make variable dump =-=-=-=-='
4210
4211mkdebug: env version.c
4212	@echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4213	@echo '=-=-=-= Contents of ${LOC_MKF} follows =-=-=-='
4214	@${CAT} ${LOC_MKF}
4215	@echo '=-=-=-= End of contents of ${LOC_MKF} =-=-=-='
4216	@echo '=-=-=-= Determining the source version =-=-=-='
4217	@${MAKE} -f Makefile Q= V=@ ver_calc${EXT}
4218	-@./ver_calc${EXT}
4219	@echo '=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ all =-=-=-='
4220	@${MAKE} -f Makefile Q= V=@ all
4221	@echo '=-=-=-= Back to the main Makefile for $@ rule =-=-=-='
4222	@echo '=-=-=-= Determining the binary version =-=-=-='
4223	-@./calc${EXT} -e -q -v
4224	@echo '=-=-=-= Back to the main Makefile for $@ rule =-=-=-='
4225	@echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4226
4227debug: calcinfo env
4228	@echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4229	@echo '=-=-=-= Contents of ${LOC_MKF} follows =-=-=-='
4230	@${CAT} ${LOC_MKF}
4231	@echo '=-=-=-= End of contents of ${LOC_MKF} =-=-=-='
4232	@echo '=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ clobber =-=-=-='
4233	@${MAKE} -f Makefile Q= V=@ clobber
4234	@echo '=-=-=-= Back to the main Makefile for $@ rule =-=-=-='
4235	@echo '=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ all =-=-=-='
4236	@echo '=-=-= this may take a bit of time =-=-='
4237	@${MAKE} -f Makefile Q= V=@ all
4238	@echo '=-=-=-= Back to the main Makefile for $@ rule =-=-=-='
4239	@echo '=-=-=-= Determining the source version =-=-=-='
4240	@${MAKE} -f Makefile Q= V=@ ver_calc${EXT}
4241	-@./ver_calc${EXT}
4242	@echo '=-=-=-= Back to the main Makefile for $@ rule =-=-=-='
4243	@${ECHON} '=-=-=-= Print #defile values if custom functions '
4244	@echo 'are allowed =-=-=-='
4245	-@${CALC_ENV} ./calc${EXT} -e -q -C 'print custom("sysinfo", 2);'
4246	@echo '=-=-=-= Back to the main Makefile for $@ rule =-=-=-='
4247	@echo '=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ check =-=-=-='
4248	@echo '=-=-= this may take a while =-=-='
4249	@${MAKE} -f Makefile Q= V=@ check
4250	@echo '=-=-=-= Back to the main Makefile for $@ rule =-=-=-='
4251	@echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4252
4253###
4254#
4255# testing rules
4256#
4257# make run
4258#	* only run calc interactively with the ${CALC_ENV} environment
4259#
4260# make dbx
4261#	* run the dbx debugger on calc with the ${CALC_ENV} environment
4262#
4263# make gdb
4264#	* run the gdb debugger on calc with the ${CALC_ENV} environment
4265#
4266###
4267
4268run:
4269	${CALC_ENV} ./calc${EXT}
4270
4271dbx:
4272	${CALC_ENV} dbx ./calc${EXT}
4273
4274gdb:
4275	${CALC_ENV} gdb ./calc${EXT}
4276
4277###
4278#
4279# rpm rules
4280#
4281###
4282
4283# NOTE: Only the 2 rpm rules should set ${RPM_TOP}!
4284#
4285# When making calc RPM, ${RPM_TOP} will be set to the tree
4286# under which rpm files are built.  You should NOT set RPM_TOP
4287# by yourself.  Only make rpm and make rpm-preclean should
4288# set this value.
4289
4290rpm: clobber rpm-preclean rpm.mk calc.spec.in
4291	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4292	${MAKE} -f rpm.mk all V=${V} RPM_TOP="${RPM_TOP}" Q= S= E=
4293	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4294
4295rpm-preclean:
4296	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4297	${MAKE} -f rpm.mk $@ V=${V} RPM_TOP="${RPM_TOP}" Q= S= E=
4298	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4299
4300# rpm static rules
4301#
4302rpm-hide-static:
4303	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4304	${RM} -rf static
4305	${MKDIR} -p static
4306	${CP} -f -p calc-static${EXT} ${SAMPLE_STATIC_TARGETS} static
4307	${CP} -f -p libcalc.a custom/libcustcalc.a static
4308	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4309
4310rpm-unhide-static:
4311	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4312	${RM} -f calc-static${EXT} ${SAMPLE_STATIC_TARGETS}
4313	cd static; ${CP} -f -p calc-static${EXT} ${SAMPLE_STATIC_TARGETS} ..
4314	${RM} -f libcalc.a
4315	cd static; ${CP} -f -p libcalc.a ..
4316	${RM} -f custom/libcustcalc.a
4317	cd static; ${CP} -f -p libcustcalc.a ../custom
4318	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4319
4320rpm-chk-static:
4321	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4322	${CALC_ENV} ./calc-static${EXT} -d -q read regress 2>&1 | \
4323	    ${AWK} -f check.awk
4324	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4325
4326rpm-clean-static:
4327	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4328	${RM} -rf static
4329	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4330
4331###
4332#
4333# Utility rules
4334#
4335###
4336
4337# Form the installed file list
4338#
4339inst_files: ${MAKE_FILE} ${LOC_MKF} help/Makefile cal/Makefile \
4340	    cscript/Makefile ver_calc${EXT} custom/Makefile
4341	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4342	${Q} ${RM} -f inst_files
4343	${Q} echo ${BINDIR}/calc${EXT} > inst_files
4344	${Q} cd help; LANG=C \
4345	    ${MAKE} -f Makefile ${HELP_PASSDOWN} echo_inst_files | \
4346	    ${GREP} '__file__..' | ${SED} -e s'/.*__file__ //' >> ../inst_files
4347	${Q} cd cal; LANG=C \
4348	    ${MAKE} -f Makefile ${CAL_PASSDOWN} echo_inst_files | \
4349	    ${GREP} '__file__..' | ${SED} -e s'/.*__file__ //' >> ../inst_files
4350	${Q} cd custom; LANG=C \
4351	    ${MAKE} -f Makefile ${CUSTOM_PASSDOWN} echo_inst_files | \
4352	    ${GREP} '__file__..' | ${SED} -e s'/.*__file__ //' >> ../inst_files
4353	${Q} cd cscript; LANG=C \
4354	    ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} echo_inst_files | \
4355	    ${GREP} '__file__..' | ${SED} -e s'/.*__file__ //' >> ../inst_files
4356	${Q} echo ${LIBDIR}/libcalc.a >> inst_files
4357	${Q} for i in ${LIB_H_SRC} ${BUILD_H_SRC} /dev/null; do \
4358	    if [ X"$$i" != X"/dev/null" ]; then \
4359		echo ${CALC_INCDIR}/$$i; \
4360	    fi; \
4361	done >> inst_files
4362	${Q} if [ ! -z "${MANDIR}" ]; then \
4363	    echo ${MANDIR}/calc.${MANEXT}; \
4364	fi >> inst_files
4365	${Q} LANG=C ${SORT} -u inst_files -o inst_files
4366	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4367
4368# The olduninstall rule will remove calc files from the older, historic
4369# locations under the /usr/local directory.  If you are using the
4370# new default values for ${BINDIR}, ${CALC_SHAREDIR}, ${INCDIR} and ${LIBDIR}
4371# then you can use this rule to clean out the older calc stuff under
4372# the /usr/local directory.
4373#
4374# NOTE: This rule is an exception to the use of ${PREFIX}.
4375#	In this rule we really to want to explicitly deal
4376#	with legacy paths under /usr/local.
4377#
4378olduninstall:
4379	${RM} -f inst_files
4380	${MAKE} -f Makefile \
4381		PREFIX=/usr/local \
4382		BINDIR=/usr/local/bin \
4383		INCDIR=/usr/local/include \
4384		LIBDIR=/usr/local/lib/calc \
4385		CALC_SHAREDIR=/usr/local/lib/calc \
4386		HELPDIR=/usr/local/lib/calc/help \
4387		CALC_INCDIR=/usr/local/include/calc \
4388		CUSTOMCALDIR=/usr/local/lib/calc/custom \
4389		CUSTOMHELPDIR=/usr/local/lib/calc/help/custhelp \
4390		CUSTOMINCDIR=/usr/local/lib/calc/custom \
4391		SCRIPTDIR=/usr/local/bin/cscript \
4392		MANDIR=/usr/local/man/man1 \
4393		inst_files
4394	${XARGS} ${RM} -f < inst_files
4395	-${RMDIR} /usr/local/lib/calc/help/custhelp
4396	-${RMDIR} /usr/local/lib/calc/help
4397	-${RMDIR} /usr/local/lib/calc/custom
4398	-${RMDIR} /usr/local/lib/calc
4399	-${RMDIR} /usr/local/include/calc
4400	-${RMDIR} /usr/local/bin/cscript
4401	${RM} -f inst_files
4402	${RM} -f ${CALC_INCDIR}/calcerr.c
4403
4404tags: ${CALCSRC} ${LIBSRC} ${H_SRC} ${BUILD_H_SRC} ${MAKE_FILE}
4405	-${CTAGS} ${CALCSRC} ${LIBSRC} ${H_SRC} ${BUILD_H_SRC} 2>&1 | \
4406	    ${GREP} -v 'Duplicate entry|Second entry ignored'
4407
4408clean:
4409	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4410	${RM} -f ${LIBOBJS}
4411	${RM} -f ${CALCOBJS}
4412	${RM} -f ${UTIL_OBJS}
4413	${RM} -f ${UTIL_TMP}
4414	${RM} -f ${UTIL_PROGS}
4415	${RM} -f ${UTIL_FILES}
4416	${RM} -f ${SAMPLE_OBJ}
4417	${RM} -f .libcustcalc_error
4418	${RM} -f calc.spec.sed
4419	${Q} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
4420	cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} clean
4421	${Q} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4422	${Q} echo '=-=-=-=-= Invoking $@ rule for cal =-=-=-=-='
4423	cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} clean
4424	${Q} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4425	${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
4426	cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} clean
4427	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4428	${V} echo '=-=-=-=-= Invoking $@ rule for cscript =-=-=-=-='
4429	${MAKE} custom/Makefile
4430	cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} clean
4431	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4432	${Q} echo remove files that are obsolete
4433	${RM} -rf lib
4434	${RM} -f endian.h stdarg.h libcalcerr.a cal/obj help/obj
4435	${RM} -f have_vs.c std_arg.h try_stdarg.c fnvhash.c
4436	${RM} -f win32dll.h have_malloc.h math_error.h string.h string.c
4437	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4438
4439clobber: clean
4440	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4441	${RM} -f ${SAMPLE_TARGETS}
4442	${RM} -f ${SAMPLE_STATIC_TARGETS}
4443	${RM} -f tags .hsrc hsrc
4444	${RM} -f ${BUILD_H_SRC}
4445	${RM} -f ${BUILD_C_SRC}
4446	${RM} -f calc${EXT}
4447	${RM} -f *_pure_*.[oa]
4448	${RM} -f *.pure_linkinfo
4449	${RM} -f *.pure_hardlin
4450	${RM} -f *.u
4451	${RM} -f libcalc.a
4452	${RM} -f libcustcalc.a
4453	${RM} -f calc.1 calc.usage
4454	${RM} -f calc.pixie calc.rf calc.Counts calc.cord
4455	${RM} -f gen_h Makefile.bak tmp.patch
4456	${RM} -rf skel
4457	${RM} -f calc.spec inst_files rpm.mk.patch tmp
4458	${RM} -f libcalc${LIB_EXT_VERSION}
4459	${RM} -f libcalc*
4460	${RM} -f libcustcalc${LIB_EXT_VERSION}
4461	${RM} -f libcustcalc*
4462	${RM} -f calc-static${EXT}
4463	${RM} -f ${CALC_STATIC_LIBS}
4464	${RM} -f a.out
4465	${RM} -f all
4466	${V} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
4467	-${RM} -f help/all; \
4468	    cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} $@
4469	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4470	${V} echo '=-=-=-=-= Invoking $@ rule for cal =-=-=-=-='
4471	-${RM} -f cal/all; \
4472	    cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} $@
4473	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4474	${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
4475	-${RM} -f custom/all; \
4476	    ${MAKE} custom/Makefile; \
4477	    cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} $@
4478	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4479	${V} echo '=-=-=-=-= Invoking $@ rule for cscript =-=-=-=-='
4480	-${RM} -f cscript/all; \
4481	    cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} $@
4482	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4483	${V} echo remove files that are obsolete
4484	${RM} -rf win32 build
4485	${RM} -f no_implicit.arg
4486	${RM} -f no_implicit.c no_implicit.o no_implicit${EXT}
4487	${RM} -f .static .dynamic calc-dynamic-only calc-static-only
4488	-${Q} if [ -e .DS_Store ]; then \
4489	    echo ${RM} -rf .DS_Store; \
4490	    ${RM} -rf .DS_Store; \
4491	fi
4492	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4493
4494# install everything
4495#
4496# NOTE: Keep the uninstall rule in the reverse order of the install rule
4497#
4498install: ${LIB_H_SRC} ${BUILD_H_SRC} calc.1 all custom/Makefile
4499	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4500	-${Q} if [ ! -z "${T}" ]; then \
4501	    if [ ! -d ${T} ]; then \
4502		echo ${MKDIR} -p ${T}; \
4503		${MKDIR} -p ${T}; \
4504		echo ${CHMOD} 0755 ${T}; \
4505		${CHMOD} 0755 ${T}; \
4506	    fi; \
4507	fi
4508	-${Q} if [ ! -d ${T}${BINDIR} ]; then \
4509	    echo ${MKDIR} -p ${T}${BINDIR}; \
4510	    ${MKDIR} -p ${T}${BINDIR}; \
4511	    echo ${CHMOD} 0755 ${T}${BINDIR}; \
4512	    ${CHMOD} 0755 ${T}${BINDIR}; \
4513	else \
4514	    ${TRUE}; \
4515	fi
4516	-${Q} if [ ! -d ${T}${INCDIR} ]; then \
4517	    echo ${MKDIR} -p ${T}${INCDIR}; \
4518	    ${MKDIR} -p ${T}${INCDIR}; \
4519	    echo ${CHMOD} 0755 ${T}${INCDIR}; \
4520	    ${CHMOD} 0755 ${T}${INCDIR}; \
4521	else \
4522	    ${TRUE}; \
4523	fi
4524	-${Q} if [ ! -d ${T}${LIBDIR} ]; then \
4525	    echo ${MKDIR} -p ${T}${LIBDIR}; \
4526	    ${MKDIR} -p ${T}${LIBDIR}; \
4527	    echo ${CHMOD} 0755 ${T}${LIBDIR}; \
4528	    ${CHMOD} 0755 ${T}${LIBDIR}; \
4529	else \
4530	    ${TRUE}; \
4531	fi
4532	-${Q} if [ ! -d ${T}${CALC_SHAREDIR} ]; then \
4533	    ${MKDIR} -p ${T}${CALC_SHAREDIR}; \
4534	    echo ${MKDIR} -p ${T}${CALC_SHAREDIR}; \
4535	    echo ${CHMOD} 0755 ${T}${CALC_SHAREDIR}; \
4536	    ${CHMOD} 0755 ${T}${CALC_SHAREDIR}; \
4537	else \
4538	    ${TRUE}; \
4539	fi
4540	-${Q} if [ ! -d ${T}${HELPDIR} ]; then \
4541	    echo ${MKDIR} -p ${T}${HELPDIR}; \
4542	    ${MKDIR} -p ${T}${HELPDIR}; \
4543	    echo ${CHMOD} 0755 ${T}${HELPDIR}; \
4544	    ${CHMOD} 0755 ${T}${HELPDIR}; \
4545	else \
4546	    ${TRUE}; \
4547	fi
4548	-${Q} if [ ! -d ${T}${CALC_INCDIR} ]; then \
4549	    echo ${MKDIR} -p ${T}${CALC_INCDIR}; \
4550	    ${MKDIR} -p ${T}${CALC_INCDIR}; \
4551	    echo ${CHMOD} 0755 ${T}${CALC_INCDIR}; \
4552	    ${CHMOD} 0755 ${T}${CALC_INCDIR}; \
4553	else \
4554	    ${TRUE}; \
4555	fi
4556	-${Q} if [ ! -d ${T}${CUSTOMCALDIR} ]; then \
4557	    echo ${MKDIR} -p ${T}${CUSTOMCALDIR}; \
4558	    ${MKDIR} -p ${T}${CUSTOMCALDIR}; \
4559	    echo ${CHMOD} 0755 ${T}${CUSTOMCALDIR}; \
4560	    ${CHMOD} 0755 ${T}${CUSTOMCALDIR}; \
4561	else \
4562	    ${TRUE}; \
4563	fi
4564	-${Q} if [ ! -d ${T}${CUSTOMHELPDIR} ]; then \
4565	    echo ${MKDIR} -p ${T}${CUSTOMHELPDIR}; \
4566	    ${MKDIR} -p ${T}${CUSTOMHELPDIR}; \
4567	    echo ${CHMOD} 0755 ${T}${CUSTOMHELPDIR}; \
4568	    ${CHMOD} 0755 ${T}${CUSTOMHELPDIR}; \
4569	else \
4570	    ${TRUE}; \
4571	fi
4572	-${Q} if [ ! -d ${T}${CUSTOMINCDIR} ]; then \
4573	    echo ${MKDIR} -p ${T}${CUSTOMINCDIR}; \
4574	    ${MKDIR} -p ${T}${CUSTOMINCDIR}; \
4575	    echo ${CHMOD} 0755 ${T}${CUSTOMINCDIR}; \
4576	    ${CHMOD} 0755 ${T}${CUSTOMINCDIR}; \
4577	else \
4578	    ${TRUE}; \
4579	fi
4580	-${Q} if [ ! -d ${T}${SCRIPTDIR} ]; then \
4581	    echo ${MKDIR} -p ${T}${SCRIPTDIR}; \
4582	    ${MKDIR} -p ${T}${SCRIPTDIR}; \
4583	    echo ${CHMOD} 0755 ${T}${SCRIPTDIR}; \
4584	    ${CHMOD} 0755 ${T}${SCRIPTDIR}; \
4585	else \
4586	    ${TRUE}; \
4587	fi
4588	-${Q} if [ ! -z "${MANDIR}" ]; then \
4589	    if [ ! -d ${T}${MANDIR} ]; then \
4590		echo ${MKDIR} -p ${T}${MANDIR}; \
4591		${MKDIR} -p ${T}${MANDIR}; \
4592		echo ${CHMOD} 0755 ${T}${MANDIR}; \
4593		${CHMOD} 0755 ${T}${MANDIR}; \
4594	    else \
4595		${TRUE}; \
4596	    fi; \
4597	else \
4598	    ${TRUE}; \
4599	fi
4600	-${Q} if [ ! -z "${CATDIR}" ]; then \
4601	    if [ ! -d ${T}${CATDIR} ]; then \
4602		echo ${MKDIR} -p ${T}${CATDIR}; \
4603		${MKDIR} -p ${T}${CATDIR}; \
4604		echo ${CHMOD} 0755 ${T}${CATDIR}; \
4605		${CHMOD} 0755 ${T}${CATDIR}; \
4606	    else \
4607		${TRUE}; \
4608	    fi; \
4609	else \
4610	    ${TRUE}; \
4611	fi
4612	-${Q} if ${CMP} -s calc${EXT} ${T}${BINDIR}/calc${EXT}; then \
4613	    ${TRUE}; \
4614	else \
4615	    ${RM} -f ${T}${BINDIR}/calc.new${EXT}; \
4616	    ${CP} -f calc${EXT} ${T}${BINDIR}/calc.new${EXT}; \
4617	    ${CHMOD} 0755 ${T}${BINDIR}/calc.new${EXT}; \
4618	    ${MV} -f ${T}${BINDIR}/calc.new${EXT} ${T}${BINDIR}/calc${EXT}; \
4619	    echo "installed ${T}${BINDIR}/calc${EXT}"; \
4620	fi
4621	-${Q} if [ -f calc-static${EXT} ]; then \
4622	    if ${CMP} -s calc-static${EXT} \
4623			 ${T}${BINDIR}/calc-static${EXT}; then \
4624		${TRUE}; \
4625	    else \
4626		${RM} -f ${T}${BINDIR}/calc-static.new${EXT}; \
4627		${CP} -f calc-static${EXT} \
4628			 ${T}${BINDIR}/calc-static.new${EXT}; \
4629		${CHMOD} 0755 ${T}${BINDIR}/calc-static.new${EXT}; \
4630		${MV} -f ${T}${BINDIR}/calc-static.new${EXT} \
4631			 ${T}${BINDIR}/calc-static${EXT}; \
4632		echo "installed ${T}${BINDIR}/calc-static${EXT}"; \
4633	    fi; \
4634	fi
4635	${V} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
4636	${Q} cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} install
4637	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4638	${V} echo '=-=-=-=-= Invoking $@ rule for cal =-=-=-=-='
4639	${Q} cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} install
4640	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4641	${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
4642	${Q} cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} install
4643	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4644	${V} echo '=-=-=-=-= Invoking $@ rule for cscript =-=-=-=-='
4645	${Q} cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} install
4646	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4647	-${Q} if [ -f libcalc.a ]; then \
4648		if ${CMP} -s libcalc.a ${T}${LIBDIR}/libcalc.a; then \
4649		${TRUE}; \
4650	        else \
4651		${RM} -f ${T}${LIBDIR}/libcalc.a.new; \
4652		${CP} -f libcalc.a ${T}${LIBDIR}/libcalc.a.new; \
4653		${CHMOD} 0644 ${T}${LIBDIR}/libcalc.a.new; \
4654		${MV} -f ${T}${LIBDIR}/libcalc.a.new ${T}${LIBDIR}/libcalc.a; \
4655		${RANLIB} ${T}${LIBDIR}/libcalc.a; \
4656		echo "installed ${T}${LIBDIR}/libcalc.a"; \
4657	   fi; \
4658	fi
4659	${Q}# NOTE: The this makefile installs libcustcalc${LIB_EXT_VERSION}
4660	${Q}#       because we only want to perform one ${LDCONFIG} for both
4661	${Q}#       libcalc${LIB_EXT_VERSION} and libcustcalc${LIB_EXT_VERSION}.
4662	-${Q} if ${CMP} -s libcalc${LIB_EXT_VERSION} \
4663		     ${T}${LIBDIR}/libcalc${LIB_EXT_VERSION} && \
4664	   ${CMP} -s custom/libcustcalc${LIB_EXT_VERSION} \
4665		     ${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}; then \
4666	    ${TRUE}; \
4667	else \
4668	    ${RM} -f ${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}.new; \
4669	    ${CP} -f libcalc${LIB_EXT_VERSION} \
4670		     ${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}.new; \
4671	    ${CHMOD} 0644 ${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}.new; \
4672	    ${MV} -f ${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}.new \
4673		     ${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}; \
4674	    echo "installed ${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}"; \
4675	    ${LN} -f -s libcalc${LIB_EXT_VERSION} \
4676			${T}${LIBDIR}/libcalc${LIB_EXT}; \
4677	    echo "installed ${T}${LIBDIR}/libcalc${LIB_EXT}"; \
4678	    ${RM} -f ${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}.new; \
4679	    ${CP} -f custom/libcustcalc${LIB_EXT_VERSION} \
4680		     ${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}.new; \
4681	    ${CHMOD} 0644 ${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}.new; \
4682	    ${MV} -f ${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}.new \
4683		     ${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}; \
4684	    echo "installed ${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}"; \
4685	    ${LN} -f -s libcustcalc${LIB_EXT_VERSION} \
4686			${T}${LIBDIR}/libcustcalc${LIB_EXT}; \
4687	    echo "installed ${T}${LIBDIR}/libcalc${LIB_EXT}"; \
4688	    if [ -z "${T}" -o "/" = "${T}" ]; then \
4689		if [ ! -z "${LDCONFIG}" ]; then \
4690		    echo "running ${LDCONFIG}"; \
4691		    ${LDCONFIG} -v; \
4692		    echo "finished ${LDCONFIG}"; \
4693		fi; \
4694	    fi; \
4695	fi
4696	-${Q} for i in ${LIB_H_SRC} /dev/null; do \
4697	    if [ "$$i" = "/dev/null" ]; then \
4698		continue; \
4699	    fi; \
4700	    ${RM} -f tmp; \
4701	    ${SED} -e 's/^\(#[ 	]*include[ 	][ 	]*\)"/\1"calc\//' \
4702	              $$i > tmp; \
4703	    if ${CMP} -s tmp ${T}${CALC_INCDIR}/$$i; then \
4704		${TRUE}; \
4705	    else \
4706		${RM} -f ${T}${CALC_INCDIR}/$$i.new; \
4707		${CP} -f tmp ${T}${CALC_INCDIR}/$$i.new; \
4708		${CHMOD} 0444 ${T}${CALC_INCDIR}/$$i.new; \
4709		${MV} -f ${T}${CALC_INCDIR}/$$i.new ${T}${CALC_INCDIR}/$$i; \
4710		echo "installed ${T}${CALC_INCDIR}/$$i"; \
4711	    fi; \
4712	    if [ -f "${T}${CALC_INCDIR}/std_arg.h" ]; then \
4713		${RM} -f ${T}${CALC_INCDIR}/std_arg.h; \
4714		echo "removed old ${T}${CALC_INCDIR}/std_arg.h"; \
4715	    fi; \
4716	    if [ -f "${T}${CALC_INCDIR}/win32dll.h" ]; then \
4717		${RM} -f ${T}${CALC_INCDIR}/win32dll.h; \
4718		echo "removed old ${T}${CALC_INCDIR}/win32dll.h"; \
4719	    fi; \
4720	    if [ -f "${T}${CALC_INCDIR}/have_malloc.h" ]; then \
4721		${RM} -f ${T}${CALC_INCDIR}/have_malloc.h; \
4722		echo "removed old ${T}${CALC_INCDIR}/have_malloc.h"; \
4723	    fi; \
4724	    if [ -f "${T}${CALC_INCDIR}/math_error.h" ]; then \
4725		${RM} -f ${T}${CALC_INCDIR}/math_error.h; \
4726		echo "removed old ${T}${CALC_INCDIR}/math_error.h"; \
4727	    fi; \
4728	    if [ -f "${T}${CALC_INCDIR}/string.h" ]; then \
4729		${RM} -f ${T}${CALC_INCDIR}/string.h; \
4730		echo "removed old ${T}${CALC_INCDIR}/string.h"; \
4731	    fi; \
4732	done
4733	-${Q} if [ -z "${MANDIR}" ]; then \
4734	    ${TRUE}; \
4735	else \
4736	    if ${CMP} -s calc.1 ${T}${MANDIR}/calc.${MANEXT}; then \
4737		${TRUE}; \
4738	    else \
4739		${RM} -f ${T}${MANDIR}/calc.${MANEXT}.new; \
4740		${CP} -f calc.1 ${T}${MANDIR}/calc.${MANEXT}.new; \
4741		${CHMOD} 0444 ${T}${MANDIR}/calc.${MANEXT}.new; \
4742		${MV} -f ${T}${MANDIR}/calc.${MANEXT}.new \
4743		      ${T}${MANDIR}/calc.${MANEXT}; \
4744		echo "installed ${T}${MANDIR}/calc.${MANEXT}"; \
4745	    fi; \
4746	fi
4747	-${Q} if [ -z "${CATDIR}" ]; then \
4748	    ${TRUE}; \
4749	else \
4750	    if ${CMP} -s calc.1 ${T}${MANDIR}/calc.${MANEXT}; then \
4751		${TRUE}; \
4752	    else \
4753		if [ -n "${NROFF}" ]; then \
4754		    ${RM} -f ${T}${CATDIR}/calc.${CATEXT}.new; \
4755		    ${NROFF} ${NROFF_ARG} calc.1 > \
4756			     ${T}${CATDIR}/calc.${CATEXT}.new; \
4757		    ${CHMOD} ${MANMODE} ${T}${MANDIR}/calc.${CATEXT}.new; \
4758		    ${MV} -f ${T}${CATDIR}/calc.${CATEXT}.new \
4759			  ${T}${CATDIR}/calc.${CATEXT}; \
4760		    echo "installed ${T}${CATDIR}/calc.${CATEXT}"; \
4761		elif [ -x "${MANNAME}" ]; then \
4762		    echo "${MANMAKE} calc.1 ${T}${CATDIR}"; \
4763		    ${MANMAKE} calc.1 ${T}${CATDIR}; \
4764		fi; \
4765	    fi; \
4766	fi
4767	${V} # NOTE: misc install cleanup
4768	${Q} ${RM} -f tmp
4769	${V} # NOTE: remove the calcerr.c that was installed by mistake
4770	${V} #	     under ${INC_DIR} in calc v2.12.9.1
4771	${Q} ${RM} -f ${T}${CALC_INCDIR}/calcerr.c
4772	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4773
4774# Try to remove everything that was installed
4775#
4776# NOTE: Keep the uninstall rule in the reverse order of the install rule
4777#
4778uninstall: custom/Makefile
4779	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4780	-${Q} if [ -z "${CATDIR}" ]; then \
4781	    ${TRUE}; \
4782	else \
4783	    if [ -f "${T}${CATDIR}/calc.${CATEXT}" ]; then \
4784		${RM} -f "${T}${CATDIR}/calc.${CATEXT}"; \
4785		if [ -f "${T}${CATDIR}/calc.${CATEXT}" ]; then \
4786		    echo "cannot uninstall ${T}${CATDIR}/calc.${CATEXT}"; \
4787		else \
4788		    echo "uninstalled ${T}${CATDIR}/calc.${CATEXT}"; \
4789		fi; \
4790	    fi; \
4791	fi
4792	-${Q} if [ -z "${MANDIR}" ]; then \
4793	    ${TRUE}; \
4794	else \
4795	    if [ -f "${T}${MANDIR}/calc.${MANEXT}" ]; then \
4796		${RM} -f "${T}${MANDIR}/calc.${MANEXT}"; \
4797		if [ -f "${T}${MANDIR}/calc.${MANEXT}" ]; then \
4798		    echo "cannot uninstall ${T}${MANDIR}/calc.${MANEXT}"; \
4799		else \
4800		    echo "uninstalled ${T}${MANDIR}/calc.${MANEXT}"; \
4801		fi; \
4802	    fi; \
4803	fi
4804	-${Q} for i in ${BUILD_H_SRC} ${LIB_H_SRC} /dev/null; do \
4805	    if [ "$$i" = "/dev/null" ]; then \
4806		continue; \
4807	    fi; \
4808	    if [ -f "${T}${CALC_INCDIR}/$$i" ]; then \
4809		${RM} -f "${T}${CALC_INCDIR}/$$i"; \
4810		if [ -f "${T}${CALC_INCDIR}/$$i" ]; then \
4811		    echo "cannot uninstall ${T}${CALC_INCDIR}/$$i"; \
4812		else \
4813		    echo "uninstalled ${T}${CALC_INCDIR}/$$i"; \
4814		fi; \
4815	    fi; \
4816	done
4817	-${Q} if [ -f "${T}${LIBDIR}/libcustcalc${LIB_EXT}" ]; then \
4818	    ${RM} -f "${T}${LIBDIR}/libcustcalc${LIB_EXT}"; \
4819	    if [ -f "${T}${LIBDIR}/libcustcalc${LIB_EXT}" ]; then \
4820		echo "cannot uninstall ${T}${LIBDIR}/libcustcalc${LIB_EXT}"; \
4821	    else \
4822		echo "uninstalled ${T}${LIBDIR}/libcustcalc${LIB_EXT}"; \
4823	    fi; \
4824	fi
4825	-${Q} if [ -f "${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}" ]; then \
4826	    ${RM} -f "${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}"; \
4827	    if [ -f "${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}" ]; then \
4828		echo \
4829		"cannot uninstall ${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}";\
4830	    else \
4831		echo "uninstalled ${T}${LIBDIR}/libcustcalc${LIB_EXT_VERSION}";\
4832	    fi; \
4833	fi
4834	-${Q} if [ -f "${T}${LIBDIR}/libcalc${LIB_EXT}" ]; then \
4835	    ${RM} -f "${T}${LIBDIR}/libcalc${LIB_EXT}"; \
4836	    if [ -f "${T}${LIBDIR}/libcalc${LIB_EXT}" ]; then \
4837		echo "cannot uninstall ${T}${LIBDIR}/libcalc${LIB_EXT}"; \
4838	    else \
4839		echo "uninstalled ${T}${LIBDIR}/libcalc${LIB_EXT}"; \
4840	    fi; \
4841	fi
4842	-${Q} if [ -f "${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}" ]; then \
4843	    ${RM} -f "${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}"; \
4844	    if [ -f "${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}" ]; then \
4845		${ECHON} "cannot uninstall " \
4846		echo "${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}"; \
4847	    else \
4848		echo "uninstalled ${T}${LIBDIR}/libcalc${LIB_EXT_VERSION}"; \
4849	    fi; \
4850	fi
4851	-${Q} if [ -z "${T}" -o "/" = "${T}" ]; then \
4852	    if [ ! -z "${LDCONFIG}" ]; then \
4853		echo "running ${LDCONFIG}"; \
4854		${LDCONFIG} -v; \
4855		echo "finished ${LDCONFIG}"; \
4856	    fi; \
4857	fi
4858	-${Q} if [ -f "${T}${LIBDIR}/libcalc.a" ]; then \
4859	    ${RM} -f "${T}${LIBDIR}/libcalc.a"; \
4860	    if [ -f "${T}${LIBDIR}/libcalc.a" ]; then \
4861		echo "cannot uninstall ${T}${LIBDIR}/libcalc.a"; \
4862	    else \
4863		echo "uninstalled ${T}${LIBDIR}/libcalc.a"; \
4864	    fi; \
4865	fi
4866	${V} echo '=-=-=-=-= Invoking $@ rule for cscript =-=-=-=-='
4867	${Q} cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} uninstall
4868	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4869	${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
4870	${Q} cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} uninstall
4871	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4872	${V} echo '=-=-=-=-= Invoking $@ rule for cal =-=-=-=-='
4873	${Q} cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} uninstall
4874	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4875	${V} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
4876	${Q} cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} uninstall
4877	${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
4878	-${Q} if [ -f "${T}${BINDIR}/calc-static${EXT}" ]; then \
4879	    ${RM} -f "${T}${BINDIR}/calc-static${EXT}"; \
4880	    if [ -f "${T}${BINDIR}/calc-static${EXT}" ]; then \
4881		echo "cannot uninstall ${T}${BINDIR}/calc-static${EXT}"; \
4882	    else \
4883		echo "uninstalled ${T}${BINDIR}/calc-static${EXT}"; \
4884	    fi; \
4885	fi
4886	-${Q} if [ -f "${T}${BINDIR}/calc${EXT}" ]; then \
4887	    ${RM} -f "${T}${BINDIR}/calc${EXT}"; \
4888	    if [ -f "${T}${BINDIR}/calc${EXT}" ]; then \
4889		echo "cannot uninstall ${T}${BINDIR}/calc${EXT}"; \
4890	    else \
4891		echo "uninstalled ${T}${BINDIR}/calc${EXT}"; \
4892	    fi; \
4893	fi
4894	-${Q} for i in ${CATDIR} ${MANDIR} ${SCRIPTDIR} \
4895		    ${CUSTOMINCDIR} ${CUSTOMHELPDIR} ${CUSTOMCALDIR} \
4896		    ${CALC_INCDIR} ${LIBDIR} ${INCDIR} ${BINDIR}; do \
4897	    if [ -d "${T}$$i" ]; then \
4898		${RMDIR} "${T}$$i" 2>/dev/null; \
4899		echo "cleaned up ${T}$$i"; \
4900	    fi; \
4901	done
4902	-${Q} if [ ! -z "${T}" ]; then \
4903	    if [ -d "${T}" ]; then \
4904		${RMDIR} "${T}" 2>/dev/null; \
4905		echo "cleaned up ${T}"; \
4906	    fi; \
4907	 fi
4908	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4909
4910# unbak - remove any .bak files that may have been created
4911#
4912unbak:
4913	${Q} ${RM} -f -v Makefile.bak Makefile.simple.bak
4914	${Q} ${RM} -f -v custom/Makefile.bak custom/Makefile.simple.bak
4915
4916# splint - A tool for statically checking C programs
4917#
4918splint: #hsrc
4919	${SPLINT} ${SPLINT_OPTS} -DCALC_SRC -I. \
4920	    ${CALCSRC} ${LIBSRC} ${BUILD_C_SRC} ${UTIL_C_SRC}
4921
4922# strip - for reducing the size of the binary files
4923#
4924strip:
4925	${V} echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
4926	${Q} for i in ${UTIL_PROGS} ${SAMPLE_TARGETS} ${SAMPLE_STATIC_TARGETS} \
4927		 calc${EXT} calc-static${EXT} ${CALC_DYNAMIC_LIBS} \
4928		 ${CALC_STATIC_LIBS}; do \
4929	    if [ -s "$$i" -a -w "$$i" ]; then \
4930		${STRIP} "$$i"; \
4931		echo "stripped $$i"; \
4932	    fi; \
4933	done
4934	${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
4935
4936# calc-symlink - setup symlinks from standard locations into the ${T} tree
4937#
4938calc-symlink:
4939	${Q}if [ -z "${T}" ]; then \
4940	    echo "cannot use $@ make rule when T make var is empty" 1>&2; \
4941	    echo "aborting" 1>&2; \
4942	    exit 1; \
4943	fi
4944	-${Q} for i in	${BINDIR}/calc${EXT} \
4945			${BINDIR}/calc-static${EXT} \
4946			${SCRIPTDIR} \
4947			${LIBDIR}/libcalc${LIB_EXT_VERSION} \
4948			${LIBDIR}/libcustcalc${LIB_EXT_VERSION} \
4949			${MANDIR}/calc.${MANEXT} \
4950			${CALC_SHAREDIR} \
4951			${CALC_INCDIR} \
4952			; do \
4953	    if [ -e "${T}$$i" ]; then \
4954		    if [ ! -L "$$i" -a "${T}$$i" -ef "$$i" ]; then \
4955			echo "ERROR: ${T}$$i is the same as $$i" 1>&2; \
4956		    else \
4957			if [ -e "$$i" ]; then \
4958			    echo ${RM} -f "$$i"; \
4959			    ${RM} -f "$$i"; \
4960			fi; \
4961			echo ${LN} -s "${T}$$i" "$$i"; \
4962			${LN} -s "${T}$$i" "$$i"; \
4963		    fi; \
4964	    else \
4965	        echo "Warning: not found: ${T}$$i" 1>&2; \
4966	    fi; \
4967	done
4968	-${Q} if [ -n "${CATDIR}" ]; then \
4969	    if [ -e "${T}${CATDIR}/calc.${CATEXT}" ]; then \
4970		if [ ! -L "${CATDIR}/calc.${CATEXT}" -a \
4971		     "${T}${CATDIR}/calc.${CATEXT}" -ef \
4972		     "${CATDIR}/calc.${CATEXT}" ]; then \
4973			${ECHON} "ERROR: ${T}${CATDIR}/calc.${CATEXT}" 2>&1; \
4974			echo "is the same as ${CATDIR}/calc.${CATEXT}" 1>&2; \
4975		else \
4976		    if [ -e "${CATDIR}/calc.${CATEXT}" ]; then \
4977			echo ${RM} -f "${CATDIR}/calc.${CATEXT}"; \
4978			${RM} -f "${CATDIR}/calc.${CATEXT}"; \
4979		    fi; \
4980		    echo ${LN} -s "${T}${CATDIR}/calc.${CATEXT}" \
4981		                  "${CATDIR}/calc.${CATEXT}"; \
4982		    ${LN} -s "${T}${CATDIR}/calc.${CATEXT}" \
4983		             "${CATDIR}/calc.${CATEXT}"; \
4984		fi; \
4985	    fi; \
4986	fi
4987
4988# remove any symlinks that may have been created by calc-symlink
4989#
4990calc-unsymlink:
4991	-${Q} for i in	${BINDIR}/calc${EXT} \
4992			${BINDIR}/calc-static${EXT} \
4993			${SCRIPTDIR} \
4994			${LIBDIR}/libcalc${LIB_EXT_VERSION} \
4995			${LIBDIR}/libcustcalc${LIB_EXT_VERSION} \
4996			${MANDIR}/calc.${MANEXT} \
4997			${CALC_SHAREDIR} \
4998			${CALC_INCDIR} \
4999			; do \
5000	    if [ -L "$$i" ]; then \
5001		echo ${RM} -f "$$i"; \
5002		${RM} -f "$$i"; \
5003	    else \
5004	        echo "Warning: ignoring non-symlink: $$i" 1>&2; \
5005	    fi; \
5006	done
5007	-${Q} if [ -n "${CATDIR}" ]; then \
5008	    if [ -L "${CATDIR}/calc.${CATEXT}" ]; then \
5009		echo ${RM} -f "${CATDIR}/calc.${CATEXT}"; \
5010		${RM} -f "${CATDIR}/calc.${CATEXT}"; \
5011	    else \
5012	        echo "Warning: ignoring non-symlink: ${CATDIR}/calc.${CATEXT}" \
5013		      1>&2; \
5014	    fi; \
5015	fi
5016
5017###
5018#
5019# make depend stuff
5020#
5021###
5022
5023# DO NOT DELETE THIS LINE -- make depend depends on it.
5024
5025addop.o: addop.c
5026addop.o: alloc.h
5027addop.o: banned.h
5028addop.o: block.h
5029addop.o: byteswap.h
5030addop.o: calc.h
5031addop.o: calcerr.h
5032addop.o: cmath.h
5033addop.o: config.h
5034addop.o: decl.h
5035addop.o: endian_calc.h
5036addop.o: func.h
5037addop.o: hash.h
5038addop.o: have_ban_pragma.h
5039addop.o: have_const.h
5040addop.o: have_memmv.h
5041addop.o: have_newstr.h
5042addop.o: have_stdlib.h
5043addop.o: have_string.h
5044addop.o: label.h
5045addop.o: longbits.h
5046addop.o: nametype.h
5047addop.o: opcodes.h
5048addop.o: qmath.h
5049addop.o: sha1.h
5050addop.o: str.h
5051addop.o: symbol.h
5052addop.o: token.h
5053addop.o: value.h
5054addop.o: zmath.h
5055align32.o: align32.c
5056align32.o: banned.h
5057align32.o: have_ban_pragma.h
5058align32.o: have_unistd.h
5059align32.o: longbits.h
5060assocfunc.o: alloc.h
5061assocfunc.o: assocfunc.c
5062assocfunc.o: banned.h
5063assocfunc.o: block.h
5064assocfunc.o: byteswap.h
5065assocfunc.o: calcerr.h
5066assocfunc.o: cmath.h
5067assocfunc.o: config.h
5068assocfunc.o: decl.h
5069assocfunc.o: endian_calc.h
5070assocfunc.o: hash.h
5071assocfunc.o: have_ban_pragma.h
5072assocfunc.o: have_const.h
5073assocfunc.o: have_memmv.h
5074assocfunc.o: have_newstr.h
5075assocfunc.o: have_stdlib.h
5076assocfunc.o: have_string.h
5077assocfunc.o: longbits.h
5078assocfunc.o: nametype.h
5079assocfunc.o: qmath.h
5080assocfunc.o: sha1.h
5081assocfunc.o: str.h
5082assocfunc.o: value.h
5083assocfunc.o: zmath.h
5084blkcpy.o: alloc.h
5085blkcpy.o: banned.h
5086blkcpy.o: blkcpy.c
5087blkcpy.o: blkcpy.h
5088blkcpy.o: block.h
5089blkcpy.o: byteswap.h
5090blkcpy.o: calc.h
5091blkcpy.o: calcerr.h
5092blkcpy.o: cmath.h
5093blkcpy.o: config.h
5094blkcpy.o: decl.h
5095blkcpy.o: endian_calc.h
5096blkcpy.o: file.h
5097blkcpy.o: hash.h
5098blkcpy.o: have_ban_pragma.h
5099blkcpy.o: have_const.h
5100blkcpy.o: have_fpos.h
5101blkcpy.o: have_memmv.h
5102blkcpy.o: have_newstr.h
5103blkcpy.o: have_stdlib.h
5104blkcpy.o: have_string.h
5105blkcpy.o: longbits.h
5106blkcpy.o: nametype.h
5107blkcpy.o: qmath.h
5108blkcpy.o: sha1.h
5109blkcpy.o: str.h
5110blkcpy.o: value.h
5111blkcpy.o: zmath.h
5112block.o: alloc.h
5113block.o: banned.h
5114block.o: block.c
5115block.o: block.h
5116block.o: byteswap.h
5117block.o: calcerr.h
5118block.o: cmath.h
5119block.o: config.h
5120block.o: decl.h
5121block.o: endian_calc.h
5122block.o: hash.h
5123block.o: have_ban_pragma.h
5124block.o: have_const.h
5125block.o: have_memmv.h
5126block.o: have_newstr.h
5127block.o: have_stdlib.h
5128block.o: have_string.h
5129block.o: longbits.h
5130block.o: nametype.h
5131block.o: qmath.h
5132block.o: sha1.h
5133block.o: str.h
5134block.o: value.h
5135block.o: zmath.h
5136byteswap.o: alloc.h
5137byteswap.o: banned.h
5138byteswap.o: byteswap.c
5139byteswap.o: byteswap.h
5140byteswap.o: cmath.h
5141byteswap.o: decl.h
5142byteswap.o: endian_calc.h
5143byteswap.o: have_ban_pragma.h
5144byteswap.o: have_const.h
5145byteswap.o: have_memmv.h
5146byteswap.o: have_newstr.h
5147byteswap.o: have_stdlib.h
5148byteswap.o: have_string.h
5149byteswap.o: longbits.h
5150byteswap.o: qmath.h
5151byteswap.o: zmath.h
5152calc.o: alloc.h
5153calc.o: args.h
5154calc.o: banned.h
5155calc.o: block.h
5156calc.o: byteswap.h
5157calc.o: calc.c
5158calc.o: calc.h
5159calc.o: calcerr.h
5160calc.o: cmath.h
5161calc.o: conf.h
5162calc.o: config.h
5163calc.o: custom.h
5164calc.o: decl.h
5165calc.o: endian_calc.h
5166calc.o: func.h
5167calc.o: hash.h
5168calc.o: have_ban_pragma.h
5169calc.o: have_const.h
5170calc.o: have_memmv.h
5171calc.o: have_newstr.h
5172calc.o: have_stdlib.h
5173calc.o: have_strdup.h
5174calc.o: have_string.h
5175calc.o: have_strlcat.h
5176calc.o: have_strlcpy.h
5177calc.o: have_uid_t.h
5178calc.o: have_unistd.h
5179calc.o: have_unused.h
5180calc.o: hist.h
5181calc.o: label.h
5182calc.o: lib_calc.h
5183calc.o: longbits.h
5184calc.o: nametype.h
5185calc.o: opcodes.h
5186calc.o: qmath.h
5187calc.o: sha1.h
5188calc.o: str.h
5189calc.o: strl.h
5190calc.o: symbol.h
5191calc.o: token.h
5192calc.o: value.h
5193calc.o: zmath.h
5194calcerr.o: banned.h
5195calcerr.o: calcerr.c
5196calcerr.o: calcerr.h
5197calcerr.o: have_ban_pragma.h
5198calcerr.o: have_const.h
5199charbit.o: banned.h
5200charbit.o: charbit.c
5201charbit.o: have_ban_pragma.h
5202charbit.o: have_limits.h
5203codegen.o: alloc.h
5204codegen.o: banned.h
5205codegen.o: block.h
5206codegen.o: byteswap.h
5207codegen.o: calc.h
5208codegen.o: calcerr.h
5209codegen.o: cmath.h
5210codegen.o: codegen.c
5211codegen.o: conf.h
5212codegen.o: config.h
5213codegen.o: decl.h
5214codegen.o: endian_calc.h
5215codegen.o: func.h
5216codegen.o: hash.h
5217codegen.o: have_ban_pragma.h
5218codegen.o: have_const.h
5219codegen.o: have_memmv.h
5220codegen.o: have_newstr.h
5221codegen.o: have_stdlib.h
5222codegen.o: have_string.h
5223codegen.o: have_strlcat.h
5224codegen.o: have_strlcpy.h
5225codegen.o: have_unistd.h
5226codegen.o: label.h
5227codegen.o: lib_calc.h
5228codegen.o: longbits.h
5229codegen.o: nametype.h
5230codegen.o: opcodes.h
5231codegen.o: qmath.h
5232codegen.o: sha1.h
5233codegen.o: str.h
5234codegen.o: strl.h
5235codegen.o: symbol.h
5236codegen.o: token.h
5237codegen.o: value.h
5238codegen.o: zmath.h
5239comfunc.o: alloc.h
5240comfunc.o: banned.h
5241comfunc.o: byteswap.h
5242comfunc.o: cmath.h
5243comfunc.o: comfunc.c
5244comfunc.o: config.h
5245comfunc.o: decl.h
5246comfunc.o: endian_calc.h
5247comfunc.o: have_ban_pragma.h
5248comfunc.o: have_const.h
5249comfunc.o: have_memmv.h
5250comfunc.o: have_newstr.h
5251comfunc.o: have_stdlib.h
5252comfunc.o: have_string.h
5253comfunc.o: longbits.h
5254comfunc.o: nametype.h
5255comfunc.o: qmath.h
5256comfunc.o: zmath.h
5257commath.o: alloc.h
5258commath.o: banned.h
5259commath.o: byteswap.h
5260commath.o: cmath.h
5261commath.o: commath.c
5262commath.o: decl.h
5263commath.o: endian_calc.h
5264commath.o: have_ban_pragma.h
5265commath.o: have_const.h
5266commath.o: have_memmv.h
5267commath.o: have_newstr.h
5268commath.o: have_stdlib.h
5269commath.o: have_string.h
5270commath.o: longbits.h
5271commath.o: qmath.h
5272commath.o: zmath.h
5273config.o: alloc.h
5274config.o: banned.h
5275config.o: block.h
5276config.o: byteswap.h
5277config.o: calc.h
5278config.o: calcerr.h
5279config.o: cmath.h
5280config.o: config.c
5281config.o: config.h
5282config.o: custom.h
5283config.o: decl.h
5284config.o: endian_calc.h
5285config.o: hash.h
5286config.o: have_ban_pragma.h
5287config.o: have_const.h
5288config.o: have_memmv.h
5289config.o: have_newstr.h
5290config.o: have_stdlib.h
5291config.o: have_strdup.h
5292config.o: have_string.h
5293config.o: have_strlcat.h
5294config.o: have_strlcpy.h
5295config.o: have_times.h
5296config.o: longbits.h
5297config.o: nametype.h
5298config.o: qmath.h
5299config.o: sha1.h
5300config.o: str.h
5301config.o: strl.h
5302config.o: token.h
5303config.o: value.h
5304config.o: zmath.h
5305config.o: zrand.h
5306const.o: alloc.h
5307const.o: banned.h
5308const.o: block.h
5309const.o: byteswap.h
5310const.o: calc.h
5311const.o: calcerr.h
5312const.o: cmath.h
5313const.o: config.h
5314const.o: const.c
5315const.o: decl.h
5316const.o: endian_calc.h
5317const.o: hash.h
5318const.o: have_ban_pragma.h
5319const.o: have_const.h
5320const.o: have_memmv.h
5321const.o: have_newstr.h
5322const.o: have_stdlib.h
5323const.o: have_string.h
5324const.o: longbits.h
5325const.o: nametype.h
5326const.o: qmath.h
5327const.o: sha1.h
5328const.o: str.h
5329const.o: value.h
5330const.o: zmath.h
5331custom.o: alloc.h
5332custom.o: banned.h
5333custom.o: block.h
5334custom.o: byteswap.h
5335custom.o: calc.h
5336custom.o: calcerr.h
5337custom.o: cmath.h
5338custom.o: config.h
5339custom.o: custom.c
5340custom.o: custom.h
5341custom.o: decl.h
5342custom.o: endian_calc.h
5343custom.o: hash.h
5344custom.o: have_ban_pragma.h
5345custom.o: have_const.h
5346custom.o: have_memmv.h
5347custom.o: have_newstr.h
5348custom.o: have_stdlib.h
5349custom.o: have_string.h
5350custom.o: longbits.h
5351custom.o: nametype.h
5352custom.o: qmath.h
5353custom.o: sha1.h
5354custom.o: str.h
5355custom.o: value.h
5356custom.o: zmath.h
5357endian.o: banned.h
5358endian.o: endian.c
5359endian.o: have_ban_pragma.h
5360endian.o: have_stdlib.h
5361endian.o: have_unistd.h
5362file.o: alloc.h
5363file.o: banned.h
5364file.o: block.h
5365file.o: byteswap.h
5366file.o: calc.h
5367file.o: calcerr.h
5368file.o: cmath.h
5369file.o: config.h
5370file.o: decl.h
5371file.o: endian_calc.h
5372file.o: file.c
5373file.o: file.h
5374file.o: fposval.h
5375file.o: hash.h
5376file.o: have_ban_pragma.h
5377file.o: have_const.h
5378file.o: have_fpos.h
5379file.o: have_fpos_pos.h
5380file.o: have_memmv.h
5381file.o: have_newstr.h
5382file.o: have_stdlib.h
5383file.o: have_string.h
5384file.o: have_strlcat.h
5385file.o: have_strlcpy.h
5386file.o: have_unistd.h
5387file.o: longbits.h
5388file.o: nametype.h
5389file.o: qmath.h
5390file.o: sha1.h
5391file.o: str.h
5392file.o: strl.h
5393file.o: value.h
5394file.o: zmath.h
5395fposval.o: alloc.h
5396fposval.o: banned.h
5397fposval.o: endian_calc.h
5398fposval.o: fposval.c
5399fposval.o: have_ban_pragma.h
5400fposval.o: have_fpos.h
5401fposval.o: have_fpos_pos.h
5402fposval.o: have_memmv.h
5403fposval.o: have_newstr.h
5404fposval.o: have_offscl.h
5405fposval.o: have_posscl.h
5406fposval.o: have_string.h
5407func.o: alloc.h
5408func.o: banned.h
5409func.o: block.h
5410func.o: byteswap.h
5411func.o: calc.h
5412func.o: calcerr.h
5413func.o: cmath.h
5414func.o: config.h
5415func.o: custom.h
5416func.o: decl.h
5417func.o: endian_calc.h
5418func.o: file.h
5419func.o: func.c
5420func.o: func.h
5421func.o: hash.h
5422func.o: have_ban_pragma.h
5423func.o: have_const.h
5424func.o: have_fpos.h
5425func.o: have_memmv.h
5426func.o: have_newstr.h
5427func.o: have_rusage.h
5428func.o: have_stdlib.h
5429func.o: have_strdup.h
5430func.o: have_string.h
5431func.o: have_strlcat.h
5432func.o: have_strlcpy.h
5433func.o: have_times.h
5434func.o: have_unistd.h
5435func.o: have_unused.h
5436func.o: label.h
5437func.o: longbits.h
5438func.o: nametype.h
5439func.o: opcodes.h
5440func.o: prime.h
5441func.o: qmath.h
5442func.o: sha1.h
5443func.o: str.h
5444func.o: strl.h
5445func.o: symbol.h
5446func.o: token.h
5447func.o: value.h
5448func.o: zmath.h
5449func.o: zrand.h
5450func.o: zrandom.h
5451hash.o: alloc.h
5452hash.o: banned.h
5453hash.o: block.h
5454hash.o: byteswap.h
5455hash.o: calc.h
5456hash.o: calcerr.h
5457hash.o: cmath.h
5458hash.o: config.h
5459hash.o: decl.h
5460hash.o: endian_calc.h
5461hash.o: hash.c
5462hash.o: hash.h
5463hash.o: have_ban_pragma.h
5464hash.o: have_const.h
5465hash.o: have_memmv.h
5466hash.o: have_newstr.h
5467hash.o: have_stdlib.h
5468hash.o: have_string.h
5469hash.o: longbits.h
5470hash.o: nametype.h
5471hash.o: qmath.h
5472hash.o: sha1.h
5473hash.o: str.h
5474hash.o: value.h
5475hash.o: zmath.h
5476hash.o: zrand.h
5477hash.o: zrandom.h
5478have_arc4random.o: banned.h
5479have_arc4random.o: have_arc4random.c
5480have_arc4random.o: have_ban_pragma.h
5481have_arc4random.o: have_stdlib.h
5482have_ban_pragma.o: banned.h
5483have_ban_pragma.o: have_ban_pragma.c
5484have_ban_pragma.o: have_ban_pragma.h
5485have_const.o: banned.h
5486have_const.o: have_ban_pragma.h
5487have_const.o: have_const.c
5488have_environ.o: banned.h
5489have_environ.o: have_ban_pragma.h
5490have_environ.o: have_environ.c
5491have_fpos.o: banned.h
5492have_fpos.o: have_ban_pragma.h
5493have_fpos.o: have_fpos.c
5494have_fpos_pos.o: banned.h
5495have_fpos_pos.o: have_ban_pragma.h
5496have_fpos_pos.o: have_fpos.h
5497have_fpos_pos.o: have_fpos_pos.c
5498have_fpos_pos.o: have_posscl.h
5499have_getpgid.o: banned.h
5500have_getpgid.o: have_ban_pragma.h
5501have_getpgid.o: have_getpgid.c
5502have_getpgid.o: have_unistd.h
5503have_getprid.o: banned.h
5504have_getprid.o: have_ban_pragma.h
5505have_getprid.o: have_getprid.c
5506have_getprid.o: have_unistd.h
5507have_getsid.o: banned.h
5508have_getsid.o: have_ban_pragma.h
5509have_getsid.o: have_getsid.c
5510have_getsid.o: have_unistd.h
5511have_gettime.o: banned.h
5512have_gettime.o: have_ban_pragma.h
5513have_gettime.o: have_gettime.c
5514have_memmv.o: banned.h
5515have_memmv.o: have_ban_pragma.h
5516have_memmv.o: have_memmv.c
5517have_memmv.o: have_string.h
5518have_newstr.o: banned.h
5519have_newstr.o: have_ban_pragma.h
5520have_newstr.o: have_newstr.c
5521have_newstr.o: have_string.h
5522have_offscl.o: banned.h
5523have_offscl.o: have_ban_pragma.h
5524have_offscl.o: have_offscl.c
5525have_offscl.o: have_unistd.h
5526have_posscl.o: banned.h
5527have_posscl.o: have_ban_pragma.h
5528have_posscl.o: have_fpos.h
5529have_posscl.o: have_posscl.c
5530have_posscl.o: have_unistd.h
5531have_rusage.o: banned.h
5532have_rusage.o: have_ban_pragma.h
5533have_rusage.o: have_rusage.c
5534have_stdvs.o: banned.h
5535have_stdvs.o: have_ban_pragma.h
5536have_stdvs.o: have_stdlib.h
5537have_stdvs.o: have_stdvs.c
5538have_stdvs.o: have_string.h
5539have_stdvs.o: have_unistd.h
5540have_strdup.o: banned.h
5541have_strdup.o: have_ban_pragma.h
5542have_strdup.o: have_strdup.c
5543have_strdup.o: have_string.h
5544have_strlcat.o: banned.h
5545have_strlcat.o: have_ban_pragma.h
5546have_strlcat.o: have_string.h
5547have_strlcat.o: have_strlcat.c
5548have_strlcpy.o: banned.h
5549have_strlcpy.o: have_ban_pragma.h
5550have_strlcpy.o: have_string.h
5551have_strlcpy.o: have_strlcpy.c
5552have_uid_t.o: banned.h
5553have_uid_t.o: have_ban_pragma.h
5554have_uid_t.o: have_uid_t.c
5555have_uid_t.o: have_unistd.h
5556have_unused.o: banned.h
5557have_unused.o: have_ban_pragma.h
5558have_unused.o: have_unused.c
5559have_ustat.o: banned.h
5560have_ustat.o: have_ban_pragma.h
5561have_ustat.o: have_ustat.c
5562have_varvs.o: banned.h
5563have_varvs.o: have_ban_pragma.h
5564have_varvs.o: have_string.h
5565have_varvs.o: have_unistd.h
5566have_varvs.o: have_varvs.c
5567help.o: alloc.h
5568help.o: banned.h
5569help.o: block.h
5570help.o: byteswap.h
5571help.o: calc.h
5572help.o: calcerr.h
5573help.o: cmath.h
5574help.o: conf.h
5575help.o: config.h
5576help.o: decl.h
5577help.o: endian_calc.h
5578help.o: hash.h
5579help.o: have_ban_pragma.h
5580help.o: have_const.h
5581help.o: have_memmv.h
5582help.o: have_newstr.h
5583help.o: have_stdlib.h
5584help.o: have_string.h
5585help.o: have_unistd.h
5586help.o: help.c
5587help.o: lib_calc.h
5588help.o: longbits.h
5589help.o: nametype.h
5590help.o: qmath.h
5591help.o: sha1.h
5592help.o: str.h
5593help.o: value.h
5594help.o: zmath.h
5595hist.o: alloc.h
5596hist.o: banned.h
5597hist.o: block.h
5598hist.o: byteswap.h
5599hist.o: calc.h
5600hist.o: calcerr.h
5601hist.o: cmath.h
5602hist.o: config.h
5603hist.o: decl.h
5604hist.o: endian_calc.h
5605hist.o: hash.h
5606hist.o: have_ban_pragma.h
5607hist.o: have_const.h
5608hist.o: have_memmv.h
5609hist.o: have_newstr.h
5610hist.o: have_stdlib.h
5611hist.o: have_strdup.h
5612hist.o: have_string.h
5613hist.o: have_strlcat.h
5614hist.o: have_strlcpy.h
5615hist.o: have_unistd.h
5616hist.o: have_unused.h
5617hist.o: hist.c
5618hist.o: hist.h
5619hist.o: lib_calc.h
5620hist.o: longbits.h
5621hist.o: nametype.h
5622hist.o: qmath.h
5623hist.o: sha1.h
5624hist.o: str.h
5625hist.o: strl.h
5626hist.o: value.h
5627hist.o: zmath.h
5628input.o: alloc.h
5629input.o: banned.h
5630input.o: block.h
5631input.o: byteswap.h
5632input.o: calc.h
5633input.o: calcerr.h
5634input.o: cmath.h
5635input.o: conf.h
5636input.o: config.h
5637input.o: decl.h
5638input.o: endian_calc.h
5639input.o: hash.h
5640input.o: have_ban_pragma.h
5641input.o: have_const.h
5642input.o: have_memmv.h
5643input.o: have_newstr.h
5644input.o: have_stdlib.h
5645input.o: have_string.h
5646input.o: have_strlcat.h
5647input.o: have_strlcpy.h
5648input.o: have_unistd.h
5649input.o: hist.h
5650input.o: input.c
5651input.o: longbits.h
5652input.o: nametype.h
5653input.o: qmath.h
5654input.o: sha1.h
5655input.o: str.h
5656input.o: strl.h
5657input.o: value.h
5658input.o: zmath.h
5659jump.o: banned.h
5660jump.o: decl.h
5661jump.o: have_ban_pragma.h
5662jump.o: have_const.h
5663jump.o: jump.c
5664jump.o: jump.h
5665label.o: alloc.h
5666label.o: banned.h
5667label.o: block.h
5668label.o: byteswap.h
5669label.o: calc.h
5670label.o: calcerr.h
5671label.o: cmath.h
5672label.o: config.h
5673label.o: decl.h
5674label.o: endian_calc.h
5675label.o: func.h
5676label.o: hash.h
5677label.o: have_ban_pragma.h
5678label.o: have_const.h
5679label.o: have_memmv.h
5680label.o: have_newstr.h
5681label.o: have_stdlib.h
5682label.o: have_string.h
5683label.o: label.c
5684label.o: label.h
5685label.o: longbits.h
5686label.o: nametype.h
5687label.o: opcodes.h
5688label.o: qmath.h
5689label.o: sha1.h
5690label.o: str.h
5691label.o: token.h
5692label.o: value.h
5693label.o: zmath.h
5694lib_calc.o: alloc.h
5695lib_calc.o: banned.h
5696lib_calc.o: block.h
5697lib_calc.o: byteswap.h
5698lib_calc.o: calc.h
5699lib_calc.o: calcerr.h
5700lib_calc.o: cmath.h
5701lib_calc.o: conf.h
5702lib_calc.o: config.h
5703lib_calc.o: custom.h
5704lib_calc.o: decl.h
5705lib_calc.o: endian_calc.h
5706lib_calc.o: func.h
5707lib_calc.o: hash.h
5708lib_calc.o: have_ban_pragma.h
5709lib_calc.o: have_const.h
5710lib_calc.o: have_memmv.h
5711lib_calc.o: have_newstr.h
5712lib_calc.o: have_stdlib.h
5713lib_calc.o: have_strdup.h
5714lib_calc.o: have_string.h
5715lib_calc.o: have_strlcat.h
5716lib_calc.o: have_strlcpy.h
5717lib_calc.o: have_unistd.h
5718lib_calc.o: label.h
5719lib_calc.o: lib_calc.c
5720lib_calc.o: lib_calc.h
5721lib_calc.o: longbits.h
5722lib_calc.o: nametype.h
5723lib_calc.o: qmath.h
5724lib_calc.o: sha1.h
5725lib_calc.o: str.h
5726lib_calc.o: strl.h
5727lib_calc.o: symbol.h
5728lib_calc.o: terminal.h
5729lib_calc.o: token.h
5730lib_calc.o: value.h
5731lib_calc.o: zmath.h
5732lib_calc.o: zrandom.h
5733lib_util.o: alloc.h
5734lib_util.o: banned.h
5735lib_util.o: byteswap.h
5736lib_util.o: decl.h
5737lib_util.o: endian_calc.h
5738lib_util.o: have_ban_pragma.h
5739lib_util.o: have_const.h
5740lib_util.o: have_memmv.h
5741lib_util.o: have_newstr.h
5742lib_util.o: have_stdlib.h
5743lib_util.o: have_string.h
5744lib_util.o: lib_util.c
5745lib_util.o: lib_util.h
5746lib_util.o: longbits.h
5747lib_util.o: zmath.h
5748listfunc.o: alloc.h
5749listfunc.o: banned.h
5750listfunc.o: block.h
5751listfunc.o: byteswap.h
5752listfunc.o: calcerr.h
5753listfunc.o: cmath.h
5754listfunc.o: config.h
5755listfunc.o: decl.h
5756listfunc.o: endian_calc.h
5757listfunc.o: hash.h
5758listfunc.o: have_ban_pragma.h
5759listfunc.o: have_const.h
5760listfunc.o: have_memmv.h
5761listfunc.o: have_newstr.h
5762listfunc.o: have_stdlib.h
5763listfunc.o: have_string.h
5764listfunc.o: listfunc.c
5765listfunc.o: longbits.h
5766listfunc.o: nametype.h
5767listfunc.o: qmath.h
5768listfunc.o: sha1.h
5769listfunc.o: str.h
5770listfunc.o: value.h
5771listfunc.o: zmath.h
5772listfunc.o: zrand.h
5773longbits.o: banned.h
5774longbits.o: charbit.h
5775longbits.o: have_ban_pragma.h
5776longbits.o: have_limits.h
5777longbits.o: have_stdlib.h
5778longbits.o: have_unistd.h
5779longbits.o: longbits.c
5780matfunc.o: alloc.h
5781matfunc.o: banned.h
5782matfunc.o: block.h
5783matfunc.o: byteswap.h
5784matfunc.o: calcerr.h
5785matfunc.o: cmath.h
5786matfunc.o: config.h
5787matfunc.o: decl.h
5788matfunc.o: endian_calc.h
5789matfunc.o: hash.h
5790matfunc.o: have_ban_pragma.h
5791matfunc.o: have_const.h
5792matfunc.o: have_memmv.h
5793matfunc.o: have_newstr.h
5794matfunc.o: have_stdlib.h
5795matfunc.o: have_string.h
5796matfunc.o: have_unused.h
5797matfunc.o: longbits.h
5798matfunc.o: matfunc.c
5799matfunc.o: nametype.h
5800matfunc.o: qmath.h
5801matfunc.o: sha1.h
5802matfunc.o: str.h
5803matfunc.o: value.h
5804matfunc.o: zmath.h
5805matfunc.o: zrand.h
5806math_error.o: alloc.h
5807math_error.o: args.h
5808math_error.o: banned.h
5809math_error.o: block.h
5810math_error.o: byteswap.h
5811math_error.o: calc.h
5812math_error.o: calcerr.h
5813math_error.o: cmath.h
5814math_error.o: config.h
5815math_error.o: decl.h
5816math_error.o: endian_calc.h
5817math_error.o: hash.h
5818math_error.o: have_ban_pragma.h
5819math_error.o: have_const.h
5820math_error.o: have_memmv.h
5821math_error.o: have_newstr.h
5822math_error.o: have_stdlib.h
5823math_error.o: have_string.h
5824math_error.o: lib_calc.h
5825math_error.o: longbits.h
5826math_error.o: math_error.c
5827math_error.o: nametype.h
5828math_error.o: qmath.h
5829math_error.o: sha1.h
5830math_error.o: str.h
5831math_error.o: value.h
5832math_error.o: zmath.h
5833obj.o: alloc.h
5834obj.o: banned.h
5835obj.o: block.h
5836obj.o: byteswap.h
5837obj.o: calc.h
5838obj.o: calcerr.h
5839obj.o: cmath.h
5840obj.o: config.h
5841obj.o: decl.h
5842obj.o: endian_calc.h
5843obj.o: func.h
5844obj.o: hash.h
5845obj.o: have_ban_pragma.h
5846obj.o: have_const.h
5847obj.o: have_memmv.h
5848obj.o: have_newstr.h
5849obj.o: have_stdlib.h
5850obj.o: have_string.h
5851obj.o: have_strlcat.h
5852obj.o: have_strlcpy.h
5853obj.o: label.h
5854obj.o: longbits.h
5855obj.o: nametype.h
5856obj.o: obj.c
5857obj.o: opcodes.h
5858obj.o: qmath.h
5859obj.o: sha1.h
5860obj.o: str.h
5861obj.o: strl.h
5862obj.o: symbol.h
5863obj.o: value.h
5864obj.o: zmath.h
5865opcodes.o: alloc.h
5866opcodes.o: banned.h
5867opcodes.o: block.h
5868opcodes.o: byteswap.h
5869opcodes.o: calc.h
5870opcodes.o: calcerr.h
5871opcodes.o: cmath.h
5872opcodes.o: config.h
5873opcodes.o: custom.h
5874opcodes.o: decl.h
5875opcodes.o: endian_calc.h
5876opcodes.o: file.h
5877opcodes.o: func.h
5878opcodes.o: hash.h
5879opcodes.o: have_ban_pragma.h
5880opcodes.o: have_const.h
5881opcodes.o: have_fpos.h
5882opcodes.o: have_memmv.h
5883opcodes.o: have_newstr.h
5884opcodes.o: have_stdlib.h
5885opcodes.o: have_string.h
5886opcodes.o: have_unused.h
5887opcodes.o: hist.h
5888opcodes.o: label.h
5889opcodes.o: lib_calc.h
5890opcodes.o: longbits.h
5891opcodes.o: nametype.h
5892opcodes.o: opcodes.c
5893opcodes.o: opcodes.h
5894opcodes.o: qmath.h
5895opcodes.o: sha1.h
5896opcodes.o: str.h
5897opcodes.o: symbol.h
5898opcodes.o: value.h
5899opcodes.o: zmath.h
5900opcodes.o: zrand.h
5901opcodes.o: zrandom.h
5902pix.o: alloc.h
5903pix.o: banned.h
5904pix.o: byteswap.h
5905pix.o: decl.h
5906pix.o: endian_calc.h
5907pix.o: have_ban_pragma.h
5908pix.o: have_const.h
5909pix.o: have_memmv.h
5910pix.o: have_newstr.h
5911pix.o: have_stdlib.h
5912pix.o: have_string.h
5913pix.o: longbits.h
5914pix.o: pix.c
5915pix.o: prime.h
5916pix.o: qmath.h
5917pix.o: zmath.h
5918poly.o: alloc.h
5919poly.o: banned.h
5920poly.o: block.h
5921poly.o: byteswap.h
5922poly.o: calcerr.h
5923poly.o: cmath.h
5924poly.o: config.h
5925poly.o: decl.h
5926poly.o: endian_calc.h
5927poly.o: hash.h
5928poly.o: have_ban_pragma.h
5929poly.o: have_const.h
5930poly.o: have_memmv.h
5931poly.o: have_newstr.h
5932poly.o: have_stdlib.h
5933poly.o: have_string.h
5934poly.o: longbits.h
5935poly.o: nametype.h
5936poly.o: poly.c
5937poly.o: qmath.h
5938poly.o: sha1.h
5939poly.o: str.h
5940poly.o: value.h
5941poly.o: zmath.h
5942prime.o: alloc.h
5943prime.o: banned.h
5944prime.o: byteswap.h
5945prime.o: decl.h
5946prime.o: endian_calc.h
5947prime.o: have_ban_pragma.h
5948prime.o: have_const.h
5949prime.o: have_memmv.h
5950prime.o: have_newstr.h
5951prime.o: have_stdlib.h
5952prime.o: have_string.h
5953prime.o: jump.h
5954prime.o: longbits.h
5955prime.o: prime.c
5956prime.o: prime.h
5957prime.o: qmath.h
5958prime.o: zmath.h
5959qfunc.o: alloc.h
5960qfunc.o: banned.h
5961qfunc.o: byteswap.h
5962qfunc.o: config.h
5963qfunc.o: decl.h
5964qfunc.o: endian_calc.h
5965qfunc.o: have_ban_pragma.h
5966qfunc.o: have_const.h
5967qfunc.o: have_memmv.h
5968qfunc.o: have_newstr.h
5969qfunc.o: have_stdlib.h
5970qfunc.o: have_string.h
5971qfunc.o: longbits.h
5972qfunc.o: nametype.h
5973qfunc.o: prime.h
5974qfunc.o: qfunc.c
5975qfunc.o: qmath.h
5976qfunc.o: zmath.h
5977qio.o: alloc.h
5978qio.o: args.h
5979qio.o: banned.h
5980qio.o: byteswap.h
5981qio.o: config.h
5982qio.o: decl.h
5983qio.o: endian_calc.h
5984qio.o: have_ban_pragma.h
5985qio.o: have_const.h
5986qio.o: have_memmv.h
5987qio.o: have_newstr.h
5988qio.o: have_stdlib.h
5989qio.o: have_string.h
5990qio.o: have_unused.h
5991qio.o: longbits.h
5992qio.o: nametype.h
5993qio.o: qio.c
5994qio.o: qmath.h
5995qio.o: zmath.h
5996qmath.o: alloc.h
5997qmath.o: banned.h
5998qmath.o: byteswap.h
5999qmath.o: config.h
6000qmath.o: decl.h
6001qmath.o: endian_calc.h
6002qmath.o: have_ban_pragma.h
6003qmath.o: have_const.h
6004qmath.o: have_memmv.h
6005qmath.o: have_newstr.h
6006qmath.o: have_stdlib.h
6007qmath.o: have_string.h
6008qmath.o: longbits.h
6009qmath.o: nametype.h
6010qmath.o: qmath.c
6011qmath.o: qmath.h
6012qmath.o: zmath.h
6013qmod.o: alloc.h
6014qmod.o: banned.h
6015qmod.o: byteswap.h
6016qmod.o: config.h
6017qmod.o: decl.h
6018qmod.o: endian_calc.h
6019qmod.o: have_ban_pragma.h
6020qmod.o: have_const.h
6021qmod.o: have_memmv.h
6022qmod.o: have_newstr.h
6023qmod.o: have_stdlib.h
6024qmod.o: have_string.h
6025qmod.o: longbits.h
6026qmod.o: nametype.h
6027qmod.o: qmath.h
6028qmod.o: qmod.c
6029qmod.o: zmath.h
6030qtrans.o: alloc.h
6031qtrans.o: banned.h
6032qtrans.o: byteswap.h
6033qtrans.o: decl.h
6034qtrans.o: endian_calc.h
6035qtrans.o: have_ban_pragma.h
6036qtrans.o: have_const.h
6037qtrans.o: have_memmv.h
6038qtrans.o: have_newstr.h
6039qtrans.o: have_stdlib.h
6040qtrans.o: have_string.h
6041qtrans.o: longbits.h
6042qtrans.o: qmath.h
6043qtrans.o: qtrans.c
6044qtrans.o: zmath.h
6045quickhash.o: alloc.h
6046quickhash.o: banned.h
6047quickhash.o: block.h
6048quickhash.o: byteswap.h
6049quickhash.o: calcerr.h
6050quickhash.o: cmath.h
6051quickhash.o: config.h
6052quickhash.o: decl.h
6053quickhash.o: endian_calc.h
6054quickhash.o: hash.h
6055quickhash.o: have_ban_pragma.h
6056quickhash.o: have_const.h
6057quickhash.o: have_memmv.h
6058quickhash.o: have_newstr.h
6059quickhash.o: have_stdlib.h
6060quickhash.o: have_string.h
6061quickhash.o: longbits.h
6062quickhash.o: nametype.h
6063quickhash.o: qmath.h
6064quickhash.o: quickhash.c
6065quickhash.o: sha1.h
6066quickhash.o: str.h
6067quickhash.o: value.h
6068quickhash.o: zmath.h
6069quickhash.o: zrand.h
6070quickhash.o: zrandom.h
6071sample_many.o: alloc.h
6072sample_many.o: banned.h
6073sample_many.o: block.h
6074sample_many.o: byteswap.h
6075sample_many.o: calc.h
6076sample_many.o: calcerr.h
6077sample_many.o: cmath.h
6078sample_many.o: config.h
6079sample_many.o: decl.h
6080sample_many.o: endian_calc.h
6081sample_many.o: hash.h
6082sample_many.o: have_ban_pragma.h
6083sample_many.o: have_const.h
6084sample_many.o: have_memmv.h
6085sample_many.o: have_newstr.h
6086sample_many.o: have_stdlib.h
6087sample_many.o: have_string.h
6088sample_many.o: lib_util.h
6089sample_many.o: longbits.h
6090sample_many.o: nametype.h
6091sample_many.o: qmath.h
6092sample_many.o: sample_many.c
6093sample_many.o: sha1.h
6094sample_many.o: str.h
6095sample_many.o: value.h
6096sample_many.o: zmath.h
6097sample_many.o: zrandom.h
6098sample_rand.o: alloc.h
6099sample_rand.o: banned.h
6100sample_rand.o: block.h
6101sample_rand.o: byteswap.h
6102sample_rand.o: calc.h
6103sample_rand.o: calcerr.h
6104sample_rand.o: cmath.h
6105sample_rand.o: config.h
6106sample_rand.o: decl.h
6107sample_rand.o: endian_calc.h
6108sample_rand.o: hash.h
6109sample_rand.o: have_ban_pragma.h
6110sample_rand.o: have_const.h
6111sample_rand.o: have_memmv.h
6112sample_rand.o: have_newstr.h
6113sample_rand.o: have_stdlib.h
6114sample_rand.o: have_string.h
6115sample_rand.o: lib_util.h
6116sample_rand.o: longbits.h
6117sample_rand.o: nametype.h
6118sample_rand.o: qmath.h
6119sample_rand.o: sample_rand.c
6120sample_rand.o: sha1.h
6121sample_rand.o: str.h
6122sample_rand.o: value.h
6123sample_rand.o: zmath.h
6124sample_rand.o: zrandom.h
6125seed.o: alloc.h
6126seed.o: banned.h
6127seed.o: byteswap.h
6128seed.o: decl.h
6129seed.o: endian_calc.h
6130seed.o: have_arc4random.h
6131seed.o: have_ban_pragma.h
6132seed.o: have_const.h
6133seed.o: have_environ.h
6134seed.o: have_getpgid.h
6135seed.o: have_getprid.h
6136seed.o: have_getsid.h
6137seed.o: have_gettime.h
6138seed.o: have_memmv.h
6139seed.o: have_newstr.h
6140seed.o: have_rusage.h
6141seed.o: have_stdlib.h
6142seed.o: have_string.h
6143seed.o: have_times.h
6144seed.o: have_uid_t.h
6145seed.o: have_unistd.h
6146seed.o: have_urandom.h
6147seed.o: have_ustat.h
6148seed.o: longbits.h
6149seed.o: qmath.h
6150seed.o: seed.c
6151seed.o: zmath.h
6152sha1.o: align32.h
6153sha1.o: alloc.h
6154sha1.o: banned.h
6155sha1.o: block.h
6156sha1.o: byteswap.h
6157sha1.o: calcerr.h
6158sha1.o: cmath.h
6159sha1.o: config.h
6160sha1.o: decl.h
6161sha1.o: endian_calc.h
6162sha1.o: hash.h
6163sha1.o: have_ban_pragma.h
6164sha1.o: have_const.h
6165sha1.o: have_memmv.h
6166sha1.o: have_newstr.h
6167sha1.o: have_stdlib.h
6168sha1.o: have_string.h
6169sha1.o: longbits.h
6170sha1.o: nametype.h
6171sha1.o: qmath.h
6172sha1.o: sha1.c
6173sha1.o: sha1.h
6174sha1.o: str.h
6175sha1.o: value.h
6176sha1.o: zmath.h
6177size.o: alloc.h
6178size.o: banned.h
6179size.o: block.h
6180size.o: byteswap.h
6181size.o: calcerr.h
6182size.o: cmath.h
6183size.o: config.h
6184size.o: decl.h
6185size.o: endian_calc.h
6186size.o: hash.h
6187size.o: have_ban_pragma.h
6188size.o: have_const.h
6189size.o: have_memmv.h
6190size.o: have_newstr.h
6191size.o: have_stdlib.h
6192size.o: have_string.h
6193size.o: longbits.h
6194size.o: nametype.h
6195size.o: qmath.h
6196size.o: sha1.h
6197size.o: size.c
6198size.o: str.h
6199size.o: value.h
6200size.o: zmath.h
6201size.o: zrand.h
6202size.o: zrandom.h
6203str.o: alloc.h
6204str.o: banned.h
6205str.o: block.h
6206str.o: byteswap.h
6207str.o: calc.h
6208str.o: calcerr.h
6209str.o: cmath.h
6210str.o: config.h
6211str.o: decl.h
6212str.o: endian_calc.h
6213str.o: hash.h
6214str.o: have_ban_pragma.h
6215str.o: have_const.h
6216str.o: have_memmv.h
6217str.o: have_newstr.h
6218str.o: have_stdlib.h
6219str.o: have_string.h
6220str.o: have_strlcat.h
6221str.o: have_strlcpy.h
6222str.o: longbits.h
6223str.o: nametype.h
6224str.o: qmath.h
6225str.o: sha1.h
6226str.o: str.c
6227str.o: str.h
6228str.o: strl.h
6229str.o: value.h
6230str.o: zmath.h
6231strl.o: alloc.h
6232strl.o: banned.h
6233strl.o: decl.h
6234strl.o: have_ban_pragma.h
6235strl.o: have_const.h
6236strl.o: have_memmv.h
6237strl.o: have_newstr.h
6238strl.o: have_string.h
6239strl.o: have_strlcat.h
6240strl.o: have_strlcpy.h
6241strl.o: strl.c
6242strl.o: strl.h
6243symbol.o: alloc.h
6244symbol.o: banned.h
6245symbol.o: block.h
6246symbol.o: byteswap.h
6247symbol.o: calc.h
6248symbol.o: calcerr.h
6249symbol.o: cmath.h
6250symbol.o: config.h
6251symbol.o: decl.h
6252symbol.o: endian_calc.h
6253symbol.o: func.h
6254symbol.o: hash.h
6255symbol.o: have_ban_pragma.h
6256symbol.o: have_const.h
6257symbol.o: have_memmv.h
6258symbol.o: have_newstr.h
6259symbol.o: have_stdlib.h
6260symbol.o: have_string.h
6261symbol.o: label.h
6262symbol.o: longbits.h
6263symbol.o: nametype.h
6264symbol.o: opcodes.h
6265symbol.o: qmath.h
6266symbol.o: sha1.h
6267symbol.o: str.h
6268symbol.o: symbol.c
6269symbol.o: symbol.h
6270symbol.o: token.h
6271symbol.o: value.h
6272symbol.o: zmath.h
6273token.o: alloc.h
6274token.o: args.h
6275token.o: banned.h
6276token.o: block.h
6277token.o: byteswap.h
6278token.o: calc.h
6279token.o: calcerr.h
6280token.o: cmath.h
6281token.o: config.h
6282token.o: decl.h
6283token.o: endian_calc.h
6284token.o: hash.h
6285token.o: have_ban_pragma.h
6286token.o: have_const.h
6287token.o: have_memmv.h
6288token.o: have_newstr.h
6289token.o: have_stdlib.h
6290token.o: have_string.h
6291token.o: lib_calc.h
6292token.o: longbits.h
6293token.o: nametype.h
6294token.o: qmath.h
6295token.o: sha1.h
6296token.o: str.h
6297token.o: token.c
6298token.o: token.h
6299token.o: value.h
6300token.o: zmath.h
6301value.o: alloc.h
6302value.o: banned.h
6303value.o: block.h
6304value.o: byteswap.h
6305value.o: calc.h
6306value.o: calcerr.h
6307value.o: cmath.h
6308value.o: config.h
6309value.o: decl.h
6310value.o: endian_calc.h
6311value.o: file.h
6312value.o: func.h
6313value.o: hash.h
6314value.o: have_ban_pragma.h
6315value.o: have_const.h
6316value.o: have_fpos.h
6317value.o: have_memmv.h
6318value.o: have_newstr.h
6319value.o: have_stdlib.h
6320value.o: have_string.h
6321value.o: label.h
6322value.o: longbits.h
6323value.o: nametype.h
6324value.o: opcodes.h
6325value.o: qmath.h
6326value.o: sha1.h
6327value.o: str.h
6328value.o: symbol.h
6329value.o: value.c
6330value.o: value.h
6331value.o: zmath.h
6332value.o: zrand.h
6333value.o: zrandom.h
6334version.o: alloc.h
6335version.o: banned.h
6336version.o: block.h
6337version.o: byteswap.h
6338version.o: calc.h
6339version.o: calcerr.h
6340version.o: cmath.h
6341version.o: config.h
6342version.o: decl.h
6343version.o: endian_calc.h
6344version.o: hash.h
6345version.o: have_ban_pragma.h
6346version.o: have_const.h
6347version.o: have_memmv.h
6348version.o: have_newstr.h
6349version.o: have_stdlib.h
6350version.o: have_string.h
6351version.o: have_strlcat.h
6352version.o: have_strlcpy.h
6353version.o: have_unused.h
6354version.o: longbits.h
6355version.o: nametype.h
6356version.o: qmath.h
6357version.o: sha1.h
6358version.o: str.h
6359version.o: strl.h
6360version.o: value.h
6361version.o: version.c
6362version.o: zmath.h
6363zfunc.o: alloc.h
6364zfunc.o: banned.h
6365zfunc.o: byteswap.h
6366zfunc.o: decl.h
6367zfunc.o: endian_calc.h
6368zfunc.o: have_ban_pragma.h
6369zfunc.o: have_const.h
6370zfunc.o: have_memmv.h
6371zfunc.o: have_newstr.h
6372zfunc.o: have_stdlib.h
6373zfunc.o: have_string.h
6374zfunc.o: longbits.h
6375zfunc.o: zfunc.c
6376zfunc.o: zmath.h
6377zio.o: alloc.h
6378zio.o: args.h
6379zio.o: banned.h
6380zio.o: byteswap.h
6381zio.o: config.h
6382zio.o: decl.h
6383zio.o: endian_calc.h
6384zio.o: have_ban_pragma.h
6385zio.o: have_const.h
6386zio.o: have_memmv.h
6387zio.o: have_newstr.h
6388zio.o: have_stdlib.h
6389zio.o: have_string.h
6390zio.o: longbits.h
6391zio.o: nametype.h
6392zio.o: qmath.h
6393zio.o: zio.c
6394zio.o: zmath.h
6395zmath.o: alloc.h
6396zmath.o: banned.h
6397zmath.o: byteswap.h
6398zmath.o: decl.h
6399zmath.o: endian_calc.h
6400zmath.o: have_ban_pragma.h
6401zmath.o: have_const.h
6402zmath.o: have_memmv.h
6403zmath.o: have_newstr.h
6404zmath.o: have_stdlib.h
6405zmath.o: have_string.h
6406zmath.o: longbits.h
6407zmath.o: zmath.c
6408zmath.o: zmath.h
6409zmod.o: alloc.h
6410zmod.o: banned.h
6411zmod.o: byteswap.h
6412zmod.o: config.h
6413zmod.o: decl.h
6414zmod.o: endian_calc.h
6415zmod.o: have_ban_pragma.h
6416zmod.o: have_const.h
6417zmod.o: have_memmv.h
6418zmod.o: have_newstr.h
6419zmod.o: have_stdlib.h
6420zmod.o: have_string.h
6421zmod.o: longbits.h
6422zmod.o: nametype.h
6423zmod.o: qmath.h
6424zmod.o: zmath.h
6425zmod.o: zmod.c
6426zmul.o: alloc.h
6427zmul.o: banned.h
6428zmul.o: byteswap.h
6429zmul.o: config.h
6430zmul.o: decl.h
6431zmul.o: endian_calc.h
6432zmul.o: have_ban_pragma.h
6433zmul.o: have_const.h
6434zmul.o: have_memmv.h
6435zmul.o: have_newstr.h
6436zmul.o: have_stdlib.h
6437zmul.o: have_string.h
6438zmul.o: longbits.h
6439zmul.o: nametype.h
6440zmul.o: qmath.h
6441zmul.o: zmath.h
6442zmul.o: zmul.c
6443zprime.o: alloc.h
6444zprime.o: banned.h
6445zprime.o: block.h
6446zprime.o: byteswap.h
6447zprime.o: calcerr.h
6448zprime.o: cmath.h
6449zprime.o: config.h
6450zprime.o: decl.h
6451zprime.o: endian_calc.h
6452zprime.o: hash.h
6453zprime.o: have_ban_pragma.h
6454zprime.o: have_const.h
6455zprime.o: have_memmv.h
6456zprime.o: have_newstr.h
6457zprime.o: have_stdlib.h
6458zprime.o: have_string.h
6459zprime.o: jump.h
6460zprime.o: longbits.h
6461zprime.o: nametype.h
6462zprime.o: prime.h
6463zprime.o: qmath.h
6464zprime.o: sha1.h
6465zprime.o: str.h
6466zprime.o: value.h
6467zprime.o: zmath.h
6468zprime.o: zprime.c
6469zprime.o: zrand.h
6470zrand.o: alloc.h
6471zrand.o: banned.h
6472zrand.o: block.h
6473zrand.o: byteswap.h
6474zrand.o: calcerr.h
6475zrand.o: cmath.h
6476zrand.o: config.h
6477zrand.o: decl.h
6478zrand.o: endian_calc.h
6479zrand.o: hash.h
6480zrand.o: have_ban_pragma.h
6481zrand.o: have_const.h
6482zrand.o: have_memmv.h
6483zrand.o: have_newstr.h
6484zrand.o: have_stdlib.h
6485zrand.o: have_string.h
6486zrand.o: have_unused.h
6487zrand.o: longbits.h
6488zrand.o: nametype.h
6489zrand.o: qmath.h
6490zrand.o: sha1.h
6491zrand.o: str.h
6492zrand.o: value.h
6493zrand.o: zmath.h
6494zrand.o: zrand.c
6495zrand.o: zrand.h
6496zrandom.o: alloc.h
6497zrandom.o: banned.h
6498zrandom.o: block.h
6499zrandom.o: byteswap.h
6500zrandom.o: calcerr.h
6501zrandom.o: cmath.h
6502zrandom.o: config.h
6503zrandom.o: decl.h
6504zrandom.o: endian_calc.h
6505zrandom.o: hash.h
6506zrandom.o: have_ban_pragma.h
6507zrandom.o: have_const.h
6508zrandom.o: have_memmv.h
6509zrandom.o: have_newstr.h
6510zrandom.o: have_stdlib.h
6511zrandom.o: have_string.h
6512zrandom.o: have_unused.h
6513zrandom.o: longbits.h
6514zrandom.o: nametype.h
6515zrandom.o: qmath.h
6516zrandom.o: sha1.h
6517zrandom.o: str.h
6518zrandom.o: value.h
6519zrandom.o: zmath.h
6520zrandom.o: zrandom.c
6521zrandom.o: zrandom.h
6522