svn commit: r246343 - in projects/uefi: . bin/sh contrib/binutils/include/elf contrib/bmake contrib/bmake/mk contrib/bmake/unit-tests contrib/gcc/config/arm contrib/gdb/gdb contrib/ipfilter/ipsend ...
Benno Rice
benno at FreeBSD.org
Tue Feb 5 02:33:02 UTC 2013
Author: benno
Date: Tue Feb 5 02:32:58 2013
New Revision: 246343
URL: http://svnweb.freebsd.org/changeset/base/246343
Log:
MFC
Added:
projects/uefi/contrib/bmake/Makefile
- copied unchanged from r246342, head/contrib/bmake/Makefile
projects/uefi/contrib/bmake/Makefile.config.in
- copied unchanged from r246342, head/contrib/bmake/Makefile.config.in
projects/uefi/contrib/bmake/makefile.in
- copied unchanged from r246342, head/contrib/bmake/makefile.in
projects/uefi/contrib/bmake/mk/
- copied from r246342, head/contrib/bmake/mk/
projects/uefi/lib/libpmc/pmc.ivybridgexeon.3
- copied unchanged from r246342, head/lib/libpmc/pmc.ivybridgexeon.3
projects/uefi/sys/arm/allwinner/a10_gpio.c
- copied unchanged from r246342, head/sys/arm/allwinner/a10_gpio.c
projects/uefi/sys/boot/usb/
- copied from r246342, head/sys/boot/usb/
projects/uefi/tools/build/options/WITHOUT_CLANG_FULL
- copied unchanged from r246342, head/tools/build/options/WITHOUT_CLANG_FULL
projects/uefi/tools/build/options/WITHOUT_LIBCPLUSPLUS
- copied unchanged from r246342, head/tools/build/options/WITHOUT_LIBCPLUSPLUS
projects/uefi/tools/build/options/WITH_CLANG_FULL
- copied unchanged from r246342, head/tools/build/options/WITH_CLANG_FULL
projects/uefi/tools/build/options/WITH_GPL_DTC
- copied unchanged from r246342, head/tools/build/options/WITH_GPL_DTC
projects/uefi/usr.bin/bmake/Makefile.config
- copied unchanged from r246342, head/usr.bin/bmake/Makefile.config
Deleted:
projects/uefi/contrib/bmake/Makefile.in
projects/uefi/sys/dev/blackhole/
projects/uefi/sys/modules/blackhole/
Modified:
projects/uefi/Makefile.inc1
projects/uefi/bin/sh/eval.c
projects/uefi/bin/sh/expand.c
projects/uefi/bin/sh/expand.h
projects/uefi/bin/sh/jobs.c
projects/uefi/bin/sh/miscbltin.c
projects/uefi/bin/sh/mksyntax.c
projects/uefi/bin/sh/nodetypes
projects/uefi/bin/sh/redir.c
projects/uefi/contrib/binutils/include/elf/common.h
projects/uefi/contrib/bmake/ChangeLog
projects/uefi/contrib/bmake/FILES
projects/uefi/contrib/bmake/bmake.1
projects/uefi/contrib/bmake/bmake.cat1
projects/uefi/contrib/bmake/boot-strap
projects/uefi/contrib/bmake/bsd.after-import.mk
projects/uefi/contrib/bmake/compat.c
projects/uefi/contrib/bmake/configure
projects/uefi/contrib/bmake/configure.in
projects/uefi/contrib/bmake/job.c
projects/uefi/contrib/bmake/main.c
projects/uefi/contrib/bmake/make-bootstrap.sh.in
projects/uefi/contrib/bmake/make.1
projects/uefi/contrib/bmake/meta.c
projects/uefi/contrib/bmake/realpath.c
projects/uefi/contrib/bmake/unit-tests/Makefile.in
projects/uefi/contrib/bmake/var.c
projects/uefi/contrib/gcc/config/arm/freebsd.h
projects/uefi/contrib/gcc/config/arm/unwind-arm.h
projects/uefi/contrib/gdb/gdb/osabi.c
projects/uefi/contrib/ipfilter/ipsend/44arp.c
projects/uefi/contrib/libarchive/libarchive/archive_getdate.c
projects/uefi/contrib/libarchive/libarchive/test/test_archive_getdate.c
projects/uefi/contrib/libstdc++/libsupc++/unwind-cxx.h
projects/uefi/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td
projects/uefi/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
projects/uefi/etc/rc.d/ip6addrctl
projects/uefi/lib/Makefile
projects/uefi/lib/clang/Makefile
projects/uefi/lib/clang/clang.build.mk
projects/uefi/lib/clang/libclanganalysis/Makefile
projects/uefi/lib/clang/libclangarcmigrate/Makefile
projects/uefi/lib/clang/libclangast/Makefile
projects/uefi/lib/clang/libclangbasic/Makefile
projects/uefi/lib/clang/libclangcodegen/Makefile
projects/uefi/lib/clang/libclangdriver/Makefile
projects/uefi/lib/clang/libclangedit/Makefile
projects/uefi/lib/clang/libclangfrontend/Makefile
projects/uefi/lib/clang/libclangfrontendtool/Makefile
projects/uefi/lib/clang/libclanglex/Makefile
projects/uefi/lib/clang/libclangparse/Makefile
projects/uefi/lib/clang/libclangrewritecore/Makefile
projects/uefi/lib/clang/libclangrewritefrontend/Makefile
projects/uefi/lib/clang/libclangsema/Makefile
projects/uefi/lib/clang/libclangserialization/Makefile
projects/uefi/lib/clang/libclangstaticanalyzercheckers/Makefile
projects/uefi/lib/clang/libclangstaticanalyzercore/Makefile
projects/uefi/lib/clang/libclangstaticanalyzerfrontend/Makefile
projects/uefi/lib/clang/libllvmarchive/Makefile
projects/uefi/lib/clang/libllvmarmasmparser/Makefile
projects/uefi/lib/clang/libllvmarmcodegen/Makefile
projects/uefi/lib/clang/libllvmarmdesc/Makefile
projects/uefi/lib/clang/libllvmarmdisassembler/Makefile
projects/uefi/lib/clang/libllvmarminfo/Makefile
projects/uefi/lib/clang/libllvmarminstprinter/Makefile
projects/uefi/lib/clang/libllvmasmparser/Makefile
projects/uefi/lib/clang/libllvmasmprinter/Makefile
projects/uefi/lib/clang/libllvmbitreader/Makefile
projects/uefi/lib/clang/libllvmbitwriter/Makefile
projects/uefi/lib/clang/libllvmcodegen/Makefile
projects/uefi/lib/clang/libllvmcore/Makefile
projects/uefi/lib/clang/libllvmdebuginfo/Makefile
projects/uefi/lib/clang/libllvmexecutionengine/Makefile
projects/uefi/lib/clang/libllvminstcombine/Makefile
projects/uefi/lib/clang/libllvminstrumentation/Makefile
projects/uefi/lib/clang/libllvminterpreter/Makefile
projects/uefi/lib/clang/libllvmjit/Makefile
projects/uefi/lib/clang/libllvmlinker/Makefile
projects/uefi/lib/clang/libllvmmcdisassembler/Makefile
projects/uefi/lib/clang/libllvmmcparser/Makefile
projects/uefi/lib/clang/libllvmmipsasmparser/Makefile
projects/uefi/lib/clang/libllvmmipscodegen/Makefile
projects/uefi/lib/clang/libllvmmipsdesc/Makefile
projects/uefi/lib/clang/libllvmmipsdisassembler/Makefile
projects/uefi/lib/clang/libllvmmipsinfo/Makefile
projects/uefi/lib/clang/libllvmmipsinstprinter/Makefile
projects/uefi/lib/clang/libllvmobject/Makefile
projects/uefi/lib/clang/libllvmpowerpccodegen/Makefile
projects/uefi/lib/clang/libllvmpowerpcdesc/Makefile
projects/uefi/lib/clang/libllvmpowerpcinfo/Makefile
projects/uefi/lib/clang/libllvmpowerpcinstprinter/Makefile
projects/uefi/lib/clang/libllvmruntimedyld/Makefile
projects/uefi/lib/clang/libllvmselectiondag/Makefile
projects/uefi/lib/clang/libllvmtablegen/Makefile
projects/uefi/lib/clang/libllvmtarget/Makefile
projects/uefi/lib/clang/libllvmvectorize/Makefile
projects/uefi/lib/clang/libllvmx86asmparser/Makefile
projects/uefi/lib/clang/libllvmx86codegen/Makefile
projects/uefi/lib/clang/libllvmx86desc/Makefile
projects/uefi/lib/clang/libllvmx86info/Makefile
projects/uefi/lib/clang/libllvmx86instprinter/Makefile
projects/uefi/lib/clang/libllvmx86utils/Makefile
projects/uefi/lib/libc/stdio/fmemopen.c
projects/uefi/lib/libc/stdio/fopen.3
projects/uefi/lib/libcxxrt/Version.map
projects/uefi/lib/libpmc/Makefile
projects/uefi/lib/libpmc/libpmc.c
projects/uefi/lib/libpmc/pmc.ivybridge.3
projects/uefi/lib/libpmc/pmc.sandybridge.3
projects/uefi/lib/libpmc/pmc.sandybridgexeon.3
projects/uefi/libexec/bootpd/rtmsg.c
projects/uefi/libexec/tftpd/tftp-io.c
projects/uefi/libexec/tftpd/tftp-options.c
projects/uefi/libexec/tftpd/tftp-utils.h
projects/uefi/libexec/tftpd/tftpd.c
projects/uefi/release/Makefile
projects/uefi/release/amd64/mkisoimages.sh
projects/uefi/release/generate-release.sh
projects/uefi/release/i386/mkisoimages.sh
projects/uefi/release/ia64/mkisoimages.sh
projects/uefi/release/pc98/mkisoimages.sh
projects/uefi/release/powerpc/mkisoimages.sh
projects/uefi/release/sparc64/mkisoimages.sh
projects/uefi/sbin/devd/devd.cc
projects/uefi/sbin/devd/devd.hh
projects/uefi/sbin/recoverdisk/recoverdisk.c
projects/uefi/sbin/route/route.c
projects/uefi/share/man/man5/src.conf.5
projects/uefi/share/man/man7/release.7
projects/uefi/share/mk/bsd.own.mk
projects/uefi/sys/amd64/amd64/mp_machdep.c
projects/uefi/sys/amd64/conf/GENERIC
projects/uefi/sys/amd64/include/intr_machdep.h
projects/uefi/sys/amd64/vmm/io/ppt.c
projects/uefi/sys/amd64/vmm/vmm.c
projects/uefi/sys/arm/allwinner/files.a10
projects/uefi/sys/arm/arm/busdma_machdep.c
projects/uefi/sys/arm/arm/vm_machdep.c
projects/uefi/sys/arm/conf/BEAGLEBONE
projects/uefi/sys/arm/conf/CUBIEBOARD
projects/uefi/sys/arm/include/vmparam.h
projects/uefi/sys/arm/ti/cpsw/if_cpsw.c
projects/uefi/sys/arm/ti/cpsw/if_cpswreg.h
projects/uefi/sys/arm/ti/cpsw/if_cpswvar.h
projects/uefi/sys/boot/fdt/dts/cubieboard.dts
projects/uefi/sys/boot/uboot/common/metadata.c
projects/uefi/sys/cam/scsi/scsi_all.c
projects/uefi/sys/cddl/compat/opensolaris/sys/kmem.h
projects/uefi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
projects/uefi/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
projects/uefi/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S
projects/uefi/sys/cddl/dev/dtrace/powerpc/dtrace_isa.c
projects/uefi/sys/conf/NOTES
projects/uefi/sys/conf/newvers.sh
projects/uefi/sys/conf/options
projects/uefi/sys/dev/acpica/acpi.c
projects/uefi/sys/dev/age/if_age.c
projects/uefi/sys/dev/age/if_agevar.h
projects/uefi/sys/dev/ata/ata-all.h
projects/uefi/sys/dev/ata/ata-lowlevel.c
projects/uefi/sys/dev/ath/if_ath_rx.c
projects/uefi/sys/dev/hwpmc/hwpmc_core.c
projects/uefi/sys/dev/hwpmc/hwpmc_intel.c
projects/uefi/sys/dev/hwpmc/pmc_events.h
projects/uefi/sys/dev/uart/uart_bus.h
projects/uefi/sys/dev/uart/uart_bus_acpi.c
projects/uefi/sys/dev/uart/uart_bus_isa.c
projects/uefi/sys/dev/uart/uart_bus_pci.c
projects/uefi/sys/dev/uart/uart_core.c
projects/uefi/sys/dev/usb/net/if_smsc.c
projects/uefi/sys/dev/usb/usb_freebsd.h
projects/uefi/sys/dev/usb/usb_freebsd_loader.h
projects/uefi/sys/dev/usb/usb_lookup.c
projects/uefi/sys/dev/usb/usbdi.h
projects/uefi/sys/fs/ext2fs/ext2_alloc.c
projects/uefi/sys/fs/ext2fs/ext2_dir.h
projects/uefi/sys/fs/ext2fs/ext2_inode.c
projects/uefi/sys/fs/ext2fs/ext2_lookup.c
projects/uefi/sys/fs/ext2fs/ext2_vfsops.c
projects/uefi/sys/fs/ext2fs/ext2fs.h
projects/uefi/sys/fs/ext2fs/fs.h
projects/uefi/sys/fs/msdosfs/msdosfs_fat.c
projects/uefi/sys/fs/msdosfs/msdosfs_vfsops.c
projects/uefi/sys/fs/msdosfs/msdosfs_vnops.c
projects/uefi/sys/fs/nfs/nfs_commonsubs.c
projects/uefi/sys/i386/conf/GENERIC
projects/uefi/sys/i386/i386/mp_machdep.c
projects/uefi/sys/i386/include/intr_machdep.h
projects/uefi/sys/i386/include/vmparam.h
projects/uefi/sys/kern/init_main.c
projects/uefi/sys/kern/kern_clocksource.c
projects/uefi/sys/kern/kern_descrip.c
projects/uefi/sys/kern/kern_ktr.c
projects/uefi/sys/kern/kern_malloc.c
projects/uefi/sys/kern/kern_mib.c
projects/uefi/sys/kern/vfs_syscalls.c
projects/uefi/sys/kern/vfs_vnops.c
projects/uefi/sys/modules/Makefile
projects/uefi/sys/modules/usb/Makefile
projects/uefi/sys/modules/usb/smsc/Makefile
projects/uefi/sys/modules/wlan/Makefile
projects/uefi/sys/net/if_llatbl.c
projects/uefi/sys/net/if_llatbl.h
projects/uefi/sys/net80211/ieee80211_superg.c
projects/uefi/sys/netgraph/ng_ether.c
projects/uefi/sys/netinet/if_ether.h
projects/uefi/sys/netinet/in.c
projects/uefi/sys/netinet/libalias/libalias.3
projects/uefi/sys/netinet/tcp.h
projects/uefi/sys/netinet/tcp_reass.c
projects/uefi/sys/netinet/tcp_syncache.c
projects/uefi/sys/netinet/udp.h
projects/uefi/sys/pc98/conf/GENERIC
projects/uefi/sys/sparc64/conf/GENERIC
projects/uefi/sys/sys/pmc.h
projects/uefi/sys/sys/socket.h
projects/uefi/sys/sys/systm.h
projects/uefi/sys/sys/un.h
projects/uefi/sys/ufs/ffs/ffs_inode.c
projects/uefi/sys/ufs/ufs/ufs_lookup.c
projects/uefi/sys/vm/vm_kern.c
projects/uefi/sys/x86/x86/intr_machdep.c
projects/uefi/sys/x86/x86/local_apic.c
projects/uefi/sys/x86/x86/tsc.c
projects/uefi/tools/regression/lib/libc/stdio/test-fmemopen.c
projects/uefi/usr.bin/bmake/Makefile
projects/uefi/usr.bin/bmake/config.h
projects/uefi/usr.bin/bmake/unit-tests/Makefile
projects/uefi/usr.bin/clang/clang/Makefile
projects/uefi/usr.bin/join/join.c
projects/uefi/usr.bin/xinstall/xinstall.c
projects/uefi/usr.sbin/arp/arp.8
projects/uefi/usr.sbin/arp/arp.c
projects/uefi/usr.sbin/bhyve/pci_emul.c
projects/uefi/usr.sbin/bhyve/pci_emul.h
projects/uefi/usr.sbin/bhyve/pci_passthru.c
projects/uefi/usr.sbin/bhyve/pci_virtio_block.c
projects/uefi/usr.sbin/bhyve/pci_virtio_net.c
projects/uefi/usr.sbin/crunch/crunchgen/crunchgen.c
projects/uefi/usr.sbin/crunch/crunchide/exec_elf32.c
projects/uefi/usr.sbin/crunch/examples/really-big.conf
projects/uefi/usr.sbin/ndp/ndp.c
projects/uefi/usr.sbin/pciconf/cap.c
projects/uefi/usr.sbin/ppp/arp.c
projects/uefi/usr.sbin/pw/pw_user.c
projects/uefi/usr.sbin/rarpd/rarpd.c
projects/uefi/usr.sbin/timed/timed/acksend.c
projects/uefi/usr.sbin/timed/timed/byteorder.c
projects/uefi/usr.sbin/timed/timed/candidate.c
projects/uefi/usr.sbin/timed/timed/cksum.c
projects/uefi/usr.sbin/timed/timed/correct.c
projects/uefi/usr.sbin/timed/timed/master.c
projects/uefi/usr.sbin/timed/timed/measure.c
projects/uefi/usr.sbin/timed/timed/networkdelta.c
projects/uefi/usr.sbin/timed/timed/readmsg.c
projects/uefi/usr.sbin/timed/timed/slave.c
projects/uefi/usr.sbin/timed/timed/timed.c
projects/uefi/usr.sbin/timed/timedc/cmds.c
projects/uefi/usr.sbin/timed/timedc/timedc.c
Directory Properties:
projects/uefi/ (props changed)
projects/uefi/contrib/binutils/ (props changed)
projects/uefi/contrib/bmake/ (props changed)
projects/uefi/contrib/gcc/ (props changed)
projects/uefi/contrib/gdb/ (props changed)
projects/uefi/contrib/libarchive/ (props changed)
projects/uefi/contrib/libarchive/libarchive/ (props changed)
projects/uefi/contrib/libstdc++/ (props changed)
projects/uefi/contrib/llvm/ (props changed)
projects/uefi/contrib/llvm/tools/clang/ (props changed)
projects/uefi/lib/libc/ (props changed)
projects/uefi/sbin/ (props changed)
projects/uefi/sys/ (props changed)
projects/uefi/sys/amd64/vmm/ (props changed)
projects/uefi/sys/boot/ (props changed)
projects/uefi/sys/cddl/contrib/opensolaris/ (props changed)
projects/uefi/sys/conf/ (props changed)
projects/uefi/usr.sbin/bhyve/ (props changed)
Modified: projects/uefi/Makefile.inc1
==============================================================================
--- projects/uefi/Makefile.inc1 Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/Makefile.inc1 Tue Feb 5 02:32:58 2013 (r246343)
@@ -27,6 +27,8 @@
# TARGET="machine" to crossbuild world for a different machine type
# TARGET_ARCH= may be required when a TARGET supports multiple endians
# BUILDENV_SHELL= shell to launch for the buildenv target (def:/bin/sh)
+# WORLD_FLAGS= additional flags to pass to make(1) during buildworld
+# KERNEL_FLAGS= additional flags to pass to make(1) during buildkernel
#
# The intended user-driven targets are:
@@ -245,7 +247,7 @@ BMAKEENV= INSTALL="sh ${.CURDIR}/tools/i
MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}" \
COMPILER_TYPE=${COMPILER_TYPE}
BMAKE= MAKEOBJDIRPREFIX=${WORLDTMP} \
- ${BMAKEENV} ${MAKE} -f Makefile.inc1 \
+ ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \
DESTDIR= \
BOOTSTRAPPING=${OSRELDATE} \
SSP_CFLAGS= \
@@ -255,7 +257,7 @@ BMAKE= MAKEOBJDIRPREFIX=${WORLDTMP} \
# build-tools stage
TMAKE= MAKEOBJDIRPREFIX=${OBJTREE} \
- ${BMAKEENV} ${MAKE} -f Makefile.inc1 \
+ ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \
TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
DESTDIR= \
BOOTSTRAPPING=${OSRELDATE} \
@@ -288,7 +290,7 @@ WMAKE_COMPILER_TYPE= gcc
WMAKE_COMPILER_TYPE= clang
.endif
WMAKEENV+= COMPILER_TYPE=${WMAKE_COMPILER_TYPE}
-WMAKE= ${WMAKEENV} ${MAKE} -f Makefile.inc1 DESTDIR=${WORLDTMP}
+WMAKE= ${WMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 DESTDIR=${WORLDTMP}
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
# 32 bit world
@@ -378,7 +380,7 @@ IMAKE_MTREE= MTREE_CMD="nmtree ${MTREEFL
# kernel stage
KMAKEENV= ${WMAKEENV}
-KMAKE= ${KMAKEENV} ${MAKE} KERNEL=${INSTKERNNAME}
+KMAKE= ${KMAKEENV} ${MAKE} ${KERNEL_FLAGS} KERNEL=${INSTKERNNAME}
#
# buildworld
@@ -1731,7 +1733,8 @@ NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOU
XDDIR=${XDEV_ARCH}-freebsd
XDTP=/usr/${XDDIR}
-CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${XDDIR}
+CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${XDDIR} \
+ INSTALL="sh ${.CURDIR}/tools/install.sh"
CDENV= ${CDBENV} \
_SHLIBDIRPREFIX=${XDTP} \
TOOLS_PREFIX=${XDTP}
Modified: projects/uefi/bin/sh/eval.c
==============================================================================
--- projects/uefi/bin/sh/eval.c Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/bin/sh/eval.c Tue Feb 5 02:32:58 2013 (r246343)
@@ -92,6 +92,7 @@ static void evalfor(union node *, int);
static union node *evalcase(union node *);
static void evalsubshell(union node *, int);
static void evalredir(union node *, int);
+static void exphere(union node *, struct arglist *);
static void expredir(union node *);
static void evalpipe(union node *);
static int is_valid_fast_cmdsubst(union node *n);
@@ -488,6 +489,37 @@ evalredir(union node *n, int flags)
}
+static void
+exphere(union node *redir, struct arglist *fn)
+{
+ struct jmploc jmploc;
+ struct jmploc *savehandler;
+ struct localvar *savelocalvars;
+ int need_longjmp = 0;
+
+ redir->nhere.expdoc = nullstr;
+ savelocalvars = localvars;
+ localvars = NULL;
+ forcelocal++;
+ savehandler = handler;
+ if (setjmp(jmploc.loc))
+ need_longjmp = exception != EXERROR && exception != EXEXEC;
+ else {
+ handler = &jmploc;
+ expandarg(redir->nhere.doc, fn, 0);
+ redir->nhere.expdoc = fn->list->text;
+ INTOFF;
+ }
+ handler = savehandler;
+ forcelocal--;
+ poplocalvars();
+ localvars = savelocalvars;
+ if (need_longjmp)
+ longjmp(handler->loc, 1);
+ INTON;
+}
+
+
/*
* Compute the names of the files in a redirection list.
*/
@@ -516,6 +548,9 @@ expredir(union node *n)
fixredir(redir, fn.list->text, 1);
}
break;
+ case NXHERE:
+ exphere(redir, &fn);
+ break;
}
}
}
Modified: projects/uefi/bin/sh/expand.c
==============================================================================
--- projects/uefi/bin/sh/expand.c Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/bin/sh/expand.c Tue Feb 5 02:32:58 2013 (r246343)
@@ -127,19 +127,6 @@ collate_range_cmp(wchar_t c1, wchar_t c2
return (wcscoll(s1, s2));
}
-/*
- * Expand shell variables and backquotes inside a here document.
- * union node *arg the document
- * int fd; where to write the expanded version
- */
-
-void
-expandhere(union node *arg, int fd)
-{
- expandarg(arg, (struct arglist *)NULL, 0);
- xwrite(fd, stackblock(), expdest - stackblock());
-}
-
static char *
stputs_quotes(const char *data, const char *syntax, char *p)
{
Modified: projects/uefi/bin/sh/expand.h
==============================================================================
--- projects/uefi/bin/sh/expand.h Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/bin/sh/expand.h Tue Feb 5 02:32:58 2013 (r246343)
@@ -57,7 +57,6 @@ struct arglist {
union node;
-void expandhere(union node *, int);
void expandarg(union node *, struct arglist *, int);
void expari(int);
void rmescapes(char *);
Modified: projects/uefi/bin/sh/jobs.c
==============================================================================
--- projects/uefi/bin/sh/jobs.c Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/bin/sh/jobs.c Tue Feb 5 02:32:58 2013 (r246343)
@@ -1298,6 +1298,10 @@ until:
cmdputs(n->narg.text);
cmdputs("() ...");
break;
+ case NNOT:
+ cmdputs("! ");
+ cmdtxt(n->nnot.com);
+ break;
case NCMD:
for (np = n->ncmd.args ; np ; np = np->narg.next) {
cmdtxt(np);
Modified: projects/uefi/bin/sh/miscbltin.c
==============================================================================
--- projects/uefi/bin/sh/miscbltin.c Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/bin/sh/miscbltin.c Tue Feb 5 02:32:58 2013 (r246343)
@@ -47,7 +47,6 @@ __FBSDID("$FreeBSD$");
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
-#include <ctype.h>
#include <errno.h>
#include <stdint.h>
#include <stdio.h>
@@ -60,6 +59,7 @@ __FBSDID("$FreeBSD$");
#include "memalloc.h"
#include "error.h"
#include "mystring.h"
+#include "syntax.h"
#undef eflag
@@ -307,7 +307,7 @@ umaskcmd(int argc __unused, char **argv
out1fmt("%.4o\n", mask);
}
} else {
- if (isdigit(*ap)) {
+ if (is_digit(*ap)) {
mask = 0;
do {
if (*ap >= '8' || *ap < '0')
Modified: projects/uefi/bin/sh/mksyntax.c
==============================================================================
--- projects/uefi/bin/sh/mksyntax.c Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/bin/sh/mksyntax.c Tue Feb 5 02:32:58 2013 (r246343)
@@ -165,7 +165,6 @@ main(int argc __unused, char **argv __un
}
fputs("#include <sys/cdefs.h>\n", hfile);
- fputs("#include <ctype.h>\n", hfile);
/* Generate the #define statements in the header file */
fputs("/* Syntax classes */\n", hfile);
Modified: projects/uefi/bin/sh/nodetypes
==============================================================================
--- projects/uefi/bin/sh/nodetypes Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/bin/sh/nodetypes Tue Feb 5 02:32:58 2013 (r246343)
@@ -138,6 +138,7 @@ NXHERE nhere # fd<<!
next nodeptr # next redirection in list
fd int # file descriptor being redirected
doc nodeptr # input to command (NARG node)
+ expdoc temp char *expdoc # actual document (for NXHERE)
NNOT nnot # ! command (actually pipeline)
type int
Modified: projects/uefi/bin/sh/redir.c
==============================================================================
--- projects/uefi/bin/sh/redir.c Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/bin/sh/redir.c Tue Feb 5 02:32:58 2013 (r246343)
@@ -251,18 +251,23 @@ movefd:
static int
openhere(union node *redir)
{
+ char *p;
int pip[2];
int len = 0;
if (pipe(pip) < 0)
error("Pipe call failed: %s", strerror(errno));
- if (redir->type == NHERE) {
- len = strlen(redir->nhere.doc->narg.text);
- if (len <= PIPESIZE) {
- xwrite(pip[1], redir->nhere.doc->narg.text, len);
- goto out;
- }
+
+ if (redir->type == NXHERE)
+ p = redir->nhere.expdoc;
+ else
+ p = redir->nhere.doc->narg.text;
+ len = strlen(p);
+ if (len <= PIPESIZE) {
+ xwrite(pip[1], p, len);
+ goto out;
}
+
if (forkshell((struct job *)NULL, (union node *)NULL, FORK_NOJOB) == 0) {
close(pip[0]);
signal(SIGINT, SIG_IGN);
@@ -270,10 +275,7 @@ openhere(union node *redir)
signal(SIGHUP, SIG_IGN);
signal(SIGTSTP, SIG_IGN);
signal(SIGPIPE, SIG_DFL);
- if (redir->type == NHERE)
- xwrite(pip[1], redir->nhere.doc->narg.text, len);
- else
- expandhere(redir->nhere.doc, pip[1]);
+ xwrite(pip[1], p, len);
_exit(0);
}
out:
Modified: projects/uefi/contrib/binutils/include/elf/common.h
==============================================================================
--- projects/uefi/contrib/binutils/include/elf/common.h Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/contrib/binutils/include/elf/common.h Tue Feb 5 02:32:58 2013 (r246343)
@@ -435,6 +435,10 @@
#define NT_FREEBSD_ABI_TAG 1
+/* Values for FreeBSD .note.tag notes. Note name is "FreeBSD". */
+
+#define NT_FREEBSD_TAG 2
+
/* These three macros disassemble and assemble a symbol table st_info field,
which contains the symbol binding and symbol type. The STB_ and STT_
defines identify the binding and type. */
Modified: projects/uefi/contrib/bmake/ChangeLog
==============================================================================
--- projects/uefi/contrib/bmake/ChangeLog Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/contrib/bmake/ChangeLog Tue Feb 5 02:32:58 2013 (r246343)
@@ -1,3 +1,35 @@
+2013-01-27 Simon J. Gerraty <sjg at bad.crufty.net>
+
+ * Merge with NetBSD make, pick up
+ o make.1: more info on how shell commands are handled.
+ o job.c,main.c: detect write errors to job pipes.
+
+2013-01-25 Simon J. Gerraty <sjg at bad.crufty.net>
+
+ * Makefile (MAKE_VERSION): 20130123
+ Merge with NetBSD make, pick up
+ o meta.c: if script uses .OODATE and meta_oodate() decides
+ rebuild is needed, .OODATE will be empty - set it to .ALLSRC.
+ o var.c: in debug output indicate which variabale modifiers
+ apply to.
+ o remove Check_Cwd logic the makefiles have been fixed.
+
+2012-12-12 Simon J. Gerraty <sjg at bad.crufty.net>
+
+ * makefile.in: add a simple makefile for folk who insist on
+ ./configure; make; make install
+ it just runs boot-strap
+ * include mk/* to accommodate the above
+ * boot-strap: re-work to accommodate the above
+ mksrc defaults to $Mydir/mk
+ allow op={configure,build,install,clean,all}
+ add options to facilitate install
+ * Makefile.config.in: just the bits set by configure
+ * Makefile: bump version to 20121212
+ abandon Makefile.in (NetBSD Makefile)
+ leverage mk/* instead
+ * configure.in: ensure srcdir is absolute
+
2012-11-11 Simon J. Gerraty <sjg at bad.crufty.net>
* Makefile.in (MAKE_VERSION): 20121111
Modified: projects/uefi/contrib/bmake/FILES
==============================================================================
--- projects/uefi/contrib/bmake/FILES Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/contrib/bmake/FILES Tue Feb 5 02:32:58 2013 (r246343)
@@ -4,7 +4,9 @@ bmake.cat1
boot-strap
bsd.after-import.mk
os.sh
-Makefile.in
+makefile.in
+Makefile
+Makefile.config.in
PSD.doc/Makefile
PSD.doc/tutorial.ms
README
@@ -120,3 +122,63 @@ unit-tests/test.exp
unit-tests/unexport
unit-tests/unexport-env
unit-tests/varcmd
+mk/ChangeLog
+mk/FILES
+mk/README
+mk/auto.obj.mk
+mk/autoconf.mk
+mk/autodep.mk
+mk/auto.dep.mk
+mk/dep.mk
+mk/doc.mk
+mk/dpadd.mk
+mk/final.mk
+mk/host-target.mk
+mk/host.libnames.mk
+mk/inc.mk
+mk/init.mk
+mk/install-mk
+mk/java.mk
+mk/lib.mk
+mk/libnames.mk
+mk/libs.mk
+mk/links.mk
+mk/man.mk
+mk/mk-files.txt
+mk/nls.mk
+mk/obj.mk
+mk/options.mk
+mk/own.mk
+mk/prlist.mk
+mk/prog.mk
+mk/progs.mk
+mk/rst2htm.mk
+mk/scripts.mk
+mk/srctop.mk
+mk/subdir.mk
+mk/sys.mk
+mk/sys.clean-env.mk
+mk/sys.dependfile.mk
+mk/sys/AIX.mk
+mk/sys/Darwin.mk
+mk/sys/Generic.mk
+mk/sys/HP-UX.mk
+mk/sys/IRIX.mk
+mk/sys/Linux.mk
+mk/sys/NetBSD.mk
+mk/sys/OSF1.mk
+mk/sys/OpenBSD.mk
+mk/sys/SunOS.mk
+mk/sys/UnixWare.mk
+mk/target-flags.mk
+mk/warnings.mk
+mk/yacc.mk
+mk/dirdeps.mk
+mk/gendirdeps.mk
+mk/install-new.mk
+mk/meta2deps.py
+mk/meta2deps.sh
+mk/meta.sys.mk
+mk/meta.autodep.mk
+mk/meta.stage.mk
+mk/meta.subdir.mk
Copied: projects/uefi/contrib/bmake/Makefile (from r246342, head/contrib/bmake/Makefile)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/uefi/contrib/bmake/Makefile Tue Feb 5 02:32:58 2013 (r246343, copy of r246342, head/contrib/bmake/Makefile)
@@ -0,0 +1,221 @@
+# $Id: Makefile,v 1.5 2013/01/28 19:31:58 sjg Exp $
+
+# Base version on src date
+MAKE_VERSION= 20130123
+
+PROG= bmake
+
+SRCS= \
+ arch.c \
+ buf.c \
+ compat.c \
+ cond.c \
+ dir.c \
+ for.c \
+ hash.c \
+ job.c \
+ main.c \
+ make.c \
+ make_malloc.c \
+ meta.c \
+ parse.c \
+ str.c \
+ strlist.c \
+ suff.c \
+ targ.c \
+ trace.c \
+ util.c \
+ var.c
+
+# from lst.lib/
+SRCS+= \
+ lstAppend.c \
+ lstAtEnd.c \
+ lstAtFront.c \
+ lstClose.c \
+ lstConcat.c \
+ lstDatum.c \
+ lstDeQueue.c \
+ lstDestroy.c \
+ lstDupl.c \
+ lstEnQueue.c \
+ lstFind.c \
+ lstFindFrom.c \
+ lstFirst.c \
+ lstForEach.c \
+ lstForEachFrom.c \
+ lstInit.c \
+ lstInsert.c \
+ lstIsAtEnd.c \
+ lstIsEmpty.c \
+ lstLast.c \
+ lstMember.c \
+ lstNext.c \
+ lstOpen.c \
+ lstPrev.c \
+ lstRemove.c \
+ lstReplace.c \
+ lstSucc.c
+
+# this file gets generated by configure
+.-include "Makefile.config"
+
+.if !empty(LIBOBJS)
+SRCS+= ${LIBOBJS:T:.o=.c}
+.endif
+
+# just in case
+prefix?= /usr
+srcdir?= ${.CURDIR}
+
+DEFAULT_SYS_PATH?= .../share/mk:${prefix}/share/mk
+
+CPPFLAGS+= -DUSE_META
+CFLAGS+= ${CPPFLAGS}
+CFLAGS+= -D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\"
+CFLAGS+= -I. -I${srcdir} ${XDEFS} -DMAKE_NATIVE
+CFLAGS+= ${COPTS.${.ALLSRC:M*.c:T:u}}
+COPTS.main.c+= "-DMAKE_VERSION=\"${MAKE_VERSION}\""
+
+# meta mode can be useful even without filemon
+FILEMON_H ?= /usr/include/dev/filemon/filemon.h
+.if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h"
+COPTS.meta.c += -DHAVE_FILEMON_H -I${FILEMON_H:H}
+.endif
+
+.PATH: ${srcdir}
+.PATH: ${srcdir}/lst.lib
+
+.if make(obj) || make(clean)
+SUBDIR+= unit-tests
+.endif
+
+# start-delete1 for bsd.after-import.mk
+# we skip a lot of this when building as part of FreeBSD etc.
+
+# list of OS's which are derrived from BSD4.4
+BSD44_LIST= NetBSD FreeBSD OpenBSD DragonFly
+# we are...
+OS!= uname -s
+# are we 4.4BSD ?
+isBSD44:=${BSD44_LIST:M${OS}}
+
+.if ${isBSD44} == ""
+MANTARGET= cat
+INSTALL?=${srcdir}/install-sh
+.if (${MACHINE} == "sun386")
+# even I don't have one of these anymore :-)
+CFLAGS+= -DPORTAR
+.elif (${MACHINE} != "sunos")
+SRCS+= sigcompat.c
+CFLAGS+= -DSIGNAL_FLAGS=SA_RESTART
+.endif
+.else
+MANTARGET?= man
+.endif
+
+# turn this on by default - ignored if we are root
+WITH_INSTALL_AS_USER=
+
+# supress with -DWITHOUT_*
+OPTIONS_DEFAULT_YES+= \
+ AUTOCONF_MK \
+ INSTALL_MK \
+ PROG_LINK
+
+OPTIONS_DEFAULT_NO+= \
+ PROG_VERSION
+
+# process options now
+.include <own.mk>
+
+.if ${MK_PROG_VERSION} == "yes"
+PROG_NAME= ${PROG}-${MAKE_VERSION}
+.if ${MK_PROG_LINK} == "yes"
+SYMLINKS+= ${PROG}-${MAKE_VERSION} ${BINDIR}/${PROG}
+.endif
+.endif
+
+EXTRACT_MAN=no
+# end-delete1
+
+MAN= ${PROG}.1
+MAN1= ${MAN}
+
+.if (${PROG} != "make")
+CLEANFILES+= my.history
+.if make(${MAN}) || !exists(${srcdir}/${MAN})
+my.history: ${MAKEFILE}
+ @(echo ".Nm"; \
+ echo "is derived from NetBSD"; \
+ echo ".Xr make 1 ."; \
+ echo "It uses autoconf to facilitate portability to other platforms."; \
+ echo ".Pp") > $@
+
+.NOPATH: ${MAN}
+${MAN}: make.1 my.history
+ @echo making $@
+ @sed -e 's/^.Nx/NetBSD/' -e '/^.Nm/s/make/${PROG}/' \
+ -e '/^.Sh HISTORY/rmy.history' \
+ -e '/^.Sh HISTORY/,$$s,^.Nm,make,' ${srcdir}/make.1 > $@
+
+all beforeinstall: ${MAN}
+_mfromdir=.
+.endif
+.endif
+
+MANTARGET?= cat
+MANDEST?= ${MANDIR}/${MANTARGET}1
+
+.if ${MANTARGET} == "cat"
+_mfromdir=${srcdir}
+.endif
+
+.include <prog.mk>
+
+CPPFLAGS+= -DMAKE_NATIVE -DHAVE_CONFIG_H
+COPTS.var.c += -Wno-cast-qual
+COPTS.job.c += -Wno-format-nonliteral
+COPTS.parse.c += -Wno-format-nonliteral
+COPTS.var.c += -Wno-format-nonliteral
+
+# Force these
+SHAREDIR= ${prefix}/share
+BINDIR= ${prefix}/bin
+MANDIR= ${SHAREDIR}/man
+
+.if !exists(.depend)
+${OBJS}: config.h
+.endif
+.if ${MK_AUTOCONF_MK} == "yes"
+.include <autoconf.mk>
+.endif
+
+# make sure that MAKE_VERSION gets updated.
+main.o: ${SRCS} ${MAKEFILE}
+
+# start-delete2 for bsd.after-import.mk
+SHARE_MK?=${SHAREDIR}/mk
+MKSRC=${srcdir}/mk
+INSTALL?=${srcdir}/install-sh
+
+.if ${MK_INSTALL_MK} == "yes"
+install: install-mk
+.endif
+
+beforeinstall:
+ test -d ${DESTDIR}${BINDIR} || ${INSTALL} -m 775 -d ${DESTDIR}${BINDIR}
+ test -d ${DESTDIR}${MANDEST} || ${INSTALL} -m 775 -d ${DESTDIR}${MANDEST}
+
+install-mk:
+.if exists(${MKSRC}/install-mk)
+ test -d ${DESTDIR}${SHARE_MK} || ${INSTALL} -m 775 -d ${DESTDIR}${SHARE_MK}
+ sh ${MKSRC}/install-mk -v -m 644 ${DESTDIR}${SHARE_MK}
+.else
+ @echo need to unpack mk.tar.gz under ${srcdir} or set MKSRC; false
+.endif
+# end-delete2
+
+# A simple unit-test driver to help catch regressions
+accept test:
+ cd ${.CURDIR}/unit-tests && MAKEFLAGS= ${.MAKE} -r -m / TEST_MAKE=${TEST_MAKE:U${.OBJDIR}/${PROG:T}} ${.TARGET}
Copied: projects/uefi/contrib/bmake/Makefile.config.in (from r246342, head/contrib/bmake/Makefile.config.in)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/uefi/contrib/bmake/Makefile.config.in Tue Feb 5 02:32:58 2013 (r246343, copy of r246342, head/contrib/bmake/Makefile.config.in)
@@ -0,0 +1,16 @@
+# things set by configure
+
+prefix= @prefix@
+srcdir= @srcdir@
+CC?= @CC@
+MACHINE= @machine@
+MACHINE_ARCH= @machine_arch@
+DEFAULT_SYS_PATH= @default_sys_path@
+
+CPPFLAGS+= @CPPFLAGS@
+CFLAGS+= ${CPPFLAGS} @DEFS@
+LDFLAGS= @LDFLAGS@
+LIBOBJS= @LIBOBJS@
+LDADD= @LIBS@
+USE_META= @use_meta@
+FILEMON_H= @filemon_h@
Modified: projects/uefi/contrib/bmake/bmake.1
==============================================================================
--- projects/uefi/contrib/bmake/bmake.1 Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/contrib/bmake/bmake.1 Tue Feb 5 02:32:58 2013 (r246343)
@@ -1,4 +1,4 @@
-.\" $NetBSD: make.1,v 1.209 2012/10/08 15:09:48 christos Exp $
+.\" $NetBSD: make.1,v 1.210 2013/01/27 18:52:01 sjg Exp $
.\"
.\" Copyright (c) 1990, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -29,7 +29,7 @@
.\"
.\" from: @(#)make.1 8.4 (Berkeley) 3/19/94
.\"
-.Dd October 8, 2012
+.Dd January 23, 2013
.Dt MAKE 1
.Os
.Sh NAME
@@ -468,6 +468,50 @@ except that the effect can be limited to
A
.Ql Ic \-
causes any non-zero exit status of the command line to be ignored.
+.Pp
+When
+.Nm
+is run in jobs mode with
+.Fl j Ar max_jobs ,
+the entire script for the target is fed to a
+single instance of the shell.
+.Pp
+In compatibility (non-jobs) mode, each command is run in a separate process.
+If the command contains any shell meta characters
+.Pq Ql #=|^(){};&<>*?[]:$`\e\en
+it will be passed to the shell, otherwise
+.Nm
+will attempt direct execution.
+.Pp
+Since
+.Nm
+will
+.Xr chdir 2
+to
+.Ql Va .OBJDIR
+before executing any targets, each child process
+starts with that as its current working directory.
+.Pp
+Makefiles should be written so that the mode of
+.Nm
+operation does not change their behavior.
+For example, any command which needs to use
+.Dq cd
+or
+.Dq chdir ,
+without side-effect should be put in parenthesis:
+.Bd -literal -offset indent
+
+avoid-chdir-side-effects:
+ @echo Building $@ in `pwd`
+ @(cd ${.CURDIR} && ${.MAKE} $@)
+ @echo Back in `pwd`
+
+ensure-one-shell-regardless-of-mode:
+ @echo Building $@ in `pwd`; \\
+ (cd ${.CURDIR} && ${.MAKE} $@); \\
+ echo Back in `pwd`
+.Ed
.Sh VARIABLE ASSIGNMENTS
Variables in make are much like variables in the shell, and, by tradition,
consist of all upper-case letters.
@@ -2027,28 +2071,6 @@ NetBSD 5.0
so that they still appear to be variable expansions.
In particular this stops them being treated as syntax, and removes some
obscure problems using them in .if statements.
-.Pp
-Unlike other
-.Nm
-programs, this implementation by default executes all commands for a given
-target using a single shell invocation.
-This is done for both efficiency and to simplify error handling in remote
-command invocations.
-Typically this is transparent to the user, unless the target commands change
-the current working directory using
-.Dq cd
-or
-.Dq chdir .
-To be compatible with Makefiles that do this, one can use
-.Fl B
-to disable this behavior.
-.Pp
-In compatibility mode, each command is run in a separate process.
-If the command contains any shell meta characters
-.Pq Ql #=|^(){};&<>*?[]:$`\e\en
-it will be passed to the shell, otherwise
-.Nm
-will attempt direct execution.
.Sh SEE ALSO
.Xr mkdep 1
.Sh HISTORY
Modified: projects/uefi/contrib/bmake/bmake.cat1
==============================================================================
--- projects/uefi/contrib/bmake/bmake.cat1 Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/contrib/bmake/bmake.cat1 Tue Feb 5 02:32:58 2013 (r246343)
@@ -284,6 +284,32 @@ SSHHEELLLL CCOOMMMMAANNDDSS
line of a script. A `--' causes any non-zero exit status of the command
line to be ignored.
+ When bbmmaakkee is run in jobs mode with --jj _m_a_x___j_o_b_s, the entire script for
+ the target is fed to a single instance of the shell.
+
+ In compatibility (non-jobs) mode, each command is run in a separate
+ process. If the command contains any shell meta characters
+ (`#=|^(){};&<>*?[]:$`\\n') it will be passed to the shell, otherwise
+ bbmmaakkee will attempt direct execution.
+
+ Since bbmmaakkee will chdir(2) to `_._O_B_J_D_I_R' before executing any targets, each
+ child process starts with that as its current working directory.
+
+ Makefiles should be written so that the mode of bbmmaakkee operation does not
+ change their behavior. For example, any command which needs to use
+ ``cd'' or ``chdir'', without side-effect should be put in parenthesis:
+
+
+ avoid-chdir-side-effects:
+ @echo Building $@ in `pwd`
+ @(cd ${.CURDIR} && ${.MAKE} $@)
+ @echo Back in `pwd`
+
+ ensure-one-shell-regardless-of-mode:
+ @echo Building $@ in `pwd`; \
+ (cd ${.CURDIR} && ${.MAKE} $@); \
+ echo Back in `pwd`
+
VVAARRIIAABBLLEE AASSSSIIGGNNMMEENNTTSS
Variables in make are much like variables in the shell, and, by tradi-
tion, consist of all upper-case letters.
@@ -1293,19 +1319,6 @@ CCOOMMPPAATTIIBBIILLIITTYY
stops them being treated as syntax, and removes some obscure problems
using them in .if statements.
- Unlike other bbmmaakkee programs, this implementation by default executes all
- commands for a given target using a single shell invocation. This is
- done for both efficiency and to simplify error handling in remote command
- invocations. Typically this is transparent to the user, unless the tar-
- get commands change the current working directory using ``cd'' or
- ``chdir''. To be compatible with Makefiles that do this, one can use --BB
- to disable this behavior.
-
- In compatibility mode, each command is run in a separate process. If the
- command contains any shell meta characters (`#=|^(){};&<>*?[]:$`\\n') it
- will be passed to the shell, otherwise bbmmaakkee will attempt direct execu-
- tion.
-
SSEEEE AALLSSOO
mkdep(1)
@@ -1327,4 +1340,4 @@ BBUUGGSS
There is no way of escaping a space character in a filename.
-NetBSD 5.1 October 8, 2012 NetBSD 5.1
+NetBSD 5.1 January 23, 2013 NetBSD 5.1
Modified: projects/uefi/contrib/bmake/boot-strap
==============================================================================
--- projects/uefi/contrib/bmake/boot-strap Tue Feb 5 02:25:13 2013 (r246342)
+++ projects/uefi/contrib/bmake/boot-strap Tue Feb 5 02:32:58 2013 (r246343)
@@ -3,23 +3,52 @@
# boot-strap
#
# SYNOPSIS:
-# boot-strap [--"configure_arg" ... ][-s "srcdir"][-m "mksrc"]\\
-# ["prefix" ["bmakesrc" ["mksrc"]]]
+# boot-strap ["options"]
+# boot-strap --prefix=/opt --install
+# boot-strap --prefix=$HOME --install-host-target -DWITH_PROG_VERSION
+# boot-strap ["options"] op=build
+# boot-strap ["options"] op=install
#
# DESCRIPTION:
# This script is used to configure/build bmake it builds for
-# each OS in a subdir to keep the src clean.
-# On successful completion it echos commands to put the new
-# bmake binary into the /configs tree (if it exists)
-# (http://www.crufty.net/FreeWare/configs.html), $prefix/bin
-# and a suitable ~/*bin directory.
+# each host-target in a different subdir to keep the src clean.
+# There is no requirement for an existing make(1).
#
+# On successful completion if no '--install' flag is given,
+# it echos a command to do installation.
+#
+# The variable "op" defaults to 'all', and is affected by
+# '--install' flag as above.
+# Other values include:
+#
+# configure
+# Just run 'configure'
+#
+# build
+# If 'configure' has not been done, do it, then
+# run the build script, and finally 'test'.
+#
+# install
+# If 'build' has not been done, do it, 'test' then
+# install.
+#
+# clean
+# attempt to clean up
+#
+# test
+# run the unit-tests. Done automatically after 'build'
+# and before 'install'.
+#
+# The above are leveraged by a trivial makefile for the benefit
+# of those that have './configure; make; make install' baked
+# into them.
+#
# Options:
#
# -c "rc"
# Pick up settings from "rc".
# We look for '.bmake-boot-strap.rc' before processing
-# options.
+# options (unless SKIP_RC is set in environment).
#
# --share "share_dir"
# Where to put man pages and mk files.
@@ -28,9 +57,28 @@
#
# --mksrc "mksrc"
# Indicate where the mk files can be found.
-# Default is ./mk or ../mk, set to 'none' to force
-# building without "mksrc" but in that case a sys.mk
-# needs to exist in the default syspath ($share_dir/mk)
+# Default is $Mydir/mk
+#
+# --install
+# If build and test work, run bmake install.
+# BINDIR=$prefix/bin
+# SHAREDIR=$prefix/share
+#
+# --install-host-target
+# As for '--install' but BINDIR=$prefix/$HOST_TARGET/bin
+# This is useful when $prefix/ is shared by multiple
+# machines.
+#
+# Flags relevant when installing:
+#
+# -DWITHOUT_INSTALL_MK
+# Skip installing mk files.
+# By default they will be installed to $prefix/share/mk
+#
+# -DWITH_PROG_VERSION
+# Install 'bmake' as 'bmake-$MAKE_VERSION'
+# A symlink will be made as 'bmake' unless
+# -DWITHOUT_PROG_LINK is set.
#
# Possibly useful configure_args:
#
@@ -63,7 +111,7 @@
# Simon J. Gerraty <sjg at crufty.net>
# RCSid:
-# $Id: boot-strap,v 1.39 2012/03/26 17:08:22 sjg Exp $
+# $Id: boot-strap,v 1.42 2013/01/25 20:20:33 sjg Exp $
#
# @(#) Copyright (c) 2001 Simon J. Gerraty
#
@@ -85,11 +133,10 @@ case "$Mydir" in
*) Mydir=`cd "$Mydir" && 'pwd'`;;
esac
-
Usage() {
[ "$1" ] && echo "ERROR: $@" >&2
echo "Usage:" >&2
- echo "$0 [--<configure_arg> ...][-s <srcdir>][-m <mksrc>][<prefix> [[<srcdir>] [<mksrc>]]]" >&2
+ echo "$0 [--<configure_arg> ...][<prefix>][--install]" >&2
exit 1
}
@@ -110,28 +157,55 @@ source_rc() {
done
}
+cmd_args="$@"
+
+# --install[-host-target] will set this
+INSTALL_PREFIX=
+# other things we pass to install step
+INSTALL_ARGS=
CONFIGURE_ARGS=
MAKESYSPATH=
# pick a useful default prefix (for me at least ;-)
for prefix in /opt/$HOST_TARGET "$HOME/$HOST_TARGET" /usr/pkg /usr/local ""
do
- [ -d "${prefix:-.}" ] && break
+ [ -d "${prefix:-.}" ] || continue
+ case "$prefix" in
+ */$HOST_TARGET)
+ p=`dirname $prefix`
+ if [ -d $p/share ]; then
+ INSTALL_BIN=$HOST_TARGET/bin
+ prefix=$p
+ fi
+ ;;
+ esac
+ echo "NOTE: default prefix=$prefix ${INSTALL_BIN:+INSTALL_BIN=$INSTALL_BIN}"
+ break
done
-srcdir=
-mksrc=
+srcdir=$Mydir
+mksrc=$Mydir/mk
objdir=
quiet=:
-source_rc .bmake-boot-strap.rc . "$Mydir/.." "$HOME"
+${SKIP_RC:+:} source_rc .bmake-boot-strap.rc . "$Mydir/.." "$HOME"
get_optarg() {
expr "x$1" : "x[^=]*=\\(.*\\)"
}
+here=`'pwd'`
+if [ $here = $Mydir ]; then
+ # avoid polution
+ OBJROOT=../
+fi
+
+op=all
+BMAKE=
+
while :
do
case "$1" in
--) shift; break;;
+ --help) sed -n -e "1d;/RCSid/,\$d" -e '/^#\.[a-z]/d' -e '/^#/s,^# *,,p' $0; exit 0;;
--prefix) prefix="$2"; shift;;
--prefix=*) prefix=`get_optarg "$1"`;;
--src=*) srcdir=`get_optarg "$1"`;;
@@ -144,6 +218,13 @@ do
--with-default-sys-path)
CONFIGURE_ARGS="$1 $2"
MAKESYSPATH="$2"; shift;;
+ --install) INSTALL_PREFIX=${INSTALL_PREFIX:-$prefix};;
+ --install-host-target)
+ INSTALL_PREFIX=${INSTALL_PREFIX:-$prefix}
+ INSTALL_BIN=$HOST_TARGET/bin;;
+ --install-destdir=*) INSTALL_DESTDIR=`get_optarg "$1"`;;
+ --install-prefix=*) INSTALL_PREFIX=`get_optarg "$1"`;;
+ -DWITH*) INSTALL_ARGS="$INSTALL_ARGS $1";;
-s|--src) srcdir="$2"; shift;;
-m|--mksrc) mksrc="$2"; shift;;
-o|--objdir) objdir="$2"; shift;;
@@ -261,7 +342,7 @@ none|-) # we don't want it
esac
# Ok, get to work...
-objdir="${objdir:-$OS}"
+objdir="${objdir:-$OBJROOT$HOST_TARGET}"
[ -d "$objdir" ] || mkdir -p "$objdir"
[ -d "$objdir" ] || mkdir "$objdir"
cd "$objdir" || exit 1
@@ -301,88 +382,80 @@ if [ "$mksrc" ]; then
export CFLAGS_MF CFLAGS_MD
fi
-$srcdir/configure $CONFIGURE_ARGS || exit 1
-chmod 755 make-bootstrap.sh || exit 1
-./make-bootstrap.sh || exit 1
-if [ -z "$MAKESYSPATH" ]; then
- add_path "${share_dir:-...}/mk" MAKESYSPATH
- case "$HOST_TARGET" in
- netbsd*) add_path /usr/share/mk MAKESYSPATH;;
- esac
-fi
-if [ -s "${mksrc:-/dev/null}/install-mk" ]; then
- sh "${mksrc}/install-mk" "$objdir/mk"
- case "$MAKESYSPATH" in
- .../mk*) ;;
- *) MAKESYSPATH=".../mk:${MAKESYSPATH}";;
- esac
-fi
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list