History log of /netbsd-current/bin/sh/Makefile
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.123 19-Oct-2023 mrg

convert gcc12 -O1 into -Wno-error=clobbered.

parser.c wants all the optimisation, and this is very likely a
false positive.


# 1.122 14-Oct-2023 mrg

the parser.c longjmp vs gcc12 issue affects a few ports,
make the workaround global.


# 1.121 14-Aug-2023 mrg

use -O1 on sh3, GCC 12 and parser.c.

this triggers clobbered vs. longjmp/setjmp warnings with -Os that sh3 uses.


Revision tags: netbsd-10-base
# 1.120 10-Oct-2021 rillig

sh: remove no-op 'continue' from do-while-0 loop

With Clang, the only change to the binary are the line number changes
from __LINE__, GCC generates a bit different code.

No functional change.


# 1.119 09-Oct-2021 rillig

bin: in builds with MKLINT=yes, run lint on all programs


# 1.118 09-Oct-2021 rillig

sh: ignore lint error about 'continue' in 'do while' loop

exec.c(575): error: continue in 'do ... while (0)' loop [323]
jobs.c(203): error: continue in 'do ... while (0)' loop [323]

It is certainly a rarely used feature, I saw it the first time today and
had to look up its meaning in the C standard. But after that, I don't
see why a 'continue' statement in a 'do while' loop should be an error.
Maybe a warning since up to now I thought that 'continue' would jump
back to the top of the loop, while it really jumps to the bottom of the
loop body, for all 3 kinds of loops.


# 1.117 15-Aug-2021 christos

Add -I to find filecomplete.h


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.116 26-May-2021 christos

Use the date tool


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.115 28-Oct-2018 kre

branches: 1.115.6;

Change the (commented out) setting of -DDEBUG to the form that
is most likely to be useful if someone other than me wants to
build a DEBUG shell. NFC (it is a comment in a Makefile!)


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625
# 1.114 10-Jun-2018 christos

branches: 1.114.2;
use SUBDIR.roff suggested by uwe@


Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base perseant-stdc-iso10646-base
# 1.113 30-Jun-2017 kre

branches: 1.113.4;

Implement a bunch of new shell environment variables. many mostly useful
in prompts when expanded at prompt time, but all available for general use.
Many of the new ones are not available in SMALL shells (they work as normal
if assigned, but the shell does not set or use them - and there is no magic
in a SMALL shell (usually for install media.))


# 1.112 08-Jun-2017 kre

I am an idiot... revert the previous unintended commit.


# 1.111 08-Jun-2017 kre

Improve the (new) LINENO section, markup changes (with thanks to wiz@ for
assistace) and some better wording in a few placed.


Revision tags: netbsd-8-base
# 1.110 29-May-2017 kre

branches: 1.110.2;

More DEBUG mode changes. As usual, read the source if you care.


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.122 14-Oct-2023 mrg

the parser.c longjmp vs gcc12 issue affects a few ports,
make the workaround global.


# 1.121 14-Aug-2023 mrg

use -O1 on sh3, GCC 12 and parser.c.

this triggers clobbered vs. longjmp/setjmp warnings with -Os that sh3 uses.


Revision tags: netbsd-10-base
# 1.120 10-Oct-2021 rillig

sh: remove no-op 'continue' from do-while-0 loop

With Clang, the only change to the binary are the line number changes
from __LINE__, GCC generates a bit different code.

No functional change.


# 1.119 09-Oct-2021 rillig

bin: in builds with MKLINT=yes, run lint on all programs


# 1.118 09-Oct-2021 rillig

sh: ignore lint error about 'continue' in 'do while' loop

exec.c(575): error: continue in 'do ... while (0)' loop [323]
jobs.c(203): error: continue in 'do ... while (0)' loop [323]

It is certainly a rarely used feature, I saw it the first time today and
had to look up its meaning in the C standard. But after that, I don't
see why a 'continue' statement in a 'do while' loop should be an error.
Maybe a warning since up to now I thought that 'continue' would jump
back to the top of the loop, while it really jumps to the bottom of the
loop body, for all 3 kinds of loops.


# 1.117 15-Aug-2021 christos

Add -I to find filecomplete.h


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.116 26-May-2021 christos

Use the date tool


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.115 28-Oct-2018 kre

branches: 1.115.6;

Change the (commented out) setting of -DDEBUG to the form that
is most likely to be useful if someone other than me wants to
build a DEBUG shell. NFC (it is a comment in a Makefile!)


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625
# 1.114 10-Jun-2018 christos

