--- a/imsp/Makefile.in
+++ b/imsp/Makefile.in
@@ -76,7 +76,7 @@ quantify: cyrus-imspd.quant
 $<
 
 install: cyrus-imspd
-	$(INSTALL) -s cyrus-imspd $(DESTDIR)/cyrus/usr/cyrus/bin/imspd
+	$(INSTALL) -D cyrus-imspd $(DESTDIR)/usr/sbin/cyrus-imspd
 
 cyrus-imspd: $(IMSPDOBJS) $(DEPLIBS)
 	$(CC) $(CFLAGS) $(LDFLAGS) -o cyrus-imspd $(IMSPDOBJS) $(DEPLIBS) $(LIBS)
--- a/Makefile.in
+++ b/Makefile.in
@@ -29,7 +29,7 @@ VPATH = @srcdir@
 SHELL = /bin/sh
 
 all::
-	@for d in  $(SUBDIRS); \
+	@set -e; for d in  $(SUBDIRS); \
 	do \
 		(cd $$d; echo "### Making" all "in" `pwd`;	\
 			$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) all;	\
@@ -37,11 +37,7 @@ all::
 	done
 
 install::
-	- mkdir ${DESTDIR}/cyrus
-	- mkdir ${DESTDIR}/cyrus/usr
-	- mkdir ${DESTDIR}/cyrus/usr/cyrus
-	- mkdir ${DESTDIR}/cyrus/usr/cyrus/bin
-	@for d in  $(SUBDIRS); \
+	@set -e; for d in  $(SUBDIRS); \
 	do \
 		(cd $$d; echo "### Making" install "in" `pwd`;	\
 			$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) install ;	\
@@ -66,7 +62,7 @@ distclean::
 	rm -f Makefile config.*
 
 depend::
-	@for d in  $(SUBDIRS); \
+	@set -e; for d in  $(SUBDIRS); \
 	do \
 		(cd $$d; echo "### Making" depend "in" `pwd`;	\
 			$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) depend ;	\
