Add support out-of-tree builds.
This commit adds a support for out-of-tree builds, i.e, object files,
executables and so on are writen to `$(OUTDIR)` (which defaults to
`build/<BUILD_TARGET>` directory.
This allows building Smalltalk/X from single source tree for multiple
targets.
| xtermTitleUpdater |
xtermTitleUpdater := [
(((OperatingSystem getEnvironment:'TERM') = 'xterm')
or: [((OperatingSystem getEnvironment:'TERM') = 'rxvt')])
ifTrue:
[Stdout
nextPutAll: #[8r033 8r135 8r060 8r073] asString;
nextPutAll: 'Smalltalk/X ';
nextPutAll: Smalltalk versionString.
ObjectMemory imageName ifNotNil:
[| image |
image := ObjectMemory imageName.
(image includes: $/) ifTrue:
[image := image copyFrom: (image lastIndexOf: $/) + 1].
Stdout
nextPutAll: ' - ';
nextPutAll: image].
Stdout
nextPut: 8r007 asCharacter]].
Smalltalk addStartBlock: xtermTitleUpdater.
Smalltalk addImageStartBlock: xtermTitleUpdater.
ObjectMemory addDependent:
(Smalltalk at: #XTermTitleUpdater put:
(InterestConverter
destination: xtermTitleUpdater
selector: #value
aspect: #finishedSnapshot)).