--- a/STXInstaller.st Wed Apr 28 09:57:39 1999 +0200
+++ b/STXInstaller.st Sun May 02 13:40:15 1999 +0200
@@ -25,19 +25,27 @@
|dirs|
dirs := OrderedCollection new.
- dirs add:'/opt/smalltalk/' , self smalltalkRelease , '/bin'.
- dirs add:'/usr/local/bin'.
- dirs add:'/usr/bin'.
- dirs add:(Filename homeDirectory constructString:'bin').
- dirs add:((Filename homeDirectory
- construct:'stx')
- constructString:'bin').
- dirs add:'/tmp/stxbin'.
- ('/home' asFilename exists and:['/home' asFilename isDirectory]) ifTrue:[
- dirs add:'/home/stx/bin'.
- ].
- ('/home2' asFilename exists and:['/home2' asFilename isDirectory]) ifTrue:[
- dirs add:'/home2/stx/bin'.
+
+ OperatingSystem isMSWINDOWSlike ifTrue:[
+ dirs add:'\Programme\eXept\SmalltalkX\' , self smalltalkRelease , '\bin'.
+ dirs add:'\Programme\SmalltalkX\' , self smalltalkRelease , '\bin'.
+ dirs add:'\SmalltalkX\' , self smalltalkRelease , '\bin'.
+ ] ifFalse:[
+ dirs add:'/opt/smalltalk/' , self smalltalkRelease , '/bin'.
+ dirs add:'/usr/local/bin'.
+ dirs add:'/usr/bin'.
+
+ dirs add:(Filename homeDirectory constructString:'bin').
+ dirs add:((Filename homeDirectory
+ construct:'stx')
+ constructString:'bin').
+ dirs add:'/tmp/stxbin'.
+ ('/home' asFilename exists and:['/home' asFilename isDirectory]) ifTrue:[
+ dirs add:'/home/stx/bin'.
+ ].
+ ('/home2' asFilename exists and:['/home2' asFilename isDirectory]) ifTrue:[
+ dirs add:'/home2/stx/bin'.
+ ].
].
"/ dirs := dirs select:[:path |
@@ -47,8 +55,8 @@
"/ f exists and:[f isDirectory]].
^ dirs "sort"
- "Created: 18.7.1996 / 19:43:00 / cg"
- "Modified: 18.7.1996 / 19:45:08 / cg"
+ "Created: / 18.7.1996 / 19:43:00 / cg"
+ "Modified: / 30.4.1999 / 11:56:03 / cg"
!
defaultFullDirs
@@ -73,41 +81,52 @@
|dirs|
dirs := OrderedCollection new.
- dirs add:'/usr/local/lib'.
- dirs add:'/usr/lib'.
- dirs add:'/lib'.
- dirs add:(Filename homeDirectory
- constructString:'lib').
+ OperatingSystem isMSWINDOWSlike ifTrue:[
+ dirs add:'\Programme\eXept\SmalltalkX\' , self smalltalkRelease , '\lib'.
+ dirs add:'\Programme\SmalltalkX\' , self smalltalkRelease , '\lib'.
+ dirs add:'\SmalltalkX\' , self smalltalkRelease , '\lib'.
+ ] ifFalse:[
+ dirs add:'/usr/local/lib'.
+ dirs add:'/usr/lib'.
+ dirs add:'/lib'.
+ dirs add:(Filename homeDirectory
+ constructString:'lib').
- dirs add:((Filename homeDirectory
- construct:'stx')
- constructString:'lib').
- dirs add:'/tmp/stxlib'.
- dirs add:'/home/stx/lib'.
- dirs add:'/home2/stx/lib'.
-
+ dirs add:((Filename homeDirectory
+ construct:'stx')
+ constructString:'lib').
+ dirs add:'/tmp/stxlib'.
+ dirs add:'/home/stx/lib'.
+ dirs add:'/home2/stx/lib'.
+ ].
^ dirs sort
- "Created: 18.7.1996 / 19:43:21 / cg"
- "Modified: 18.7.1996 / 19:46:04 / cg"
+ "Created: / 18.7.1996 / 19:43:21 / cg"
+ "Modified: / 30.4.1999 / 11:56:48 / cg"
!
defaultLibDirs
|dirs|
dirs := OrderedCollection new.
- dirs add:'/opt/smalltalk/' , self smalltalkRelease , '/lib'.
- dirs add:'/usr/local/lib/smalltalk'.
- dirs add:'/usr/lib/smalltalk'.
- dirs add:((Filename homeDirectory
- construct:'lib')
- constructString:'smalltalk').
- dirs add:((Filename homeDirectory
- construct:'stx')
- constructString:'lib').
- dirs add:'/tmp/stxlib'.
- dirs add:'/home/stx/lib'.
- dirs add:'/home2/stx/lib'.
+ OperatingSystem isMSWINDOWSlike ifTrue:[
+ dirs add:'\Programme\eXept\SmalltalkX\' , self smalltalkRelease , '\lib'.
+ dirs add:'\Programme\SmalltalkX\' , self smalltalkRelease , '\lib'.
+ dirs add:'\SmalltalkX\' , self smalltalkRelease , '\lib'.
+ ] ifFalse:[
+ dirs add:'/opt/smalltalk/' , self smalltalkRelease , '/lib'.
+ dirs add:'/usr/local/lib/smalltalk'.
+ dirs add:'/usr/lib/smalltalk'.
+ dirs add:((Filename homeDirectory
+ construct:'lib')
+ constructString:'smalltalk').
+ dirs add:((Filename homeDirectory
+ construct:'stx')
+ constructString:'lib').
+ dirs add:'/tmp/stxlib'.
+ dirs add:'/home/stx/lib'.
+ dirs add:'/home2/stx/lib'.
+ ].
"/ dirs := dirs select:[:path |
"/ |f|
@@ -116,8 +135,8 @@
"/ f exists and:[f isDirectory]].
^ dirs "sort"
- "Created: 18.7.1996 / 19:43:21 / cg"
- "Modified: 18.7.1996 / 19:46:04 / cg"
+ "Created: / 18.7.1996 / 19:43:21 / cg"
+ "Modified: / 30.4.1999 / 11:57:02 / cg"
!
directoriesToMake
@@ -173,6 +192,15 @@
!
specOfFilesToCopy
+ OperatingSystem isMSWINDOWSlike ifTrue:[
+ ^ self specOfWindowsFilesToCopy
+ ].
+ ^ self specOfUnixFilesToCopy
+
+ "Modified: / 2.5.1999 / 13:17:59 / cg"
+!
+
+specOfUnixFilesToCopy
|fileSpec|
fileSpec := #(
@@ -265,7 +293,163 @@
^ fileSpec
- "Modified: 8.8.1997 / 18:39:06 / cg"
+ "Modified: / 30.4.1999 / 18:02:22 / cg"
+ "Created: / 2.5.1999 / 13:17:37 / cg"
+!
+
+specOfWindowsFilesToCopy
+ |fileSpec|
+
+ fileSpec := #(
+ "/ name destination subDir required
+"/ ( 'binbc\smalltalk' #bin nil true )
+ ( 'binbc\stx' #bin nil true )
+ ( 'binbc\include' #lib nil true )
+ ( 'binbc\lib*.dll' #bin nil true )
+ ( 'COPYRIGHT' #lib nil true )
+ ( 'binbc\*.rc' #lib nil true )
+ ( 'binbc\patches' #lib nil true )
+ ( 'binbc\bitmaps' #lib nil true )
+ ( 'binbc\resources' #lib nil true )
+ ( 'doc\online\german\LICENCE.STX.html' #lib 'doc\online\german' true )
+ ( 'doc\online\english\LICENCE.STX.html' #lib 'doc\online\english' true )
+ ).
+
+ installDocFiles ifTrue:[
+ fileSpec := fileSpec , #(
+ ( 'doc' #lib nil false )
+ ).
+ ].
+
+ installSourceFiles ifTrue:[
+ fileSpec := fileSpec , #(
+ ( 'binbc\source' #lib nil false )
+ ).
+ ].
+
+ installSTCFiles ifTrue:[
+ fileSpec := fileSpec , #(
+ ( 'binbc\stc' #bin nil false )
+ ( 'include' #lib nil false )
+
+ ( 'binbc\*.lib' #libBin nil false )
+ ).
+ ].
+
+ installGoodyFiles ifTrue:[
+ fileSpec := fileSpec , #(
+ ( 'goodies\*.st' #lib 'goodies' false )
+ ( 'goodies\*.chg' #lib 'goodies' false )
+ ).
+ ].
+
+
+ ^ fileSpec
+
+ "Modified: / 30.4.1999 / 18:02:22 / cg"
+ "Created: / 2.5.1999 / 13:23:06 / cg"
+!
+
+xxspecOfFilesToCopy
+ |fileSpec|
+
+ OperatingSystem isMSWINDOWSlike ifTrue:[
+ ^self specOfWindowsFilesToCopy
+
+ ].
+
+ fileSpec := #(
+ "/ name destination subDir required mode
+ ( 'projects/smalltalk/smalltalk' #bin nil true '755' )
+ ( 'projects/smalltalk/stx' #bin nil true '755' )
+ ( 'projects/smalltalk/include' #lib nil true '644' )
+ ( 'COPYRIGHT' #lib nil true '644' )
+ ( 'projects/smalltalk/*.rc' #lib nil true '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' )
+ ( 'doc/online/german/LICENCE.STX.html' #lib 'doc/online/german' true '644' )
+ ( 'doc/online/english/LICENCE.STX.html' #lib 'doc/online/english' true '644' )
+ ).
+
+ installDocFiles ifTrue:[
+ fileSpec := fileSpec , #(
+ ( 'doc' #lib nil false '644' )
+ ).
+ ].
+
+ installSourceFiles ifTrue:[
+ fileSpec := fileSpec , #(
+ ( 'projects/smalltalk/source' #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 false '644' )
+ ( 'configurations' #lib nil false '644' )
+ ( 'configurations/PACKS' #lib 'configurations' false '644' )
+ ( 'configurations/my*' #lib 'configurations' false '644' )
+ ( 'configurations/vendor*' #lib 'configurations' 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.*' #libBin nil false '644' )
+ ( 'libbasic/libbasic.*' #libBin nil false '644' )
+ ( 'libbasic2/libbasic2.*' #libBin nil false '644' )
+ ( 'libbasic3/libbasic3.*' #libBin nil false '644' )
+ ( 'libhtml/libhtml.*' #libBin nil false '644' )
+ ( 'libcomp/libcomp.*' #libBin nil false '644' )
+ ( 'libcomp/ObjFL*.o' #libBin nil false '644' )
+ ( 'libcomp/ObjFL*.obj' #libBin nil false '644' )
+ ( 'libcomp/ObjFL*.so' #libBin nil false '644' )
+ ( 'libview/libview.*' #libBin nil false '644' )
+ ( 'libview/GLX*.o' #libBin nil false '644' )
+ ( 'libview/GLX*.obj' #libBin nil false '644' )
+ ( 'libview/GLX*.so' #libBin nil false '644' )
+ ( 'libview/XW*.o' #libBin nil false '644' )
+ ( 'libview/XW*.obj' #libBin nil false '644' )
+ ( 'libview/XW*.so' #libBin nil false '644' )
+ ( 'libview2/libview2.*' #libBin nil false '644' )
+ ( 'libwidg/libwidg.*' #libBin nil false '644' )
+ ( 'libwidg2/libwidg2.*' #libBin nil false '644' )
+ ( 'libwidg3/libwidg3.*' #libBin nil false '644' )
+ ( 'libui/libui.*' #libBin nil false '644' )
+
+"/ ( 'libsnmp/libsnmp.*' #libBin nil false '644' )
+"/ ( 'contrib/libPVM/libPVM.*' #libBin nil false '644' )
+ ( 'goodies/persistency/libdbase.*' #libBin nil false '644' )
+"/ ( 'libtable/libtable.*' #libBin nil false '644' )
+ ( 'libtool/libtool.*' #libBin nil false '644' )
+ ( 'libtool2/libtool2.*' #libBin nil false '644' )
+"/ ( 'libxt/libxt.*' #libBin nil false '644' )
+"/ ( 'librt/librt.*' #libBin nil false '644' )
+ ).
+ ].
+
+ installGoodyFiles ifTrue:[
+ fileSpec := fileSpec , #(
+ ( 'goodies/*.st' #lib 'goodies' false '644' )
+ ( 'goodies/*.chg' #lib 'goodies' false '644' )
+ ( 'goodies/rdoit/rdoit' #bin nil false '755' )
+ ( 'goodies/bitmaps/rdoit' #lib 'goodies/bitmaps' false '755' )
+ ).
+ ].
+
+
+ ^ fileSpec
+
+ "Modified: / 8.8.1997 / 18:39:06 / cg"
+ "Created: / 2.5.1999 / 13:17:27 / cg"
! !
!STXInstaller methodsFor:'installing'!
@@ -472,6 +656,10 @@
executeCommandAndShowOutput:cmd
|doneSemaphore line p|
+ OperatingSystem isMSWINDOWSlike ifTrue:[
+ ^ self
+ ].
+
doneSemaphore := Semaphore new.
copyProcess := [
@@ -502,7 +690,7 @@
doneSemaphore wait.
"Created: / 25.2.1998 / 17:46:06 / cg"
- "Modified: / 25.2.1998 / 18:36:50 / cg"
+ "Modified: / 30.4.1999 / 18:00:43 / cg"
!
outputInitialMessage
@@ -555,13 +743,15 @@
askAndInstall
"/ check, if we are in the projects/smalltalk directory
- |answer|
+ |answer here|
resources := ResourcePack for:self class.
- (Filename currentDirectory pathName endsWith:'projects/smalltalk') ifFalse:[
- self warn:(resources string:'must be in the ''projects/smalltalk'' directory').
- ^ self
+ ((here := Filename currentDirectory pathName) endsWith:'projects/smalltalk') ifFalse:[
+ (here endsWith:'stx\binbc') ifFalse:[
+ self warn:(resources string:'must be in the ''projects/smalltalk'' directory').
+ ^ self
+ ]
].
answer := self askForFullInstallation.
@@ -581,7 +771,7 @@
]
].
- "Modified: / 25.2.1998 / 16:54:51 / cg"
+ "Modified: / 30.4.1999 / 11:53:35 / cg"
!
askForDestination
@@ -696,14 +886,26 @@
srcMegabytes := 25.
goodyMegabytes := 2.
- LastLibDir isNil ifTrue:[
- LastLibDir := '/opt/smalltalk/' , self smalltalkRelease , '/lib'
- ].
- LastLibBinDir isNil ifTrue:[
- LastLibBinDir := '/opt/smalltalk/' , self smalltalkRelease , '/lib'
- ].
- LastBinDir isNil ifTrue:[
- LastBinDir := '/opt/smalltalk/' , self smalltalkRelease , '/bin'
+ OperatingSystem isMSWINDOWSlike ifTrue:[
+ LastLibDir isNil ifTrue:[
+ LastLibDir := '\Programme\SmalltalkX\' , self smalltalkRelease , '\lib'
+ ].
+ LastLibBinDir isNil ifTrue:[
+ LastLibBinDir := '\Programme\SmalltalkX\' , self smalltalkRelease , '\lib'
+ ].
+ LastBinDir isNil ifTrue:[
+ LastBinDir := '\Programme\SmalltalkX\' , self smalltalkRelease , '\lib'
+ ].
+ ] ifFalse:[
+ LastLibDir isNil ifTrue:[
+ LastLibDir := '/opt/smalltalk/' , self smalltalkRelease , '/lib'
+ ].
+ LastLibBinDir isNil ifTrue:[
+ LastLibBinDir := '/opt/smalltalk/' , self smalltalkRelease , '/lib'
+ ].
+ LastBinDir isNil ifTrue:[
+ LastBinDir := '/opt/smalltalk/' , self smalltalkRelease , '/bin'
+ ].
].
stxLibDirHolder := LastLibDir asValue.
@@ -848,7 +1050,7 @@
"
"Created: / 25.2.1998 / 17:11:26 / cg"
- "Modified: / 25.2.1998 / 19:43:30 / cg"
+ "Modified: / 30.4.1999 / 11:58:33 / cg"
!
askForFullInstallation
@@ -1039,7 +1241,8 @@
dirToMonitor := stxLibDir
].
- (OperatingSystem canExecuteCommand:'df ' , dirToMonitor) ifTrue:[
+ (OperatingSystem isMSWINDOWSlike not
+ and:[OperatingSystem canExecuteCommand:'df ' , dirToMonitor]) ifTrue:[
p := HorizontalPanelView in:v.
p origin:0.0@1.0 corner:1.0@1.0.
p topInset:-30.
@@ -1172,15 +1375,19 @@
"
"Created: / 17.7.1996 / 15:11:27 / cg"
- "Modified: / 20.4.1998 / 15:36:40 / cg"
+ "Modified: / 30.4.1999 / 17:53:53 / cg"
!
open
self askAndInstall.
"
+ LastLibDir := LastBinDir := LastLibBinDir := nil.
+
STXInstaller open
"
+
+ "Modified: / 30.4.1999 / 11:59:00 / cg"
!
postInstall
@@ -1196,8 +1403,10 @@
shInfo := ''.
cshInfo := ''.
- installWhat == #full ifTrue:[
- msg := msg , 'You will now find a development directory hierarchy
+ OperatingSystem isMSWINDOWSlike ifFalse:[
+
+ installWhat == #full ifTrue:[
+ msg := msg , 'You will now find a development directory hierarchy
in ''' , fullDir asText allBold , '''.
To try it, ''cd'' to ''' , fullDir , '/projects/smalltalk''
@@ -1206,56 +1415,56 @@
To perform a partial installation of your customized smalltalk later,
use the INSTALL script found in ''' , fullDir , ''''.
- ] ifFalse:[
- havePath := true.
- (((OperatingSystem getEnvironment:'PATH')
- asCollectionOfSubstringsSeparatedBy:$:)
- includes:stxBinDir) ifFalse:[
+ ] ifFalse:[
+ havePath := true.
+ (((OperatingSystem getEnvironment:'PATH')
+ asCollectionOfSubstringsSeparatedBy:$:)
+ includes:stxBinDir) ifFalse:[
- havePath := false.
- shInfo := 'PATH=$PATH:' , stxBinDir , ' ; export PATH\'.
- cshInfo := 'set path=($path ' , stxBinDir , ')\'.
- msg := msg , (resources string:'%1 is not in your PATH.\You should change your ".login" and/or ".profile" files to include it.\\'
- with:stxBinDir asText allBold) withCRs.
- ].
-
- (stxLibDir ~= '/usr/local/lib/smalltalk'
- and:[stxLibDir ~= '/usr/lib/smalltalk'
- and:[stxLibDir ~= ('/opt/smalltalk/' , self smalltalkRelease , '/lib')]]) ifTrue:[
- msg := msg , (resources string:'The library directory is not a standard ST/X library directory\("/opt/smalltalk/' , self smalltalkRelease , '/lib", "/usr/local/lib/smalltalk" or "/usr/lib/smalltalk").
-You may have to define the %1 environment variable\as %2 if ST/X complains about not finding its files.\'
- with:'STX_LIBDIR' asText allBold
- with:stxLibDir asText allBold) withCRs.
- havePath ifFalse:[
- msg := msg , (resources string:'The above mentioned files are also a good place to do this.\') withCRs.
- ] ifTrue:[
- msg := msg , (resources string:'The ".login" and/or ".profile" files are a good place to do this.\') withCRs.
+ havePath := false.
+ shInfo := 'PATH=$PATH:' , stxBinDir , ' ; export PATH\'.
+ cshInfo := 'set path=($path ' , stxBinDir , ')\'.
+ msg := msg , (resources string:'%1 is not in your PATH.\You should change your ".login" and/or ".profile" files to include it.\\'
+ with:stxBinDir asText allBold) withCRs.
].
- shInfo := shInfo , 'STX_LIBDIR=' , stxLibDir , ' ; export STX_LIBDIR\'.
- cshInfo := cshInfo , 'setenv STX_LIBDIR ' , stxLibDir , '\'.
- ].
+ (stxLibDir ~= '/usr/local/lib/smalltalk'
+ and:[stxLibDir ~= '/usr/lib/smalltalk'
+ and:[stxLibDir ~= ('/opt/smalltalk/' , self smalltalkRelease , '/lib')]]) ifTrue:[
+ msg := msg , (resources string:'The library directory is not a standard ST/X library directory\("/opt/smalltalk/' , self smalltalkRelease , '/lib", "/usr/local/lib/smalltalk" or "/usr/lib/smalltalk").
+You may have to define the %1 environment variable\as %2 if ST/X complains about not finding its files.\'
+ with:'STX_LIBDIR' asText allBold
+ with:stxLibDir asText allBold) withCRs.
+ havePath ifFalse:[
+ msg := msg , (resources string:'The above mentioned files are also a good place to do this.\') withCRs.
+ ] ifTrue:[
+ msg := msg , (resources string:'The ".login" and/or ".profile" files are a good place to do this.\') withCRs.
+ ].
- shInfo notEmpty ifTrue:[
- '*********************************************************' errorPrintCR.
- (resources string:'Message from the ST/X Installer:\\') withCRs errorPrintCR.
- (resources string:'Please add the following to your ".profile" file:') withCRs errorPrintCR.
- '' errorPrintCR.
- shInfo withCRs errorPrintCR.
- '' errorPrintCR.
- (resources string:'or (if you use csh/tcsh), add to your ".login" file:') withCRs errorPrintCR.
- '' errorPrintCR.
- cshInfo withCRs errorPrintCR.
- '' errorPrintCR.
- '*********************************************************' errorPrintCR.
+ shInfo := shInfo , 'STX_LIBDIR=' , stxLibDir , ' ; export STX_LIBDIR\'.
+ cshInfo := cshInfo , 'setenv STX_LIBDIR ' , stxLibDir , '\'.
+ ].
+
+ shInfo notEmpty ifTrue:[
+ '*********************************************************' errorPrintCR.
+ (resources string:'Message from the ST/X Installer:\\') withCRs errorPrintCR.
+ (resources string:'Please add the following to your ".profile" file:') withCRs errorPrintCR.
+ '' errorPrintCR.
+ shInfo withCRs errorPrintCR.
+ '' errorPrintCR.
+ (resources string:'or (if you use csh/tcsh), add to your ".login" file:') withCRs errorPrintCR.
+ '' errorPrintCR.
+ cshInfo withCRs errorPrintCR.
+ '' errorPrintCR.
+ '*********************************************************' errorPrintCR.
+ ].
].
].
-
msg := msg , '\\Have fun using ST/X !!'.
self information:msg withCRs.
- "Modified: / 25.2.1998 / 19:29:04 / cg"
+ "Modified: / 30.4.1999 / 17:59:39 / cg"
!
preInstall
@@ -1265,10 +1474,12 @@
|f|
- f := '../../doc/online/english/german' asFilename.
- f exists ifTrue:[
- f isSymbolicLink ifTrue:[
- OperatingSystem executeCommand:'(cd ../../doc/online; make clobber) >/dev/null 2>/dev/null'
+ OperatingSystem isMSWINDOWSlike ifFalse:[
+ f := '../../doc/online/english/german' asFilename.
+ f exists ifTrue:[
+ f isSymbolicLink ifTrue:[
+ OperatingSystem executeCommand:'(cd ../../doc/online; make clobber) >/dev/null 2>/dev/null'
+ ]
]
]
@@ -1276,7 +1487,7 @@
STXInstaller new preInstall
"
- "Modified: / 25.2.1998 / 17:39:55 / cg"
+ "Modified: / 30.4.1999 / 17:54:38 / cg"
! !
!STXInstaller class methodsFor:'documentation'!