Index: python-occ-0.4/src/setup.py
===================================================================
--- python-occ-0.4.orig/src/setup.py	2010-09-17 13:46:14.000000000 +0200
+++ python-occ-0.4/src/setup.py	2010-09-17 13:48:55.000000000 +0200
@@ -104,7 +104,20 @@
         environment.OCC_LIB = elem.split('--with-occ-lib=')[1]
         sys.argv.remove(elem)
         break
+
+for elem in sys.argv:
+    if elem.startswith('--with-extra-occ-lib='):
+        environment.EXTRA_OCC_LIB = elem.split('--with-extra-occ-lib=')[1]
+        sys.argv.remove(elem)
+        break
     
+#Check whether the --with-smesh-include option is passed
+for elem in sys.argv:
+    if elem.startswith('--with-smesh-include='):
+        environment.SALOME_SMESH_INC = elem.split('--with-smesh-include=')[1]
+        sys.argv.remove(elem)
+        break
+
 #Check whether the --with-smesh-lib option is passed
 for elem in sys.argv:
     if elem.startswith('--with-smesh-lib='):
@@ -112,6 +125,13 @@
         sys.argv.remove(elem)
         break
     
+#Check whether the --with-geom-include option is passed
+for elem in sys.argv:
+    if elem.startswith('--with-geom-include='):
+        environment.SALOME_GEOM_INC = elem.split('--with-geom-include=')[1]
+        sys.argv.remove(elem)
+        break
+
 #Check whether the --with-geom-lib option is passed
 for elem in sys.argv:
     if elem.startswith('--with-geom-lib='):
@@ -131,6 +151,18 @@
         print 'no'
         return False
 
+def check_occ_extra_lib(library):
+    ''' Find extra OCC shared library
+    '''
+    print 'Checking extra OCC %s library ...'%library,
+    found = glob.glob(os.path.join(environment.EXTRA_OCC_LIB,'*%s*'%library))
+    if len(found)>0:
+        print 'yes'
+        return True
+    else:
+        print 'no'
+        return False
+
 def check_salomegeom_lib(library):
     ''' Find salomegeometry shared library
     '''
@@ -297,15 +329,15 @@
     init_fp = open(os.path.join(init_directory,'__init__.py'),'w')
     #
     # if it is 'all_in_one' build, then the __init__.py script sets the env CSF_GraphicShr:
-    #
-    if ALL_IN_ONE and sys.platform=='win32':
-        init_fp.write('import os\n')
-        init_fp.write('import sys\n')
+    #
+    if ALL_IN_ONE and sys.platform=='win32':
+        init_fp.write('import os\n')
+        init_fp.write('import sys\n')
         init_fp.write("os.environ['CSF_GraphicShr'] = os.path.join(__path__[0],'TKOpenGl.dll')\n")
     #
     # Include Version number
     #
-    init_fp.write("VERSION='%s'\n"%environment.VERSION)
+    init_fp.write("VERSION='%s'\n"%environment.VERSION)
     init_fp.write('__all__=[')
     for module_tuple in Modules.MODULES:
         module_name = module_tuple[0]
@@ -327,24 +359,29 @@
 #
 # OpenCascade libs
 #
