Added an "optional" directive, that will include a module if it is available
but not complain if it isn't (giving an ImportError when the frozen code is run).
diff --git a/Mac/Tools/macfreeze/directives.py b/Mac/Tools/macfreeze/directives.py
index e233745..16b7879 100644
--- a/Mac/Tools/macfreeze/directives.py
+++ b/Mac/Tools/macfreeze/directives.py
@@ -18,6 +18,7 @@
 def findfreezedirectives(program):
 	extra_modules = []
 	exclude_modules = []
+	optional_modules = []
 	extra_path = []
 	progdir, filename = os.path.split(program)
 	fp = open(program)
@@ -30,10 +31,12 @@
 				extra_modules.append(argument)
 			elif directive == 'exclude':
 				exclude_modules.append(argument)
+			elif directive == 'optional':
+				optional_modules.append(argument)
 			elif directive == 'path':
 				argument = os.path.join(progdir, argument)
 				extra_path.append(argument)
 			else:
 				print '** Unknown directive', line
-	return extra_modules, exclude_modules, extra_path
+	return extra_modules, exclude_modules, optional_modules, extra_path
 	
diff --git a/Mac/Tools/macfreeze/macmodulefinder.py b/Mac/Tools/macfreeze/macmodulefinder.py
index 0af0425..b19c86d 100644
--- a/Mac/Tools/macfreeze/macmodulefinder.py
+++ b/Mac/Tools/macfreeze/macmodulefinder.py
@@ -57,7 +57,7 @@
 	#
 	# search the main source for directives
 	#
-	extra_modules, exclude_modules, extra_path = \
+	extra_modules, exclude_modules, optional_modules, extra_path = \
 			directives.findfreezedirectives(program)
 	for m in extra_modules:
 		if os.sep in m:
@@ -84,7 +84,7 @@
 	#
 	# Tell the user about missing modules
 	#
-	maymiss = exclude_modules + MAC_MAYMISS_MODULES
+	maymiss = exclude_modules + optional_modules + MAC_MAYMISS_MODULES
 	for m in modfinder.badmodules.keys():
 		if not m in maymiss:
 			if debug > 0: