141 ]. |
141 ]. |
142 myTopDirectory := myTopDirectory asFilename. |
142 myTopDirectory := myTopDirectory asFilename. |
143 mySTXTopDirectory := myTopDirectory / 'stx'. |
143 mySTXTopDirectory := myTopDirectory / 'stx'. |
144 |
144 |
145 self setupBuildDirectory. |
145 self setupBuildDirectory. |
|
146 self activityNotification:'Generating stc directory...'. |
146 self copySTCDirectoryForBuild. |
147 self copySTCDirectoryForBuild. |
|
148 self activityNotification:'Generating source files...'. |
147 self generateSourceFiles. |
149 self generateSourceFiles. |
|
150 self activityNotification:'Generating dlls for linkage...'. |
148 self copyDLLsForLinkage. |
151 self copyDLLsForLinkage. |
|
152 self activityNotification:'Generating support files for linkage...'. |
149 self copySupportFilesForLinkage. |
153 self copySupportFilesForLinkage. |
150 self copyStartupFilesFromSmalltalk. |
154 self copyStartupFilesFromSmalltalk. |
151 |
155 |
|
156 self activityNotification:'Executing make...'. |
152 self makeWithOutputTo:stdOut errorTo:stdErr. |
157 self makeWithOutputTo:stdOut errorTo:stdErr. |
153 ! |
158 ! |
154 |
159 |
155 copyDLLsForLinkage |
160 copyDLLsForLinkage |
156 |targetBuildDir| |
161 |targetBuildDir| |
440 packageTargetDir := (buildDirectory / packageModule / packageDirectory) recursiveMakeDirectory. |
445 packageTargetDir := (buildDirectory / packageModule / packageDirectory) recursiveMakeDirectory. |
441 |
446 |
442 packageDef := packageId projectDefinitionClass. |
447 packageDef := packageId projectDefinitionClass. |
443 (packageDef compiled_classNames_common , |
448 (packageDef compiled_classNames_common , |
444 packageDef compiled_classNamesForPlatform) do:[:eachClassName | |
449 packageDef compiled_classNamesForPlatform) do:[:eachClassName | |
445 |cls| |
450 |cls fileName newSource| |
446 |
451 |
447 cls := Smalltalk classNamed:eachClassName. |
452 cls := Smalltalk classNamed:eachClassName. |
448 self assert:cls isLoaded. |
453 self assert:cls isLoaded. |
449 cls fileOutIn:packageTargetDir |
454 fileName := (Smalltalk fileNameForClass:cls),'.st'. |
|
455 fileName := packageTargetDir asFilename construct:fileName. |
|
456 fileName exists ifTrue:[ |
|
457 newSource := String streamContents:[:s | cls fileOutOn:s withTimeStamp:false]. |
|
458 newSource = fileName contentsAsString ifFalse:[ |
|
459 fileName contents:newSource |
|
460 ]. |
|
461 ] ifFalse:[ |
|
462 cls fileOutIn:packageTargetDir withTimeStamp:false |
|
463 ]. |
450 ]. |
464 ]. |
451 |
465 |
452 "/ (Smalltalk allClassesInPackage:eachPackageToFileout) do:[:cls | |
466 "/ (Smalltalk allClassesInPackage:eachPackageToFileout) do:[:cls | |
453 "/ cls isPrivate ifFalse:[ |
467 "/ cls isPrivate ifFalse:[ |
454 "/ cls isLoaded ifFalse:[ |
468 "/ cls isLoaded ifFalse:[ |