STXInstaller.st
changeset 5 16cff74f42b0
parent 4 8b68fdf7c870
child 6 e08461c725fd
--- a/STXInstaller.st	Tue Sep 03 15:16:32 1996 +0200
+++ b/STXInstaller.st	Mon Sep 09 23:53:16 1996 +0200
@@ -1,6 +1,7 @@
 Object subclass:#STXInstaller
-	instanceVariableNames:'stxLibDir stxBinDir actionPercentageHolder actionTextHolder
-		commandTraceView'
+	instanceVariableNames:'stxLibDir stxBinDir installDocFiles installSourceFiles
+		installSTCFiles installGoodyFiles actionPercentageHolder
+		actionTextHolder commandTraceView resources'
 	classVariableNames:'LastBinDir LastLibDir'
 	poolDictionaries:''
 	category:'eXept-tools'
@@ -76,47 +77,69 @@
     msg := #('ST/X Installation' '' 'copying:' '' 'to:' '') asStringCollection.
 
     fileSpec := #(
-                "/ name                        destination   subDir  required mode      
+                "/ name                        destination   subDir    required mode      
+                ( 'projects/smalltalk/smalltalk'     #bin     nil        true  '755' )
+                ( 'projects/smalltalk/include'       #lib     nil        true  '644' )
+                ( 'projects/smalltalk/*.rc'          #lib     nil        false '644' )
+                ( 'projects/smalltalk/patches'       #lib     nil        true  '644' )
+                ( 'projects/smalltalk/bitmaps'       #lib     nil        true  '644' )
+                ( 'projects/smalltalk/resources'     #lib     nil        true  '644' )
+                ( 'projects/smalltalk/lib'           #lib     nil        true  '644' )
+    ).
 
-                ( 'stc/stc'                         #bin     nil  false '755' )
-                ( 'rules/stmkmp'                    #bin     nil  false '755' )
-                ( 'rules/stmkmf'                    #bin     nil  false '755' )
-                ( 'projects/smalltalk/smalltalk'    #bin     nil  true  '755' )
+    installDocFiles ifTrue:[
+        fileSpec := fileSpec , #(
+                ( 'doc'                              #lib     nil        false '644' )
+        ).
+    ].
+
+    installSTCFiles ifTrue:[
+        fileSpec := fileSpec , #(
+                ( 'stc/stc'                                  #bin     nil        false '755' )
+                ( 'rules/stmkmp'                             #bin     nil        false '755' )
+                ( 'rules/stmkmf'                             #bin     nil        false '755' )
+                ( 'include'                                  #lib     nil        true  '644' )
+                ( 'configurations'                           #lib     nil        false '644' )
+                ( 'rules'                                    #lib     nil        false '644' )
+
+                ( 'support/VGL/vogl/src/libvogl.*'           #lib     'lib'      false '644' )
+                ( 'support/VGL/vogl/src/*.h'                 #lib     'include'  false '644' )
+                ( 'support/DLD/dld-3.2.5/libdld.*'           #lib     'lib'      false '644' )
+                ( 'goodies/persistency/db-1.6/PORT/libdb.*'  #lib     'lib'      false '644' )
 
-                ( 'librun/librun.a'                 #lib     'lib'    false '644' )
-                ( 'libbasic/libbasic.o'             #lib     'lib'    false '644' )
-                ( 'libbasic2/libbasic2.o'           #lib     'lib'    false '644' )
-                ( 'libbasic3/libbasic3.o'           #lib     'lib'    false '644' )
-                ( 'libcomp/libcomp.o'               #lib     'lib'    false '644' )
-                ( 'libview/libview.o'               #lib     'lib'    false '644' )
-                ( 'libview2/libview2.o'             #lib     'lib'    false '644' )
-                ( 'libwidg/libwidg.o'               #lib     'lib'    false '644' )
-                ( 'libwidg2/libwidg2.o'             #lib     'lib'    false '644' )
-                ( 'libwidg3/libwidg3.o'             #lib     'lib'    false '644' )
-                ( 'libsnmp/libsnmp.o'               #lib     'lib'    false '644' )
-                ( 'libtable/libtable.o'             #lib     'lib'    false '644' )
-                ( 'libtool/libtool.o'               #lib     'lib'    false '644' )
-                ( 'libxt/libxt.o'                   #lib     'lib'    false '644' )
-                ( 'librt/librt.o'                   #lib     'lib'    false '644' )
-                ( 'support/VGL/vogl/src/libvogl.a'  #lib     'lib'        false '644' )
-                ( 'support/VGL/vogl/src/*.h'        #lib     'include'    false '644' )
-                ( 'support/DLD/dld-3.2.5/libdld.a'  #lib     'lib'        false '644' )
+                ( 'librun/librun.*'                          #lib     'lib'      false '644' )
+                ( 'libbasic/libbasic.*'                      #lib     'lib'      false '644' )
+                ( 'libbasic2/libbasic2.*'                    #lib     'lib'      false '644' )
+                ( 'libbasic3/libbasic3.*'                    #lib     'lib'      false '644' )
+                ( 'libcomp/libcomp.*'                        #lib     'lib'      false '644' )
+                ( 'libview/libview.*'                        #lib     'lib'      false '644' )
+                ( 'libview2/libview2.*'                      #lib     'lib'      false '644' )
+                ( 'libwidg/libwidg.*'                        #lib     'lib'      false '644' )
+                ( 'libwidg2/libwidg2.*'                      #lib     'lib'      false '644' )
+                ( 'libwidg3/libwidg3.*'                      #lib     'lib'      false '644' )
+                ( 'libsnmp/libsnmp.*'                        #lib     'lib'      false '644' )
+                ( 'contrib/libPVM/libPVM.*'                  #lib     'lib'      false '644' )
+                ( 'goodies/persistency/libdbase.*'           #lib     'lib'      false '644' )
+                ( 'libtable/libtable.*'                      #lib     'lib'      false '644' )
+                ( 'libtool/libtool.*'                        #lib     'lib'      false '644' )
+                ( 'libxt/libxt.*'                            #lib     'lib'      false '644' )
+                ( 'librt/librt.*'                            #lib     'lib'      false '644' )
+        ).
+    ].
 
-                ( 'projects/smalltalk/*.rc'         #lib   nil    false '644' )
-                ( 'projects/smalltalk/patches'      #lib   nil    true  '644' )
+    installGoodyFiles ifTrue:[
+        fileSpec := fileSpec , #(
+                ( 'goodies/*.st'                             #lib     'goodies'  false '644' )
+                ( 'goodies/*.chg'                            #lib     'goodies'  false '644' )
+                ( 'goodies/rdoit/rdoit'                      #bin     nil        false '755' )
+        ).
+    ].
 
-                ( 'projects/smalltalk/bitmaps'      #lib nil    true  '644' )
-                ( 'doc'                             #lib nil    false '644' )
-                ( 'projects/smalltalk/include'      #lib nil    true  '644' )
-                ( 'projects/smalltalk/resources'    #lib nil    true  '644' )
-                ( 'projects/smalltalk/source'       #lib nil    true  '644' )
-                ( 'configurations'                  #lib nil    false '644' )
-                ( 'rules'                           #lib nil    false '644' )
-
-                ( 'goodies/*.st'                    #lib 'goodies'    false '644' )
-                ( 'goodies/*.chg'                   #lib 'goodies'    false '644' )
-                ( 'goodies/rdoit/rdoit'             #bin nil          false '755' )
-              ).
+    installSourceFiles ifTrue:[
+        fileSpec := fileSpec , #(
+                ( 'projects/smalltalk/source'                #lib     nil        true  '644' )
+        ).
+    ].
 
     filesToCopy := OrderedCollection new.
 
@@ -295,6 +318,7 @@
 
     |d cm l green dark img
      stxLibDirHolder stxBinDirHolder
+     installDocHolder installSourceHolder installSTCHolder installGoodiesHolder
     |
 
     LastLibDir isNil ifTrue:[
@@ -306,6 +330,10 @@
 
     stxLibDirHolder := LastLibDir asValue.
     stxBinDirHolder := LastBinDir asValue.
+    installDocHolder := true asValue.
+    installSourceHolder := true asValue.
+    installSTCHolder := true asValue.
+    installGoodiesHolder := true asValue.
 
     Screen current hasColors ifTrue:[
         green := (Color red:0 green:80 blue:20) "darkened".
@@ -357,6 +385,39 @@
 
     (d componentAt:'libraryBox.label') backgroundColor:dark; foregroundColor:Color white.
 
+    d addVerticalSpace.
+    d addHorizontalLine.
+    d addVerticalSpace.
+
+    (d addTextLabel:('required:'))
+        adjust:#left; foregroundColor:Color white backgroundColor:dark.
+
+    d leftIndent:35.
+    (d addTextLabel:('binaries (approx. 10 Mb)'))
+        adjust:#left; foregroundColor:Color white backgroundColor:dark.
+    (d addTextLabel:('libraries (approx. 10 Mb)'))
+        adjust:#left; foregroundColor:Color white backgroundColor:dark.
+    d leftIndent:0.
+
+    d addVerticalSpace.
+    d addHorizontalLine.
+    d addVerticalSpace.
+
+    (d addTextLabel:('optional:'))
+        adjust:#left; foregroundColor:Color white backgroundColor:dark.
+
+    (d addCheckBox:('doc files (+8 Mb)') on:installDocHolder)
+        labelView foregroundColor:Color white backgroundColor:dark.
+    (d addCheckBox:('smalltalk source files (+12 Mb)') on:installSourceHolder)
+        labelView foregroundColor:Color white backgroundColor:dark.
+    (d addCheckBox:('goodies (+0.5 Mb)') on:installGoodiesHolder)
+        labelView foregroundColor:Color white backgroundColor:dark.
+    (d addCheckBox:('stc & support files (+2 Mb)') on:installSTCHolder)
+        labelView foregroundColor:Color white backgroundColor:dark.
+
+    d addVerticalSpace.
+    d addHorizontalLine.
+
     d addAbortButton; addOkButtonLabelled:'install'.
     d extent:400@300.
 
@@ -366,6 +427,10 @@
     d accepted ifTrue:[
         stxLibDir := LastLibDir := stxLibDirHolder value.
         stxBinDir := LastBinDir := stxBinDirHolder value.
+        installDocFiles := installDocHolder value.
+        installSourceFiles := installSourceHolder value.
+        installSTCFiles := installSTCHolder value.
+        installGoodyFiles := installGoodiesHolder value.
         d destroy.
         ^ true
     ].
@@ -455,8 +520,9 @@
 open
     self askAndInstall.
 
-    "Created: 17.7.1996 / 14:37:14 / cg"
-    "Modified: 18.7.1996 / 18:26:20 / cg"
+    "
+     STXInstaller open
+    "
 !
 
 postInstall