branches: 1.114.2;
use SUBDIR.roff suggested by uwe@


Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base perseant-stdc-iso10646-base
# 1.113 30-Jun-2017 kre

branches: 1.113.4;

Implement a bunch of new shell environment variables. many mostly useful
in prompts when expanded at prompt time, but all available for general use.
Many of the new ones are not available in SMALL shells (they work as normal
if assigned, but the shell does not set or use them - and there is no magic
in a SMALL shell (usually for install media.))


# 1.112 08-Jun-2017 kre

I am an idiot... revert the previous unintended commit.


# 1.111 08-Jun-2017 kre

Improve the (new) LINENO section, markup changes (with thanks to wiz@ for
assistace) and some better wording in a few placed.


Revision tags: netbsd-8-base
# 1.110 29-May-2017 kre

branches: 1.110.2;

More DEBUG mode changes. As usual, read the source if you care.


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.121 14-Aug-2023 mrg

use -O1 on sh3, GCC 12 and parser.c.

this triggers clobbered vs. longjmp/setjmp warnings with -Os that sh3 uses.


Revision tags: netbsd-10-base
# 1.120 10-Oct-2021 rillig

sh: remove no-op 'continue' from do-while-0 loop

With Clang, the only change to the binary are the line number changes
from __LINE__, GCC generates a bit different code.

No functional change.


# 1.119 09-Oct-2021 rillig

bin: in builds with MKLINT=yes, run lint on all programs


# 1.118 09-Oct-2021 rillig

sh: ignore lint error about 'continue' in 'do while' loop

exec.c(575): error: continue in 'do ... while (0)' loop [323]
jobs.c(203): error: continue in 'do ... while (0)' loop [323]

It is certainly a rarely used feature, I saw it the first time today and
had to look up its meaning in the C standard. But after that, I don't
see why a 'continue' statement in a 'do while' loop should be an error.
Maybe a warning since up to now I thought that 'continue' would jump
back to the top of the loop, while it really jumps to the bottom of the
loop body, for all 3 kinds of loops.


# 1.117 15-Aug-2021 christos

Add -I to find filecomplete.h


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.116 26-May-2021 christos

Use the date tool


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.115 28-Oct-2018 kre

branches: 1.115.6;

Change the (commented out) setting of -DDEBUG to the form that
is most likely to be useful if someone other than me wants to
build a DEBUG shell. NFC (it is a comment in a Makefile!)


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625
# 1.114 10-Jun-2018 christos

branches: 1.114.2;
use SUBDIR.roff suggested by uwe@


Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base perseant-stdc-iso10646-base
# 1.113 30-Jun-2017 kre

branches: 1.113.4;

Implement a bunch of new shell environment variables. many mostly useful
in prompts when expanded at prompt time, but all available for general use.
Many of the new ones are not available in SMALL shells (they work as normal
if assigned, but the shell does not set or use them - and there is no magic
in a SMALL shell (usually for install media.))


# 1.112 08-Jun-2017 kre

I am an idiot... revert the previous unintended commit.


# 1.111 08-Jun-2017 kre

Improve the (new) LINENO section, markup changes (with thanks to wiz@ for
assistace) and some better wording in a few placed.


Revision tags: netbsd-8-base
# 1.110 29-May-2017 kre

branches: 1.110.2;

More DEBUG mode changes. As usual, read the source if you care.


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.120 10-Oct-2021 rillig

sh: remove no-op 'continue' from do-while-0 loop

With Clang, the only change to the binary are the line number changes
from __LINE__, GCC generates a bit different code.

No functional change.


# 1.119 09-Oct-2021 rillig

bin: in builds with MKLINT=yes, run lint on all programs


# 1.118 09-Oct-2021 rillig

sh: ignore lint error about 'continue' in 'do while' loop

exec.c(575): error: continue in 'do ... while (0)' loop [323]
jobs.c(203): error: continue in 'do ... while (0)' loop [323]

It is certainly a rarely used feature, I saw it the first time today and
had to look up its meaning in the C standard. But after that, I don't
see why a 'continue' statement in a 'do while' loop should be an error.
Maybe a warning since up to now I thought that 'continue' would jump
back to the top of the loop, while it really jumps to the bottom of the
loop body, for all 3 kinds of loops.


# 1.117 15-Aug-2021 christos

