ia64/xen-unstable

changeset 16650:923b8dbb0fed

Fix some build system error handling.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Dec 20 13:16:21 2007 +0000 (2007-12-20)
parents e2fa79c659e2
children 741ecee8ccc0
files buildconfigs/mk.linux-2.6-common buildconfigs/src.hg-clone docs/Makefile tools/examples/Makefile tools/firmware/rombios/32bit/Makefile tools/ioemu/Makefile tools/ioemu/tests/Makefile tools/libaio/Makefile tools/libxen/Makefile tools/libxen/Makefile.dist tools/python/Makefile tools/security/Makefile tools/vtpm/Makefile tools/xm-test/ramdisk/Makefile.am xen/Makefile xen/include/Makefile
line diff
     1.1 --- a/buildconfigs/mk.linux-2.6-common	Thu Dec 20 10:44:06 2007 +0000
     1.2 +++ b/buildconfigs/mk.linux-2.6-common	Thu Dec 20 13:16:21 2007 +0000
     1.3 @@ -103,7 +103,7 @@ ifneq ($(EXTRAVERSION),)
     1.4  	echo "$(EXTRAVERSION)" >$(LINUX_DIR)/localversion-xen
     1.5  endif
     1.6  	$(MAKE) -C $(LINUX_SRCDIR) ARCH=$(LINUX_ARCH) oldconfig O=$$(/bin/pwd)/$(LINUX_DIR)
     1.7 -	@if [ ! -f $(LINUX_DIR)/Makefile ] ; then \
     1.8 +	@set -e ; if [ ! -f $(LINUX_DIR)/Makefile ] ; then \
     1.9  	    echo "***********************************"; \
    1.10  	    echo "oldconfig did not create a Makefile"; \
    1.11  	    echo "Generating $(LINUX_DIR)/Makefile   "; \
     2.1 --- a/buildconfigs/src.hg-clone	Thu Dec 20 10:44:06 2007 +0000
     2.2 +++ b/buildconfigs/src.hg-clone	Thu Dec 20 13:16:21 2007 +0000
     2.3 @@ -25,7 +25,7 @@ XEN_LINUX_HGREV  ?= tip
     2.4  	    echo "Pulling changes from $${__parent} into $(LINUX_SRCDIR)." ; \
     2.5  	    $(HG) -R $(LINUX_SRCDIR) pull $${__parent} ; \
     2.6  	fi
     2.7 -	if [ -n "$(XEN_LINUX_HGREV)" ] ; then \
     2.8 +	set -e ; if [ -n "$(XEN_LINUX_HGREV)" ] ; then \
     2.9  	    echo "Updating $(LINUX_SRCDIR) to revision $(XEN_LINUX_HGREV)." ; \
    2.10  	    ( cd $(LINUX_SRCDIR) && $(HG) update $(XEN_LINUX_HGREV) ); \
    2.11  	fi
     3.1 --- a/docs/Makefile	Thu Dec 20 10:44:06 2007 +0000
     3.2 +++ b/docs/Makefile	Thu Dec 20 13:16:21 2007 +0000
     3.3 @@ -44,7 +44,7 @@ html:
     3.4  .PHONY: python-dev-docs
     3.5  python-dev-docs:
     3.6  	@mkdir -v -p api/tools/python
     3.7 -	@if which $(DOXYGEN) 1>/dev/null 2>/dev/null; then         \
     3.8 +	@set -e ; if which $(DOXYGEN) 1>/dev/null 2>/dev/null; then \
     3.9          echo "Running doxygen to generate Python tools APIs ... "; \
    3.10  	$(DOXYGEN) Doxyfile;                                       \
    3.11  	$(MAKE) -C api/tools/python/latex ; else                   \
     4.1 --- a/tools/examples/Makefile	Thu Dec 20 10:44:06 2007 +0000
     4.2 +++ b/tools/examples/Makefile	Thu Dec 20 13:16:21 2007 +0000
     4.3 @@ -76,7 +76,7 @@ install-configs: $(XEN_CONFIGS)
     4.4  		$(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)
     4.5  	[ -d $(DESTDIR)$(XEN_CONFIG_DIR)/auto ] || \
     4.6  		$(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)/auto
     4.7 -	for i in $(XEN_CONFIGS); \
     4.8 +	set -e; for i in $(XEN_CONFIGS); \
     4.9  	    do [ -e $(DESTDIR)$(XEN_CONFIG_DIR)/$$i ] || \
    4.10  	    $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_CONFIG_DIR); \
    4.11  	done
    4.12 @@ -85,11 +85,11 @@ install-configs: $(XEN_CONFIGS)
    4.13  install-scripts:
    4.14  	[ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \
    4.15  		$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
    4.16 -	for i in $(XEN_SCRIPTS); \
    4.17 +	set -e; for i in $(XEN_SCRIPTS); \
    4.18  	    do \
    4.19  	    $(INSTALL_PROG) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
    4.20  	done
    4.21 -	for i in $(XEN_SCRIPT_DATA); \
    4.22 +	set -e; for i in $(XEN_SCRIPT_DATA); \
    4.23  	    do \
    4.24  	    $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
    4.25  	done
    4.26 @@ -98,7 +98,7 @@ install-scripts:
    4.27  install-hotplug:
    4.28  	[ -d $(DESTDIR)$(XEN_HOTPLUG_DIR) ] || \
    4.29  		$(INSTALL_DIR) $(DESTDIR)$(XEN_HOTPLUG_DIR)
    4.30 -	for i in $(XEN_HOTPLUG_SCRIPTS); \
    4.31 +	set -e; for i in $(XEN_HOTPLUG_SCRIPTS); \
    4.32  	    do \
    4.33  	    $(INSTALL_PROG) $$i $(DESTDIR)$(XEN_HOTPLUG_DIR); \
    4.34  	done
    4.35 @@ -107,11 +107,10 @@ install-hotplug:
    4.36  install-udev:
    4.37  	[ -d $(DESTDIR)$(UDEV_RULES_DIR) ] || \
    4.38  		$(INSTALL_DIR) $(DESTDIR)$(UDEV_RULES_DIR)/rules.d
    4.39 -	for i in $(UDEV_RULES); \
    4.40 +	set -e; for i in $(UDEV_RULES); \
    4.41  	    do \
    4.42  	    $(INSTALL_DATA) $$i $(DESTDIR)$(UDEV_RULES_DIR); \
    4.43 -	    ( cd $(DESTDIR)$(UDEV_RULES_DIR)/rules.d ; \
    4.44 -	        ln -sf ../$$i . ) \
    4.45 +	    ln -sf ../$$i $(DESTDIR)$(UDEV_RULES_DIR)/rules.d; \
    4.46  	done
    4.47  
    4.48  .PHONY: clean
     5.1 --- a/tools/firmware/rombios/32bit/Makefile	Thu Dec 20 10:44:06 2007 +0000
     5.2 +++ b/tools/firmware/rombios/32bit/Makefile	Thu Dec 20 13:16:21 2007 +0000
     5.3 @@ -19,7 +19,7 @@ MODULES = tcgbios/tcgbiosext.o
     5.4  .PHONY: all subdirs clean
     5.5  
     5.6  subdirs:
     5.7 -	@for subdir in $(SUBDIRS); do \
     5.8 +	@set -e; for subdir in $(SUBDIRS); do \
     5.9  		$(MAKE) -C $$subdir all; \
    5.10  	done;
    5.11  
     6.1 --- a/tools/ioemu/Makefile	Thu Dec 20 10:44:06 2007 +0000
     6.2 +++ b/tools/ioemu/Makefile	Thu Dec 20 13:16:21 2007 +0000
     6.3 @@ -89,7 +89,7 @@ install: all $(if $(BUILD_DOCS),install-
     6.4  #	done
     6.5  ifndef CONFIG_WIN32
     6.6  	mkdir -p "$(DESTDIR)$(datadir)/keymaps"
     6.7 -	for x in $(KEYMAPS); do \
     6.8 +	set -e; for x in $(KEYMAPS); do \
     6.9  		$(INSTALL_DATA) -m 644 $(SRC_PATH)/keymaps/$$x "$(DESTDIR)$(datadir)/keymaps"; \
    6.10  	done
    6.11  endif
    6.12 @@ -140,12 +140,12 @@ FILE = qemu-$(VERSION)
    6.13  tar:
    6.14  	rm -rf /tmp/$(FILE)
    6.15  	cp -r . /tmp/$(FILE)
    6.16 -	( cd /tmp ; tar zcvf ~/$(FILE).tar.gz $(FILE) --exclude CVS )
    6.17 +	cd /tmp && tar zcvf ~/$(FILE).tar.gz $(FILE) --exclude CVS
    6.18  	rm -rf /tmp/$(FILE)
    6.19  
    6.20  # generate a binary distribution
    6.21  tarbin:
    6.22 -	( cd / ; tar zcvf ~/qemu-$(VERSION)-i386.tar.gz \
    6.23 +	cd / && tar zcvf ~/qemu-$(VERSION)-i386.tar.gz \
    6.24  	$(bindir)/qemu \
    6.25  	$(bindir)/qemu-system-ppc \
    6.26  	$(bindir)/qemu-system-sparc \
    6.27 @@ -173,7 +173,7 @@ tarbin:
    6.28          $(datadir)/pxe-pcnet.bin \
    6.29  	$(docdir)/qemu-doc.html \
    6.30  	$(docdir)/qemu-tech.html \
    6.31 -	$(mandir)/man1/qemu.1 $(mandir)/man1/qemu-img.1 )
    6.32 +	$(mandir)/man1/qemu.1 $(mandir)/man1/qemu-img.1
    6.33  
    6.34  ifneq ($(wildcard .depend),)
    6.35  include .depend
     7.1 --- a/tools/ioemu/tests/Makefile	Thu Dec 20 10:44:06 2007 +0000
     7.2 +++ b/tools/ioemu/tests/Makefile	Thu Dec 20 13:16:21 2007 +0000
     7.3 @@ -91,7 +91,7 @@ hello-mipsel: hello-mips.c
     7.4  
     7.5  # XXX: find a way to compile easily a test for each arch
     7.6  test2:
     7.7 -	@for arch in i386 arm armeb sparc ppc mips mipsel; do \
     7.8 +	@set -e; for arch in i386 arm armeb sparc ppc mips mipsel; do \
     7.9             ../$${arch}-linux-user/qemu-$${arch} $${arch}/ls -l linux-test.c ; \
    7.10          done
    7.11  
     8.1 --- a/tools/libaio/Makefile	Thu Dec 20 10:44:06 2007 +0000
     8.2 +++ b/tools/libaio/Makefile	Thu Dec 20 13:16:21 2007 +0000
     8.3 @@ -25,9 +25,9 @@ tag-archive:
     8.4  
     8.5  create-archive: tag-archive
     8.6  	@rm -rf /tmp/$(NAME)
     8.7 -	@cd /tmp; cvs -Q -d $(CVSROOT) export -r$(CVSTAG) $(NAME) || echo GRRRrrrrr -- ignore [export aborted]
     8.8 +	@cd /tmp && cvs -Q -d $(CVSROOT) export -r$(CVSTAG) $(NAME) || echo GRRRrrrrr -- ignore [export aborted]
     8.9  	@mv /tmp/$(NAME) /tmp/$(NAME)-$(VERSION)
    8.10 -	@cd /tmp; tar czSpf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)
    8.11 +	@cd /tmp && tar czSpf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)
    8.12  	@rm -rf /tmp/$(NAME)-$(VERSION)
    8.13  	@cp /tmp/$(NAME)-$(VERSION).tar.gz .
    8.14  	@rm -f /tmp/$(NAME)-$(VERSION).tar.gz 
     9.1 --- a/tools/libxen/Makefile	Thu Dec 20 10:44:06 2007 +0000
     9.2 +++ b/tools/libxen/Makefile	Thu Dec 20 13:16:21 2007 +0000
     9.3 @@ -61,7 +61,7 @@ install: all
     9.4  	ln -sf libxenapi.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/libxenapi.so.$(MAJOR)
     9.5  	ln -sf libxenapi.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libxenapi.so
     9.6  	$(INSTALL_DATA) libxenapi.a $(DESTDIR)/usr/$(LIBDIR)
     9.7 -	for i in $(LIBXENAPI_HDRS); do \
     9.8 +	set -e; for i in $(LIBXENAPI_HDRS); do \
     9.9  	    $(INSTALL_DATA) $$i $(DESTDIR)/usr/include/xen/api; \
    9.10  	done
    9.11  
    10.1 --- a/tools/libxen/Makefile.dist	Thu Dec 20 10:44:06 2007 +0000
    10.2 +++ b/tools/libxen/Makefile.dist	Thu Dec 20 13:16:21 2007 +0000
    10.3 @@ -71,7 +71,7 @@ install: all
    10.4  	ln -sf libxenapi.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/libxenapi.so.$(MAJOR)
    10.5  	ln -sf libxenapi.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libxenapi.so
    10.6  	$(INSTALL_DATA) libxenapi.a $(DESTDIR)/usr/$(LIBDIR)
    10.7 -	for i in $(LIBXENAPI_HDRS); do \
    10.8 +	set -e; for i in $(LIBXENAPI_HDRS); do \
    10.9  	    $(INSTALL_DATA) $$i $(DESTDIR)/usr/include/xen/api; \
   10.10  	done
   10.11  
    11.1 --- a/tools/python/Makefile	Thu Dec 20 10:44:06 2007 +0000
    11.2 +++ b/tools/python/Makefile	Thu Dec 20 13:16:21 2007 +0000
    11.3 @@ -40,7 +40,7 @@ refresh-pot: $(I18NSRCFILES)
    11.4  		$(I18NSRCFILES)
    11.5  	sed -f remove-potcdate.sed < $(POTFILE) > $(POTFILE)-1
    11.6  	sed -f remove-potcdate.sed < $(POTFILE)-tmp > $(POTFILE)-2
    11.7 -	if cmp -s $(POTFILE)-1 $(POTFILE)-2; then \
    11.8 +	set -e; if cmp -s $(POTFILE)-1 $(POTFILE)-2; then \
    11.9  		rm -f $(POTFILE)-tmp $(POTFILE)-1 $(POTFILE)-2; \
   11.10  	else \
   11.11  		mv $(POTFILE)-tmp $(POTFILE); \
   11.12 @@ -48,7 +48,7 @@ refresh-pot: $(I18NSRCFILES)
   11.13  	fi
   11.14  
   11.15  refresh-po: $(POTFILE)
   11.16 -	for l in $(LINGUAS); do \
   11.17 +	set -e; for l in $(LINGUAS); do \
   11.18  		if $(MSGMERGE) $(PODIR)/$$l.po $(POTFILE) > $(PODIR)/$$l-tmp ; then \
   11.19  			mv -f $(PODIR)/$$l-tmp $(PODIR)/$$l.po ; \
   11.20  			echo "$(MSGMERGE) of $$l.po succeeded" ; \
   11.21 @@ -88,7 +88,7 @@ install-dtd: all
   11.22  	$(INSTALL_DATA) xen/xm/create.dtd $(DESTDIR)/usr/share/xen
   11.23  
   11.24  install-messages: all
   11.25 -	if which $(MSGFMT) >/dev/null ; then \
   11.26 +	set -e; if which $(MSGFMT) >/dev/null ; then \
   11.27  		mkdir -p $(DESTDIR)$(NLSDIR); \
   11.28  		for l in $(LINGUAS); do \
   11.29  			$(INSTALL_DIR) $(DESTDIR)$(NLSDIR)/$$l; \
    12.1 --- a/tools/security/Makefile	Thu Dec 20 10:44:06 2007 +0000
    12.2 +++ b/tools/security/Makefile	Thu Dec 20 13:16:21 2007 +0000
    12.3 @@ -51,10 +51,10 @@ install: all $(ACM_CONFIG_FILE)
    12.4  	$(INSTALL_DIR) $(DESTDIR)$(ACM_POLICY_DIR)
    12.5  	$(INSTALL_DATA) policies/$(ACM_SCHEMA) $(DESTDIR)$(ACM_POLICY_DIR)
    12.6  	$(INSTALL_DIR) $(DESTDIR)$(ACM_POLICY_DIR)/example
    12.7 -	for i in $(ACM_EXAMPLES); do \
    12.8 +	set -e; for i in $(ACM_EXAMPLES); do \
    12.9  		$(INSTALL_DATA) policies/example/$$i-$(ACM_POLICY_SUFFIX) $(DESTDIR)$(ACM_POLICY_DIR)/example/; \
   12.10  	done
   12.11 -	for i in $(ACM_DEF_POLICIES); do \
   12.12 +	set -e; for i in $(ACM_DEF_POLICIES); do \
   12.13  		$(INSTALL_DATA) policies/$$i-$(ACM_POLICY_SUFFIX) $(DESTDIR)$(ACM_POLICY_DIR); \
   12.14  	done
   12.15  	$(INSTALL_DIR) $(DESTDIR)$(ACM_SCRIPT_DIR)
    13.1 --- a/tools/vtpm/Makefile	Thu Dec 20 10:44:06 2007 +0000
    13.2 +++ b/tools/vtpm/Makefile	Thu Dec 20 13:16:21 2007 +0000
    13.3 @@ -49,7 +49,7 @@ mrproper:
    13.4  # Create vtpm and TPM emulator dirs
    13.5  # apply patches for 1) used as dom0 tpm driver 2) used as vtpm device instance
    13.6  $(TPM_EMULATOR_DIR): $(TPM_EMULATOR_TARFILE) tpm_emulator.patch 
    13.7 -	if [ "$(BUILD_EMULATOR)" = "y" ]; then \
    13.8 +	set -e; if [ "$(BUILD_EMULATOR)" = "y" ]; then \
    13.9  		rm -rf $(TPM_EMULATOR_DIR); \
   13.10  		tar -xzf $(TPM_EMULATOR_TARFILE); \
   13.11  		mv $(TPM_EMULATOR_NAME) $(TPM_EMULATOR_DIR); \
   13.12 @@ -59,20 +59,20 @@ mrproper:
   13.13  
   13.14  $(VTPM_DIR): $(TPM_EMULATOR_TARFILE) vtpm.patch
   13.15  	rm -rf $(VTPM_DIR)
   13.16 -	tar -xzf $(TPM_EMULATOR_TARFILE);  
   13.17 -	mv $(TPM_EMULATOR_NAME) $(VTPM_DIR); 
   13.18 +	tar -xzf $(TPM_EMULATOR_TARFILE)
   13.19 +	mv $(TPM_EMULATOR_NAME) $(VTPM_DIR)
   13.20  
   13.21 -	cd $(VTPM_DIR); \
   13.22 +	set -e; cd $(VTPM_DIR); \
   13.23  	patch -p1 < ../tpm_emulator.patch; \
   13.24  	patch -p1 < ../vtpm.patch
   13.25  
   13.26  orig: $(TPM_EMULATOR_TARFILE)
   13.27  	mkdir $(ORIG_DIR);
   13.28 -	cd $(ORIG_DIR); \
   13.29 +	set -e; cd $(ORIG_DIR); \
   13.30  	tar -xzf ../$(TPM_EMULATOR_TARFILE);
   13.31  
   13.32  updatepatches: clean orig
   13.33 -	if [ "$(BUILD_EMULATOR)" = "y" ]; then \
   13.34 +	set -e; if [ "$(BUILD_EMULATOR)" = "y" ]; then \
   13.35  		find $(TPM_EMULATOR_DIR) -name "*.orig" -print | xargs rm -f; \
   13.36  		mv tpm_emulator.patch tpm_emulator.patch.old; \
   13.37  		diff -uprN orig/$(TPM_EMULATOR_NAME) $(TPM_EMULATOR_DIR) > tpm_emulator.patch || true; \
   13.38 @@ -83,7 +83,7 @@ updatepatches: clean orig
   13.39  
   13.40  .PHONY: build_sub
   13.41  build_sub:
   13.42 -	@if [ -e $(GMP_HEADER) ]; then \
   13.43 +	set -e; @if [ -e $(GMP_HEADER) ]; then \
   13.44  		$(MAKE) -C $(VTPM_DIR); \
   13.45  		if [ "$(BUILD_EMULATOR)" = "y" ]; then \
   13.46  			$(MAKE) -C $(TPM_EMULATOR_DIR); \
    14.1 --- a/tools/xm-test/ramdisk/Makefile.am	Thu Dec 20 10:44:06 2007 +0000
    14.2 +++ b/tools/xm-test/ramdisk/Makefile.am	Thu Dec 20 13:16:21 2007 +0000
    14.3 @@ -59,8 +59,8 @@ endif
    14.4  	cp configs/buildroot-$(BR_ARCH) $(BR_SRC)/.config
    14.5  	cp configs/busybox $(BR_SRC)/package/busybox/busybox.config
    14.6  	cp configs/uClibc $(BR_SRC)/toolchain/uClibc/uClibc.config
    14.7 -	(for i in patches/buildroot/*.patch; do \
    14.8 -	  cd $(BR_SRC) && patch -p1 <../$$i && cd ..; done )
    14.9 +	set -e; for i in patches/buildroot/*.patch; do \
   14.10 +	  cd $(BR_SRC) && patch -p1 <../$$i && cd ..; done
   14.11  	cd $(BR_SRC) && make oldconfig && make
   14.12  
   14.13  $(XMTEST_VER_IMG): $(BR_IMG)
   14.14 @@ -69,8 +69,8 @@ endif
   14.15  	-[ -e "$(BLKDRV)" ] && cp $(BLKDRV) skel/modules
   14.16  	-[ -e "$(NETDRV)" ] && cp $(NETDRV) skel/modules
   14.17  	-[ -e "$(PKTDRV)" ] && cp $(PKTDRV) skel/modules
   14.18 -	(cd skel; tar cf - .) \
   14.19 -		| (cd $(BR_SRC)/$(BR_ROOT); tar xvf -)
   14.20 +	(cd skel && tar cf - .) \
   14.21 +		| (cd $(BR_SRC)/$(BR_ROOT) && tar xvf -)
   14.22  	cd $(BR_SRC) && make
   14.23  	cp $(BR_IMG) $(XMTEST_VER_IMG)
   14.24  
    15.1 --- a/xen/Makefile	Thu Dec 20 10:44:06 2007 +0000
    15.2 +++ b/xen/Makefile	Thu Dec 20 13:16:21 2007 +0000
    15.3 @@ -141,13 +141,13 @@ endef
    15.4  
    15.5  .PHONY: _TAGS
    15.6  _TAGS: 
    15.7 -	rm -f TAGS; \
    15.8 +	set -e; rm -f TAGS; \
    15.9  	$(call set_exuberant_flags,etags); \
   15.10  	$(all_sources) | xargs etags $$exuberant_flags -a
   15.11  
   15.12  .PHONY: _tags
   15.13  _tags: 
   15.14 -	rm -f tags; \
   15.15 +	set -e; rm -f tags; \
   15.16  	$(call set_exuberant_flags,ctags); \
   15.17  	$(all_sources) | xargs ctags $$exuberant_flags -a
   15.18  
    16.1 --- a/xen/include/Makefile	Thu Dec 20 10:44:06 2007 +0000
    16.2 +++ b/xen/include/Makefile	Thu Dec 20 13:16:21 2007 +0000
    16.3 @@ -37,7 +37,7 @@ endif
    16.4  all: $(headers-y)
    16.5  
    16.6  compat/%.h: compat/%.i Makefile
    16.7 -	id=_$$(echo $@ | tr '[:lower:]-/.' '[:upper:]___'); \
    16.8 +	set -e; id=_$$(echo $@ | tr '[:lower:]-/.' '[:upper:]___'); \
    16.9  	echo "#ifndef $$id" >$@.new; \
   16.10  	echo "#define $$id" >>$@.new; \
   16.11  	echo "#include <xen/compat.h>" >>$@.new; \