Add endianness support to cap_mkdb(1), useful for cross builds.
This commit is contained in:
parent
9c75eea841
commit
3305bcf4bb
@ -760,6 +760,10 @@ _groff= gnu/usr.bin/groff/tmac
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.if ${BOOTSTRAPPING} < 600015
|
||||
_cap_mkdb= usr.bin/cap_mkdb
|
||||
.endif
|
||||
|
||||
.if ${BOOTSTRAPPING} < 502102
|
||||
_lex= usr.bin/lex
|
||||
.endif
|
||||
@ -798,6 +802,7 @@ bootstrap-tools:
|
||||
${_gperf} \
|
||||
${_groff} \
|
||||
gnu/usr.bin/texinfo \
|
||||
${_cap_mkdb} \
|
||||
usr.bin/colldef \
|
||||
${_lex} \
|
||||
usr.bin/lorder \
|
||||
|
@ -2,8 +2,8 @@
|
||||
# @(#)Makefile 8.1 (Berkeley) 6/8/93
|
||||
|
||||
FILES= bsd.README
|
||||
FILES+= bsd.compat.mk bsd.cpu.mk bsd.dep.mk bsd.doc.mk bsd.files.mk
|
||||
FILES+= bsd.incs.mk bsd.info.mk bsd.init.mk
|
||||
FILES+= bsd.compat.mk bsd.cpu.mk bsd.dep.mk bsd.doc.mk bsd.endian.mk
|
||||
FILES+= bsd.files.mk bsd.incs.mk bsd.info.mk bsd.init.mk
|
||||
FILES+= bsd.kmod.mk
|
||||
FILES+= bsd.lib.mk bsd.libnames.mk bsd.links.mk bsd.man.mk bsd.nls.mk
|
||||
FILES+= bsd.obj.mk bsd.own.mk
|
||||
|
11
share/mk/bsd.endian.mk
Normal file
11
share/mk/bsd.endian.mk
Normal file
@ -0,0 +1,11 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.if ${MACHINE_ARCH} == "alpha" || \
|
||||
${MACHINE_ARCH} == "amd64" || \
|
||||
${MACHINE_ARCH} == "i386" || \
|
||||
${MACHINE_ARCH} == "ia64"
|
||||
TARGET_ENDIANNESS= 1234
|
||||
.elif ${MACHINE_ARCH} == "powerpc" || \
|
||||
${MACHINE_ARCH} == "sparc64"
|
||||
TARGET_ENDIANNESS= 4321
|
||||
.endif
|
@ -14,8 +14,17 @@ CLEANFILES+= termcap termcap.db
|
||||
termcap: reorder termcap.src
|
||||
TERM=dumb TERMCAP=dumb: ex - ${.CURDIR}/termcap.src < ${.CURDIR}/reorder
|
||||
|
||||
.include <bsd.endian.mk>
|
||||
.if ${TARGET_ENDIANNESS} == "1234"
|
||||
CAP_MKDB_ENDIAN= -l
|
||||
.elif ${TARGET_ENDIANNESS} == "4321"
|
||||
CAP_MKDB_ENDIAN= -b
|
||||
.else
|
||||
CAP_MKDB_ENDIAN=
|
||||
.endif
|
||||
|
||||
termcap.db: termcap
|
||||
cap_mkdb termcap
|
||||
cap_mkdb ${CAP_MKDB_ENDIAN} termcap
|
||||
|
||||
etc-termcap:
|
||||
ln -fs ${BINDIR}/misc/termcap ${DESTDIR}/etc/termcap
|
||||
|
@ -32,7 +32,7 @@
|
||||
.\" @(#)cap_mkdb.1 8.1 (Berkeley) 6/6/93
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd June 6, 1993
|
||||
.Dd February 22, 2005
|
||||
.Dt CAP_MKDB 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -40,10 +40,10 @@
|
||||
.Nd create capability database
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl b | l
|
||||
.Op Fl v
|
||||
.Op Fl f Ar outfile
|
||||
.Ar file
|
||||
.Op Ar
|
||||
.Ar
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
@ -65,11 +65,22 @@ record is stored into the database.
|
||||
.Pp
|
||||
The following options are available:
|
||||
.Bl -tag -width indent
|
||||
.It Fl b
|
||||
Use big-endian byte order for database metadata.
|
||||
.It Fl f Ar outfile
|
||||
Specify a different database basename.
|
||||
.It Fl l
|
||||
Use little-endian byte order for database metadata.
|
||||
.It Fl v
|
||||
Print out the number of capability records in the database.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Fl b
|
||||
and
|
||||
.Fl l
|
||||
flags are mutually exclusive.
|
||||
The default byte ordering is the current host order.
|
||||
.Sh FORMAT
|
||||
Each record is stored in the database using two different types of keys.
|
||||
.Pp
|
||||
|
@ -84,11 +84,18 @@ HASHINFO openinfo = {
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int c;
|
||||
int byteorder, c;
|
||||
|
||||
capname = NULL;
|
||||
while ((c = getopt(argc, argv, "f:v")) != -1) {
|
||||
byteorder = 0;
|
||||
while ((c = getopt(argc, argv, "bf:lv")) != -1) {
|
||||
switch(c) {
|
||||
case 'b':
|
||||
case 'l':
|
||||
if (byteorder != 0)
|
||||
usage();
|
||||
byteorder = c == 'b' ? 4321 : 1234;
|
||||
break;
|
||||
case 'f':
|
||||
capname = optarg;
|
||||
break;
|
||||
@ -106,6 +113,9 @@ main(int argc, char *argv[])
|
||||
if (*argv == NULL)
|
||||
usage();
|
||||
|
||||
/* Set byte order. */
|
||||
openinfo.lorder = byteorder;
|
||||
|
||||
/*
|
||||
* The database file is the first argument if no name is specified.
|
||||
* Make arrangements to unlink it if exit badly.
|
||||
@ -257,6 +267,6 @@ void
|
||||
usage(void)
|
||||
{
|
||||
(void)fprintf(stderr,
|
||||
"usage: cap_mkdb [-v] [-f outfile] file [file ...]\n");
|
||||
"usage: cap_mkdb [-b | -l] [-v] [-f outfile] file ...\n");
|
||||
exit(1);
|
||||
}
|
||||
|
@ -16,7 +16,16 @@ SCRIPTSDIR=/usr/bin
|
||||
|
||||
CLEANFILES= vgrindefs.src.db
|
||||
|
||||
.include <bsd.endian.mk>
|
||||
.if ${TARGET_ENDIANNESS} == "1234"
|
||||
CAP_MKDB_ENDIAN= -l
|
||||
.elif ${TARGET_ENDIANNESS} == "4321"
|
||||
CAP_MKDB_ENDIAN= -b
|
||||
.else
|
||||
CAP_MKDB_ENDIAN=
|
||||
.endif
|
||||
|
||||
vgrindefs.src.db: vgrindefs.src
|
||||
cap_mkdb -f vgrindefs.src ${.ALLSRC}
|
||||
cap_mkdb ${CAP_MKDB_ENDIAN} -f vgrindefs.src ${.ALLSRC}
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
Loading…
Reference in New Issue
Block a user