Add -I to find filecomplete.h


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.116 26-May-2021 christos

Use the date tool


Revision tags: netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.115 28-Oct-2018 kre

branches: 1.115.6;

Change the (commented out) setting of -DDEBUG to the form that
is most likely to be useful if someone other than me wants to
build a DEBUG shell. NFC (it is a comment in a Makefile!)


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625
# 1.114 10-Jun-2018 christos

branches: 1.114.2;
use SUBDIR.roff suggested by uwe@


Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base perseant-stdc-iso10646-base
# 1.113 30-Jun-2017 kre

branches: 1.113.4;

Implement a bunch of new shell environment variables. many mostly useful
in prompts when expanded at prompt time, but all available for general use.
Many of the new ones are not available in SMALL shells (they work as normal
if assigned, but the shell does not set or use them - and there is no magic
in a SMALL shell (usually for install media.))


# 1.112 08-Jun-2017 kre

I am an idiot... revert the previous unintended commit.


# 1.111 08-Jun-2017 kre

Improve the (new) LINENO section, markup changes (with thanks to wiz@ for
assistace) and some better wording in a few placed.


Revision tags: netbsd-8-base
# 1.110 29-May-2017 kre

branches: 1.110.2;

More DEBUG mode changes. As usual, read the source if you care.


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.117 15-Aug-2021 christos

Add -I to find filecomplete.h


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1
# 1.116 26-May-2021 christos

Use the date tool


Revision tags: netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.115 28-Oct-2018 kre

branches: 1.115.6;

Change the (commented out) setting of -DDEBUG to the form that
is most likely to be useful if someone other than me wants to
build a DEBUG shell. NFC (it is a comment in a Makefile!)


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625
# 1.114 10-Jun-2018 christos

branches: 1.114.2;
use SUBDIR.roff suggested by uwe@


Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base perseant-stdc-iso10646-base
# 1.113 30-Jun-2017 kre

branches: 1.113.4;

Implement a bunch of new shell environment variables. many mostly useful
in prompts when expanded at prompt time, but all available for general use.
Many of the new ones are not available in SMALL shells (they work as normal
if assigned, but the shell does not set or use them - and there is no magic
in a SMALL shell (usually for install media.))


# 1.112 08-Jun-2017 kre

I am an idiot... revert the previous unintended commit.


# 1.111 08-Jun-2017 kre

Improve the (new) LINENO section, markup changes (with thanks to wiz@ for
assistace) and some better wording in a few placed.


Revision tags: netbsd-8-base
# 1.110 29-May-2017 kre

branches: 1.110.2;

More DEBUG mode changes. As usual, read the source if you care.


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.116 26-May-2021 christos

Use the date tool


Revision tags: netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.115 28-Oct-2018 kre

Change the (commented out) setting of -DDEBUG to the form that
is most likely to be useful if someone other than me wants to
build a DEBUG shell. NFC (it is a comment in a Makefile!)


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625
# 1.114 10-Jun-2018 christos

branches: 1.114.2;
use SUBDIR.roff suggested by uwe@


Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base perseant-stdc-iso10646-base
# 1.113 30-Jun-2017 kre

branches: 1.113.4;

Implement a bunch of new shell environment variables. many mostly useful
in prompts when expanded at prompt time, but all available for general use.
Many of the new ones are not available in SMALL shells (they work as normal
if assigned, but the shell does not set or use them - and there is no magic
in a SMALL shell (usually for install media.))


# 1.112 08-Jun-2017 kre

I am an idiot... revert the previous unintended commit.


# 1.111 08-Jun-2017 kre

Improve the (new) LINENO section, markup changes (with thanks to wiz@ for
assistace) and some better wording in a few placed.


Revision tags: netbsd-8-base
# 1.110 29-May-2017 kre

branches: 1.110.2;

More DEBUG mode changes. As usual, read the source if you care.


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
# 1.115 28-Oct-2018 kre

Change the (commented out) setting of -DDEBUG to the form that
is most likely to be useful if someone other than me wants to
build a DEBUG shell. NFC (it is a comment in a Makefile!)


Revision tags: pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625
# 1.114 10-Jun-2018 christos

use SUBDIR.roff suggested by uwe@


Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base perseant-stdc-iso10646-base
# 1.113 30-Jun-2017 kre

branches: 1.113.4;

