install:  New target that installs shared modules in
	$exec_prefix/lib/python$VERSION/site-packages by default.
diff --git a/Misc/Makefile.pre.in b/Misc/Makefile.pre.in
index a8db764..31d491d 100644
--- a/Misc/Makefile.pre.in
+++ b/Misc/Makefile.pre.in
@@ -149,6 +149,7 @@
 LIBDEST=	$(SCRIPTDIR)/python$(VERSION)
 INCLUDEPY=	$(INCLUDEDIR)/python$(VERSION)
 LIBP=		$(exec_installdir)/lib/python$(VERSION)
+DESTSHARED=	$(BINLIBDEST)/site-packages
 
 LIBPL=		$(LIBP)/config
 
@@ -164,6 +165,13 @@
 
 ADDOBJS=	$(LIBPL)/python.o config.o
 
+# Portable install script (configure doesn't always guess right)
+INSTALL=	$(LIBPL)/install-sh -c
+# Shared libraries must be installed with executable mode on some systems;
+# rather than figuring out exactly which, we always give them executable mode.
+# Also, making them read-only seems to be a good idea...
+INSTALL_SHARED=	${INSTALL} -m 555
+
 # === Fixed rules ===
 
 # Default target.  This builds shared libraries only
@@ -182,6 +190,15 @@
 		 $(LINKPATH) $(BASELIB) $(MODLIBS) $(LIBS) $(SYSLIBS) \
 		 -o $(TARGET)
 
+install:	sharedmods
+		if test ! -d $(DESTSHARED) ; then \
+			mkdir $(DESTSHARED) ; else true ; fi
+		-for i in X $(SHAREDMODS); do \
+			if test $$i != X; \
+			then $(INSTALL_SHARED) $$i $(DESTSHARED)/$$i; \
+			fi; \
+		done
+
 # Build the library containing our extension modules
 lib.a:		$(MODOBJS)
 		-rm -f lib.a