Issue #18098: The deprecated OS X Build Applet.app fails to build on
OS X 10.8 systems because the Apple-deprecated QuickDraw headers have
been removed from Xcode 4.  Skip building it in this case.
diff --git a/Lib/plat-mac/EasyDialogs.py b/Lib/plat-mac/EasyDialogs.py
index 129cf2c..1d3edb3 100644
--- a/Lib/plat-mac/EasyDialogs.py
+++ b/Lib/plat-mac/EasyDialogs.py
@@ -243,8 +243,15 @@
 
 
 
+# The deprecated Carbon QuickDraw APIs are no longer available as of
+# OS X 10.8.  Raise an ImportError here in that case so that callers
+# of EasyDialogs, like BuildApplet, will do the right thing.
 
-screenbounds = Qd.GetQDGlobalsScreenBits().bounds
+try:
+    screenbounds = Qd.GetQDGlobalsScreenBits().bounds
+except AttributeError:
+    raise ImportError("QuickDraw APIs not available")
+
 screenbounds = screenbounds[0]+4, screenbounds[1]+4, \
     screenbounds[2]-4, screenbounds[3]-4
 
diff --git a/Mac/Makefile.in b/Mac/Makefile.in
index 6e60b2a..a3e00b2 100644
--- a/Mac/Makefile.in
+++ b/Mac/Makefile.in
@@ -202,15 +202,22 @@
 	cd IDLE && make install
 
 install_BuildApplet:
-	$(RUNSHARED) @ARCH_RUN_32BIT@ $(BUILDPYTHON) $(srcdir)/scripts/BuildApplet.py \
-		--destroot "$(DESTDIR)" \
-		--python=$(prefix)/Resources/Python.app/Contents/MacOS/Python \
-		--output "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app" \
-		$(srcdir)/scripts/BuildApplet.py
-ifneq ($(LIPO_32BIT_FLAGS),)
-	rm "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app/Contents/MacOS/Python"
-	lipo $(LIPO_32BIT_FLAGS) -output "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app/Contents/MacOS/Python" $(BUILDPYTHON)
-endif   
+	if ! $(RUNSHARED) @ARCH_RUN_32BIT@ $(BUILDPYTHON) \
+			-c 'import EasyDialogs' 2>/dev/null ; then \
+		echo "EasyDialogs not available in this Python - skipping Build Applet.app" ; \
+	else \
+		$(RUNSHARED) @ARCH_RUN_32BIT@ $(BUILDPYTHON) $(srcdir)/scripts/BuildApplet.py \
+			--destroot "$(DESTDIR)" \
+			--python=$(prefix)/Resources/Python.app/Contents/MacOS/Python \
+			--output "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app" \
+			$(srcdir)/scripts/BuildApplet.py && \
+		if [ -n "$(LIPO_32BIT_FLAGS)" ] ; then \
+			rm "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app/Contents/MacOS/Python" && \
+			lipo $(LIPO_32BIT_FLAGS) \
+				-output "$(DESTDIR)$(PYTHONAPPSDIR)/Build Applet.app/Contents/MacOS/Python" \
+				$(BUILDPYTHON) ; \
+		fi \
+	fi
 
 MACLIBDEST=$(LIBDEST)/plat-mac
 MACTOOLSDEST=$(prefix)/Mac/Tools
diff --git a/Mac/README b/Mac/README
index 555b7ca..0a07b5e 100644
--- a/Mac/README
+++ b/Mac/README
@@ -209,9 +209,11 @@
 through PythonLauncher's preferences dialog.
 
 "BuildApplet.app" creates an applet from a Python script. Drop the script on it
-and out comes a full-featured MacOS application. There is much more to this,
-to be supplied later. Some useful (but outdated) info can be found in
-Mac/Demo.
+and out comes a full-featured MacOS application.  BuildApplet.app is now
+deprecated and has been removed in Python 3.  As of OS X 10.8, Xcode 4 no
+longer supplies the headers for the deprecated QuickDraw APIs used by
+the EasyDialogs module making BuildApplet unusable as an app.  It will
+not be built by the Mac/Makefile in this case.
 
 The commandline scripts /usr/local/bin/python and pythonw can be used to run
 non-GUI and GUI python scripts from the command line, respectively.
diff --git a/Misc/NEWS b/Misc/NEWS
index 7e901f7..8804533 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -37,6 +37,13 @@
   the default for linking if LDSHARED is not also overriden.  This restores
   Distutils behavior introduced in 2.7.3 and inadvertently dropped in 2.7.4.
 
+Build
+-----
+
+- Issue #18098: The deprecated OS X Build Applet.app fails to build on
+  OS X 10.8 systems because the Apple-deprecated QuickDraw headers have
+  been removed from Xcode 4.  Skip building it in this case.
+
 IDLE
 ----
 
diff --git a/configure b/configure
index dc0dfd0..644e76c 100755
--- a/configure
+++ b/configure
@@ -2981,6 +2981,7 @@
 
 
 
+ARCH_RUN_32BIT=""
 
 UNIVERSAL_ARCHS="32-bit"
 
@@ -7996,7 +7997,6 @@
 esac
 
 
-ARCH_RUN_32BIT=""
 
 case $ac_sys_system/$ac_sys_release in
   Darwin/[01567]\..*)
diff --git a/configure.ac b/configure.ac
index 30f5bf4..4196bc0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -145,6 +145,7 @@
 AC_SUBST(UNIVERSALSDK)
 
 AC_SUBST(ARCH_RUN_32BIT)
+ARCH_RUN_32BIT=""
 
 UNIVERSAL_ARCHS="32-bit"
 AC_SUBST(LIPO_32BIT_FLAGS)
@@ -1801,7 +1802,6 @@
 esac
 
 
-ARCH_RUN_32BIT=""
 AC_SUBST(LIBTOOL_CRUFT)
 case $ac_sys_system/$ac_sys_release in
   Darwin/@<:@01567@:>@\..*)