Implement a bunch of new shell environment variables. many mostly useful
in prompts when expanded at prompt time, but all available for general use.
Many of the new ones are not available in SMALL shells (they work as normal
if assigned, but the shell does not set or use them - and there is no magic
in a SMALL shell (usually for install media.))


# 1.112 08-Jun-2017 kre

I am an idiot... revert the previous unintended commit.


# 1.111 08-Jun-2017 kre

Improve the (new) LINENO section, markup changes (with thanks to wiz@ for
assistace) and some better wording in a few placed.


Revision tags: netbsd-8-base
# 1.110 29-May-2017 kre

branches: 1.110.2;

More DEBUG mode changes. As usual, read the source if you care.


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.113 30-Jun-2017 kre

Implement a bunch of new shell environment variables. many mostly useful
in prompts when expanded at prompt time, but all available for general use.
Many of the new ones are not available in SMALL shells (they work as normal
if assigned, but the shell does not set or use them - and there is no magic
in a SMALL shell (usually for install media.))


# 1.112 08-Jun-2017 kre

I am an idiot... revert the previous unintended commit.


# 1.111 08-Jun-2017 kre

Improve the (new) LINENO section, markup changes (with thanks to wiz@ for
assistace) and some better wording in a few placed.


Revision tags: netbsd-8-base
# 1.110 29-May-2017 kre

More DEBUG mode changes. As usual, read the source if you care.


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.112 08-Jun-2017 kre

I am an idiot... revert the previous unintended commit.


# 1.111 08-Jun-2017 kre

Improve the (new) LINENO section, markup changes (with thanks to wiz@ for
assistace) and some better wording in a few placed.


Revision tags: netbsd-8-base
# 1.110 29-May-2017 kre

More DEBUG mode changes. As usual, read the source if you care.


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.110 29-May-2017 kre

More DEBUG mode changes. As usual, read the source if you care.


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.109 28-May-2017 kre

Redo mkoptions.sh .. much better this way, now fully automated
option sorting (no longer required option.list to be manually
sorted by long option name) and properly handles conditional
options. Cleaner output format as well.

This allows option.list to be reordered to group related options
together ... also added more comments to it.


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.108 28-May-2017 kre

Arrange for set -o and $- output to be sorted, rather than more
or less random (and becoming worse as more options are added.)
Since the data is known at compile time, sort at compile time,
rather than at run time.


Revision tags: prg-localcount2-base3
# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

branches: 1.104.2;


Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.107 15-May-2017 kre

Drop the lex library - hasn't been needed since the airthmetic
upgrade a while ago (this should make no difference to anything
other than a minor - very minor - build time speedup, ld is
smart enough to relaise that nothing from the lex library was
needed, and the executable contains no reference to it, even
befor ethis change.)


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.106 14-May-2017 kre

Fix a minor omission in last...


# 1.105 14-May-2017 kre

Make ${NETBSD_SHELL} value include (a human recognisable form of)
MKREPRO_TIMESTAMP (as an additional word in the value, with a "BUILD:" prefix)
if it is set during the build. (Trailing 00 pairs in the time are removed).

While here, throw in some extra words that list the compilation
options used which alter sh behaviour (mostly by removing stuff.)
Usually that will only be noticed in a SMALL shell compiled for
install media, or similar - none of the others (not that there
are many) are ever changed from the default in a normal build
(default settings are just omitted.) This also allows scripts
to tell if they are running in a DEBUG shell, which can sometimes
make debugging easier.


Revision tags: prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


Revision tags: prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1
# 1.104 20-Mar-2017 kre

Finish support for all required $(( )) (shell arithmetic) operators,
closing PR bin/50958

That meant adding the assignment operators ('=', and all of the +=, *= ...)
Currently, ++, --, and ',' are not implemented (none of those are required
by posix) but support for them (most likely ',' first) might be added later.

To do this, I removed the yacc/lex arithmetic parser completely, and
replaced it with a hand written recursive descent parser, that I obtained
from FreeBSD, who earlier had obtained it from dash (Herbert Xu).

While doing the import, I cleaned up the sources (changed some file names
to avoid requiring a clean build, or signifigant surgery to the obj
directories if "build.sh -u" was to be used - "build.sh -u" should work
fine as it is now) removed some dashisms, applied some KNF, ...


Revision tags: pgoyette-localcount-20170320
# 1.103 16-Mar-2017 kre

Have "make clean" remove sh.html1 and adapt it to clean trace files
the way they have been generated the past 20 years or so...


Revision tags: bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