-libraries = ['BinLPlugin', 'BinPlugin', 'BinXCAFPlugin', 'FWOSPlugin', 'mscmd', 'PTKernel',\
+libraries = ['BinLPlugin', 'BinPlugin', 'BinXCAFPlugin', 'FWOSPlugin', 'PTKernel',\
              'StdLPlugin', 'StdPlugin', 'TKAdvTools', 'TKBin', 'TKBinL', 'TKBinTObj', 'TKBinXCAF',\
-             'TKBO', 'TKBool', 'TKBRep', 'TKCAF', 'TKCDF', 'TKCDLFront', 'TKCPPClient', 'TKCPPExt',\
-             'TKCPPIntExt', 'TKCPPJini', 'TKCSFDBSchema', 'TKDCAF', 'TKDraw', 'TKernel',\
-             'TKFeat', 'TKFillet', 'TKG2d', 'TKG3d', 'TKGeomAlgo', 'TKGeomBase', 'TKHLR', 'TKIDLFront',\
+             'TKBO', 'TKBool', 'TKBRep', 'TKCAF', 'TKCDF', 'TKCDLFront-6.3.0', 'TKCPPClient-6.3.0', 'TKCPPExt-6.3.0',\
+             'TKCPPIntExt-6.3.0', 'TKCPPJini-6.3.0', 'TKCSFDBSchema-6.3.0', 'TKernel',\
+             'TKFeat', 'TKFillet', 'TKG2d', 'TKG3d', 'TKGeomAlgo', 'TKGeomBase', 'TKHLR', 'TKIDLFront-6.3.0',\
              'TKIGES', 'TKjcas','TKLCAF', 'TKMath', 'TKMesh', 'TKMeshVS', 'TKNIS', 'TKOffset',\
              'TKOpenGl', 'TKPCAF', 'TKPLCAF', 'TKPrim', 'TKPShape', 'TKService', 'TKShapeSchema',\
              'TKShHealing', 'TKStdLSchema', 'TKStdSchema', 'TKSTEP', 'TKSTEP209', 'TKSTEPAttr',\
-             'TKSTEPBase', 'TKSTL', 'TKTCPPExt', 'TKTObj', 'TKTObjDRAW', 'TKTopAlgo', 'TKTopTest',\
-             'TKV2d', 'TKV3d', 'TKViewerTest', 'TKVRML', 'TKWOK', 'TKWOKTcl', 'TKXCAF', 'TKXCAFSchema',\
-             'TKXDEDRAW', 'TKXDEIGES', 'TKXDESTEP', 'TKXMesh', 'TKXml', 'TKXmlL', 'TKXmlTObj',\
-             'TKXmlXCAF', 'TKXSBase', 'TKXSDRAW', 'XCAFPlugin',\
+             'TKSTEPBase', 'TKSTL', 'TKTCPPExt-6.3.0', 'TKTObj', 'TKTopAlgo',\
+             'TKV2d', 'TKV3d', 'TKVRML', 'TKWOK-6.3.0', 'TKWOKTcl-6.3.0', 'TKXCAF', 'TKXCAFSchema',\
+             'TKXDEIGES', 'TKXDESTEP', 'TKXMesh', 'TKXml', 'TKXmlL', 'TKXmlTObj',\
+             'TKXmlXCAF', 'TKXSBase', 'XCAFPlugin',\
              'XmlLPlugin', 'XmlPlugin', 'XmlXCAFPlugin']
+extra_libraries = ['mscmd', 'TKDCAF', 'TKDraw', 'TKTObjDRAW', 'TKTopTest',\
+             'TKViewerTest', 'TKXDEDRAW', 'TKXSDRAW']
 # Find the lib in OCC_LIB path and add it to the LIBS list
 LIBS = []
 for library in libraries:
     if check_occ_lib(library):
         LIBS.append(library)
+for library in extra_libraries:
+    if check_occ_extra_lib(library):
+        LIBS.append(library)
     
 #
 # Salome Geom libs
@@ -356,7 +393,7 @@
     for geom_library in GEOM_LIBS:
         if not check_salomegeom_lib(geom_library):
             print 'lib%s not found (part of salomegeom). pythonOCC compilation aborted'%geom_library
-            sys.exit(0)
+            sys.exit(0)
 #
 # Salome SMESH libs
 #
@@ -380,7 +417,7 @@
             module_extension = Extension("OCC._%s"%module[0],
                             sources = [SWIG_source_file],
                             include_dirs=[environment.OCC_INC,environment.SWIG_FILES_PATH_MODULAR], #for TopOpeBRep_tools.hxx
-                            library_dirs=[environment.OCC_LIB,environment.SALOME_GEOM_LIB,environment.SALOME_SMESH_LIB],
+                            library_dirs=[environment.OCC_LIB,environment.EXTRA_OCC_LIB,environment.SALOME_GEOM_LIB,environment.SALOME_SMESH_LIB],
                             define_macros= environment.DEFINE_MACROS,
                             swig_opts = environment.SWIG_OPTS,
                             libraries = LIBS,
@@ -396,7 +433,7 @@
                                        os.path.join(os.getcwd(),'wrapper','Visualization','NISDisplay3d.cpp'),
                                        ],
                             include_dirs=[environment.OCC_INC,os.path.join(os.getcwd(),'wrapper','Visualization')],
-                            library_dirs=[environment.OCC_LIB,environment.SALOME_GEOM_LIB,environment.SALOME_SMESH_LIB],
+                            library_dirs=[environment.OCC_LIB,environment.EXTRA_OCC_LIB,environment.SALOME_GEOM_LIB,environment.SALOME_SMESH_LIB],
                             define_macros= environment.DEFINE_MACROS,
                             swig_opts = environment.SWIG_OPTS,
                             libraries = LIBS,
@@ -407,7 +444,7 @@
         extension.append(Extension("OCC._Misc",
                             sources = [os.path.join(os.getcwd(),'wrapper','Misc','Misc.i')],
                             include_dirs=[environment.OCC_INC],
-                            library_dirs=[environment.OCC_LIB,environment.SALOME_GEOM_LIB,environment.SALOME_SMESH_LIB],
+                            library_dirs=[environment.OCC_LIB,environment.EXTRA_OCC_LIB,environment.SALOME_GEOM_LIB,environment.SALOME_SMESH_LIB],
                             define_macros= environment.DEFINE_MACROS,
                             swig_opts = environment.SWIG_OPTS,
                             libraries = LIBS,
@@ -425,7 +462,7 @@
             module_extension = Extension("OCC._%s"%module[0],
                         sources = [SWIG_source_file],
                         include_dirs=[environment.OCC_INC,environment.SALOME_GEOM_INC,environment.SWIG_FILES_PATH_MODULAR],
-                        library_dirs=[environment.OCC_LIB,environment.SALOME_GEOM_LIB,environment.SALOME_SMESH_LIB],
+                        library_dirs=[environment.OCC_LIB,environment.EXTRA_OCC_LIB,environment.SALOME_GEOM_LIB,environment.SALOME_SMESH_LIB],
                         define_macros= environment.DEFINE_MACROS,
                         swig_opts = environment.SWIG_OPTS,
                         libraries = LIBS + GEOM_LIBS,
@@ -433,7 +470,7 @@
                         extra_link_args = environment.ELA,
                         )
             extension.append(module_extension)
-    
+    
     #
     # Salome SMESH extensions
     #
@@ -448,30 +485,30 @@
             module_extension = Extension("OCC._%s"%module[0],
                         sources = [SWIG_source_file],
                         include_dirs=INCLUDE_DIRS,
-                        library_dirs=[environment.OCC_LIB,environment.SALOME_GEOM_LIB,environment.SALOME_SMESH_LIB],
+                        library_dirs=[environment.OCC_LIB,environment.EXTRA_OCC_LIB,environment.SALOME_GEOM_LIB,environment.SALOME_SMESH_LIB],
                         define_macros= environment.DEFINE_MACROS,
                         swig_opts = environment.SWIG_OPTS,
                         libraries = LIBS + SMESH_LIBS,
                         extra_compile_args = environment.ECA,
                         extra_link_args = environment.ELA,
                         )
-            extension.append(module_extension)
+            extension.append(module_extension)
     
     NB_EXT = len(extension)
     
     KARGS = {"ext_modules":extension}
     #
     # SETUP
-    #
-    if ALL_IN_ONE and sys.platform=='win32':
-        package_name = "pythonOCC-all_in_one"
-    else:
+    #
+    if ALL_IN_ONE and sys.platform=='win32':
+        package_name = "pythonOCC-all_in_one"
+    else:
         package_name = "pythonOCC"
     #
     # Create __init__ script
     #
     Create__init__()
-
+
     setup(cmdclass={'build_ext': build_ext},
           name = package_name,
           license = "GNU General Public License v3",