branches: 1.102.2; 1.102.4;
Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 22-Aug-2010 perry

add bsd.subdir.mk


# 1.92 22-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 14-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 19-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 19-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 19-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 15-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 12-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 07-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 09-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 08-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 19-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 09-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 16-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 22-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 09-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 23-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


Revision tags: pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.102 27-Feb-2016 christos

Improve debugging, from kre (I hooked it to the build).


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.99 01-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 12-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


Revision tags: cherry-xenmp-base
# 1.95 25-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


Revision tags: bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231
# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 21-Aug-2010 perry

add bsd.subdir.mk


# 1.92 21-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 13-Dec-2009 christos

use .ORDER for rules that create multiple files.


Revision tags: matt-premerge-20091211
# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.85 20-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base
# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


Revision tags: matt-mips64-base2
# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


Revision tags: mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
# 1.81 25-Mar-2007 apb

WARNS=4


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.77 17-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 18-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 18-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 18-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 13-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 10-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


Revision tags: fvdl_fs64_base
# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 31-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 14-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


Revision tags: ELRICshvfork-base
# 1.56 11-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 06-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
# 1.49 08-Jul-1999 christos

compile with WARNS = 2


Revision tags: netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 07-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 18-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 12-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 08-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 29-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


Revision tags: netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 15-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.23 17-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 21-Oct-1995 christos

Parallel make fixes.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 04-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 11-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 12-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 08-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


Revision tags: netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


Revision tags: netbsd-0-8 netbsd-alpha-1
# 1.3 22-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.101 10-May-2015 joerg

Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.


# 1.100 05-Jul-2014 dholland

branches: 1.100.2;
remove .if make(install)


# 1.99 02-Dec-2012 apb

branches: 1.99.8;
Adjust everything under src (but outside src/tools) to use
the TOOLDIR version of libnbcompat, associated include files,
and associated defs.mk file, instead of the version from the
.OBJDIR of src/tools/compat. This should fix PR 47188.


# 1.98 23-Aug-2011 christos

branches: 1.98.2; 1.98.8;
document another non-literal format string


# 1.97 14-Aug-2011 christos

Document non-literal formats


# 1.96 11-Jul-2011 joerg

Move the savehandler assignment before setjmp() to avoid triggering
warnings about use before initialization with clang.


# 1.95 26-May-2011 joerg

Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.


# 1.94 30-Aug-2010 christos

increase commented out debugging.


# 1.93 21-Aug-2010 perry

add bsd.subdir.mk


# 1.92 21-Aug-2010 perry

build the tutoral


# 1.91 06-Feb-2010 he

When using -lcurses, you also need -lterminfo.
This fixes the build for sun2, and also builds with LDSTATIC=-static,
since archive libraries don't record inter-library dependencies.


# 1.90 03-Feb-2010 roy

Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@


# 1.89 13-Dec-2009 christos

use .ORDER for rules that create multiple files.


# 1.88 11-Dec-2009 uebayasi

Rewrite file generation rules using ${GENCMD}. No functional changes intended.


# 1.87 07-Dec-2009 uebayasi

Define dependencies of arith.[ch] on arith.y.


# 1.86 29-Oct-2009 christos

use flex options instead of #defines


# 1.85 19-Apr-2009 drochner

define YY_NO_INPUT where appropriate, from Kurt J. Lidl per PR misc/41160


# 1.84 14-Feb-2009 lukem

Default to WARNS=4 (except for rcp & ksh)


# 1.83 25-Oct-2008 apb

branches: 1.83.4;
Pass SED=${TOOL_SED:Q} in the environment to scripts run during the build.


# 1.82 19-Oct-2008 apb

Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.


# 1.81 25-Mar-2007 apb

WARNS=4


# 1.80 26-Jun-2005 christos

sprinkle a little const, and now everything compiles with WARNS=3


# 1.79 30-Oct-2004 christos

Pass WARNS=3


# 1.78 06-Jun-2004 christos

don't include the printf builtin if we are SMALL; saves 10K.


# 1.77 16-Jan-2004 dsl

Put a syntax.c under CVS instead of building if with the mksyntax program.
Kill mksyntax.c - no longer possible to get the 'wrong sort of chars'.
/bin/sh now has no helper binaries.
syntax.c uses C99 initialisers, run time initialisation could be used
for systems where the compiler doesn't support them.
I've used some #defines to help make this possible - but writing the code
starts making it rather messy.


# 1.76 17-Jan-2004 dsl

Put syntax.h under CVS instead of having it generated by mksyntax.
Use CHAR_MIN (from limits.h) to determine whether target char are signed
or unsigned - the syntax tables will not be indexed properly.
Rip out all the stuff from mksyntax.c that wrote syntax.h.
syntax.c can stiff be generated incorrectly...


# 1.75 17-Jan-2004 dsl

Replace mkinit.c with mkinit.sh
Build mksyntax directly from mksyntax.c so that the -DTARGET_CHAR=xxx
is applied when it is build.
OTOH mksyntax is broken as it tries to determine properties of the
target system by running code on the build system.


# 1.74 16-Jan-2004 dsl

Replace the C program mknodes.c with a shell script mknodes.sh
(mkinit and mksyntax may also die soon...)


# 1.73 16-Nov-2003 lukem

Improve how various "simple" host tools are built and invoked.


# 1.72 21-Oct-2003 lukem

Rework how MAKEVERBOSE operates:

* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.

* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.


# 1.71 18-Oct-2003 lukem

rework to use the newer _MKMSGCREATE (et al) macros


# 1.70 18-Oct-2003 lukem

improve MAKEVERBOSE message for HOST_LINKed tools


# 1.69 18-Oct-2003 lukem

Support MAKEVERBOSE (XXX: mksyntax is noisy when MAKEVERBOSE=0).
Use DPSRCS appropriately.


# 1.68 18-Oct-2003 lukem

Link the host tools against tools/compat -lnbcompat since someone decided to
use strlcpy() and snprintf() in the host tools...

Should fix part of [toolchain/22504], and build problems on other
platforms that don't have strlcpy() or snprintf()...


# 1.67 14-Sep-2003 jmmv

Add 'trace' to CLEANFILES, generated when debug is enabled.


# 1.66 15-May-2003 dsl

Fix problems with parallel makes.


# 1.65 08-May-2003 christos

Use ${HOST_SH}


# 1.64 09-Mar-2003 lukem

If building as a CRUNCHEDPROG, use "lex -L" and "yacc -l" to suppress #line
generation. This may solve [bin/20637].


# 1.63 22-Jan-2003 dsl

Support command -p, -v and -V as posix
Stop temporary PATH assigments messing up hash table
Fix sh -c -e "echo $0 $*" -a x (as posix)
(agreed by christos)


# 1.62 09-Jan-2003 christos

allow this to be compiled with unsigned-chars.


# 1.61 24-Nov-2002 christos

Fixes from David Laight:
- ansification
- format of output of jobs command (etc)
- job identiers %+, %- etc
- $? and $(...)
- correct quoting of output of set, export -p and readonly -p
- differentiation between nornal and 'posix special' builtins
- correct behaviour (posix) for errors on builtins and special builtins
- builtin printf and kill
- set -o debug (if compiled with DEBUG)
- cd src obj (as ksh - too useful to do without)
- unset -e name, remove non-readonly variable from export list.
(so I could unset -e PS1 before running the test shell...)


# 1.60 30-Oct-2002 wrstuden

Use signed char to replace int8_t, not just char. Should fix macppc
cross-build problems introduced in rev 1.59.

Pointed out by Valeriy E. Ushakov uwe at ptc dot spbu dot ru on
tech-toolchain.


# 1.59 14-Sep-2002 thorpej

Use "unsigned char" and "char" instead of "u_int8_t" and "int8_t"
for TARGET_CHAR when building mksyntax. This isn't perfect, but
it lets the host tool work on non-BSD systems without completely
redoing how sh is built.


# 1.58 19-Aug-2002 lukem

Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).


# 1.57 15-May-2002 bjh21

branches: 1.57.2;
The printf builtin has been "temporarily" disabled for eight years. Remove
its directory from .PATH to avoid confusion.


# 1.56 11-Feb-2002 ross

back this directory up a day, systems won't even boot (rc.subr splodes)

suggested back-to-the-drawing-board test: $ echo "${PWD:-notlikely}"


# 1.55 11-Feb-2002 christos

Add a commented out -DDEBUG in CPPFLAGS.


# 1.54 06-Feb-2002 lukem

.ifdef SMALLPROG, -DSMALL


# 1.53 03-Nov-2001 lukem

change from WARNS?=1 to WARNS?=2 for bin/


# 1.52 18-Apr-2001 bjh21

Use ${MACHINE_CPU} == "arm" to test for ARMishness.


# 1.51 29-Dec-2000 bjh21

arm26 has unsigned chars too.


# 1.50 09-Apr-2000 christos

PR/9847: Geoff C. Wing: Make test(1) a builtin.


# 1.49 08-Jul-1999 christos

compile with WARNS = 2


# 1.48 05-Feb-1999 tron

branches: 1.48.2;
Remove "arith.h" while cleaning.


# 1.47 05-Feb-1999 christos

PR/5577: Craig M. Chase: sh does not build with PARALLEL set.
- Added YHEADER in Makefile, removed arith.h and adjusted the sources.


# 1.46 07-Oct-1998 ross

The recent cross-compile changes broke the build of x_sh. Properly use
${.IMPSRC} instead of the broken ${.CURDIR}/thing.c.


# 1.45 12-Sep-1998 wrstuden

We don't generate .o's anymore for helper programs, so don't CLEANFILES them.


# 1.44 12-Sep-1998 wrstuden

Patch to make sh cross-compile right. mksyntax reports unsigned char for
powerpc, and signed for m68k & i386.


# 1.43 18-Apr-1998 cgd

move OBJS depenency on built headers to after include of bsd.prog.mk, so
that things are built in the right order on 'make cleandir && make' (i.e.
so that the headers are properly built).


# 1.42 13-Apr-1998 lukem

* remove CFLAGS+=-w for powerpc (added in 1.26):
- it was in the wrong place
- makefiles shouldn't override CFLAGS; only CPPFLAGS and COPTS
- christos fixed unsigned char stuff in 1.33 which should
remove the need for -w anyway
* move .include <bsd.prog.mk> to EOF


# 1.41 08-Apr-1998 tv

.y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.


# 1.40 30-Mar-1998 veego

Another try to make this work again. Lets hope that the we don't need a 4th
fix for it.


# 1.39 30-Mar-1998 mrg

make this work again when . is not in $PATH


# 1.38 29-Mar-1998 christos

Pr/5221: Jason Thorpe: Simplify sh Makefile, so that builts from other
directories work.


# 1.37 21-Jan-1998 christos

BSD4_4 is a standard symbol in <sys/param.h>; make sure that files
that need this defined, include <sys/param.h> and don't define it in
the Makefile. Add a comment to that effect.


# 1.36 20-Jan-1998 pk

Define BSD4_4: quad_t's in struct rlimit;


# 1.35 10-Oct-1997 christos

branches: 1.35.2;
CFLAGS->CPPFLAGS


# 1.34 20-Jul-1997 christos

Remove WARNS=1 from all the subdirectory Makefiles, and add it to Makefile.inc
now that all /bin has been cleaned.


# 1.33 04-Jul-1997 christos

Make the syntax tables work on machines where characters are unsigned.


# 1.32 04-Jul-1997 christos

Don't roll own rules to build helper programs.
Add WARNS


# 1.31 15-Jun-1997 lukem

add auto-generated token.h to dependancy for ${OBJS}.
not everyone runs "make depend" ...


# 1.30 15-May-1997 veego

Add mkinit.o mknodes.o mksyntax.o to CLEANFILES


# 1.29 09-May-1997 mycroft

Eliminate bogus redefinitions of standard targets.


# 1.28 08-May-1997 gwr

Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.


# 1.27 06-May-1997 gwr

Use .PATH.c: ...


# 1.26 17-Apr-1997 thorpej

- XXX Inhibit warnings on PowerPC for now - there are lots of
"char is unsigned" problems here.
- Add rules for mkinit, mknodes, and mksyntax that use the HOST_*
facilities, for cross-compiling.


# 1.25 22-Oct-1996 cgd

add builtins.h to the list of (built) headers depended on by ${OBJS}, so
make from 'cleandir' works.


# 1.24 16-Oct-1996 christos

PR/2808: Depend and clean fixes from FreeBSD


# 1.23 18-Feb-1996 mycroft

branches: 1.23.4;
Fix problems with the way init.o is built:
* Prevent gratuitous rebuilds when nothing has changed.
* Make sure it's rebuilt if a .h file is updated.
From Mike Long, PR 1454.


# 1.22 21-Oct-1995 christos

Parallel make fixes.


# 1.21 10-Jun-1995 mycroft

Add a DPADD.


# 1.20 11-May-1995 christos

Merge in my changes from vangogh, and fix the x=`false`; echo $? == 0
bug.


# 1.19 21-Mar-1995 cgd

convert to new RCS id conventions.


# 1.18 03-Nov-1994 jtc

ulimit builtin (PR #388)

This public domain code, originally by Doug Gwyn, Doug Kingston, Eric
Gisin, and Michael Rendell was ripped from pdksh 5.0.8 and hacked for
use with ash.


# 1.17 24-Jun-1994 jtc

Renamed builtins to builtins.def to eliminate make's (incorrect) circular
dependancy between the builtins data file and builtins.c.

The bug only occured when there was no obj directory, and is a result of
NetBSD's better (compared to 4.4lite's) default make rules.

Fixes bug #301.


# 1.16 10-Jun-1994 mycroft

Add RCS ids.


# 1.15 02-Jun-1994 pk

Exclude `mkinit' from argument list to `mkinit'; this especially causes
trouble when compiling with `-g'.


# 1.14 14-May-1994 cgd

add back in support for building w/o obj dir. also, add NO_HISTORY
define, which (if you invoke mkbuiltins properly) gets you a sh w/o
history of command line editing (for floppy sh).


# 1.13 12-May-1994 jtc

Added DPADD.


# 1.12 11-May-1994 jtc

Use libc's sys_siglist[] instead of building and using our own array of
signal names. (from charles)


# 1.11 11-May-1994 jtc

temporarily disable printf builtin


# 1.10 11-May-1994 jtc

sync with 4.4lite


# 1.9 28-Dec-1993 davidb

Changed to use make's new .OBJDIR


# 1.8 14-Nov-1993 cgd

from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
Some reordering and modifications in the Makefiles for sh, dump,
restore to get dependicies right. The README in /usr/share/mk
states that it's a Bad Thing(tm) to add something after
.include <bsd.prog.mk>, but this seems the only way to get the
dependencies right.


# 1.7 08-Aug-1993 mycroft

Tweak for cross-compiling.


# 1.6 06-Aug-1993 mycroft

Use sys_signame[].


# 1.5 02-Aug-1993 mycroft

Add RCS identifiers, remove some completely useless RCS logs and patchkit
headers, and a few other insignificant changes.


# 1.4 04-May-1993 mycroft

Make sure init.c is touched so it doesn't get rebuilt if we
make again. (Okay, so I did reproduce it.)


# 1.3 22-Mar-1993 cgd

changed "Id" to "Header" for rcsids


# 1.2 22-Mar-1993 cgd

added rcs ids to all files


# 1.1 21-Mar-1993 cgd

branches: 1.1.1;
Initial revision


# 1.1.1.2 11-May-1994 jtc

44lite code


# 1.1.1.1 21-Mar-1993 cgd

initial import of 386bsd-0.1 sources


# 1.23.4.1 25-Jan-1997 rat

Update /bin/sh from trunk per request of Christos Zoulas. Fixes
many bugs.


# 1.35.2.1 08-May-1998 mycroft

Sync with trunk, per request of christos.


# 1.48.2.1 03-Jun-2000 he

Pull up revision 1.50 (requested by he):
Enable test as a shell builtin. Fixes PR#9847.


# 1.57.2.2 06-Dec-2002 he

Pull up revision 1.60 (requested by thorpej in ticket #1027):
Use ``signed char'' instead of ``char'' to replace ``int8_t''.
Should fix cross-building problem introudced by the pull-up
in ticket #874.


# 1.57.2.1 01-Dec-2002 he

Pull up revision 1.59 (requested by thorpej in ticket #819):
Use ``unsigned char'' and ``char'' instead of ``u_int8_t''
and ``int8_t'' for TARGET_CHAR when building mksyntax.
This lets the host tool work on non-BSD systems without
causing too many changes to how sh is built.


# 1.83.4.1 13-May-2009 jym

Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html


# 1.98.8.2 19-Aug-2014 tls

Rebase to HEAD as of a few days ago.


# 1.98.8.1 24-Feb-2013 tls

resync with head


# 1.98.2.1 15-Jan-2013 yamt

sync with (a bit old) head


# 1.99.8.1 10-Aug-2014 tls

Rebase.


# 1.100.2.1 04-Jun-2015 msaitoh

Pull up following revision(s) (requested by martin in ticket #821):
bin/sh/builtins.def: revision 1.23
bin/sh/Makefile: revision 1.101
Include printf by default even for SMALL builds. It is used e.g. by
dhcpcd and as such required by most ramdisk images. Allow turning it off
again by TINYPROG.