New Win32 build structure

Andreas Raab andreas.raab at gmx.de
Sat Sep 16 06:11:12 UTC 2006


Hi Folks -

This is just to let you know that I've checked in the changes for the 
new Win32 build structure. Updated instructions are available here:

http://squeakvm.org/cgi-bin/viewcvs.cgi/trunk/platforms/win32/HowToBuild.txt?rev=1530

I'm interested in working out the remaining quirks so if someone is 
willing to try it out and make notes on what works and what doesn't I'd 
appreciate it.

@Tim: We need a new Win32VMMaker to support this build structure. Could 
you please nuke the one currently in VMMaker and replace it with the 
attached version?

Thanks,
   - Andreas

-------------- next part --------------
'From Croquet1.0beta of 11 April 2006 [latest update: #1] on 15 September 2006 at 4:30:51 pm'!
VMMaker subclass: #Win32VMMaker
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'VMMaker-Building'!
!Win32VMMaker commentStamp: 'tpr 5/5/2003 12:30' prior: 0!
A special form of VMMaker to suit Windows machines.  Copies files around a little.!


!Win32VMMaker methodsFor: 'target directories' stamp: 'ar 9/4/2006 18:01'!
deleteUnwantedExternalPluginDirectories
	"Don't."! !

!Win32VMMaker methodsFor: 'target directories' stamp: 'ar 9/4/2006 18:01'!
deleteUnwantedInternalPluginDirectories
	"Don't."! !

!Win32VMMaker methodsFor: 'target directories' stamp: 'ar 9/4/2006 17:55'!
externalPluginsDirectory
	"return the target directory for the external plugins sources"
	^self sourceDirectory
"	| fd |
	fd := self sourceDirectory directoryNamed: 'external'.
	fd assureExistence.
	^fd"! !

!Win32VMMaker methodsFor: 'target directories' stamp: 'ar 9/4/2006 17:55'!
internalPluginsDirectory
	"return the target directory for the internal plugins sources"
	^self sourceDirectory
"	| fd |
	fd := self sourceDirectory directoryNamed: 'internal'.
	fd assureExistence.
	^fd"! !


!Win32VMMaker methodsFor: 'copying files' stamp: 'ar 5/5/2002 01:57'!
processAssortedFiles
	"Do nothing."! !


!Win32VMMaker methodsFor: 'generate sources' stamp: 'ar 5/5/2002 13:51'!
validatePlugin:	plName in: listOfPlugins
	"The normal file release process bundles all files in the plugin directory, so don't bother users telling them 'there are no cross platform files for xyz' if there is are platform specific files present."
	| plugin |
	plName isString
		ifTrue: [(listOfPlugins includes: plName)
				ifTrue: [plugin := Smalltalk classNamed: plName]]
		ifFalse: [((plName isBehavior
						and: [plName inheritsFrom: InterpreterPlugin])
					and: [listOfPlugins includes: plName name])
				ifTrue: [plugin := plName]].
	plugin ifNil: [^ self couldNotFindPluginClass: plName].

	"Is there a cross-platform or platform files directory of the same name as this plugin?"
	plugin requiresPlatformFiles
		ifTrue: [(self platformPluginsDirectory directoryExists: plugin moduleName)
				ifFalse: [logger show: 'No platform specific files found for ' , plugin moduleName printString; cr.
					^ self couldNotFindPlatformFilesFor: plugin]].
	plugin requiresCrossPlatformFiles ifTrue: [
		((self platformPluginsDirectory directoryExists: plugin moduleName)
			or:[self crossPlatformPluginsDirectory directoryExists: plugin moduleName])
				ifFalse: [logger show: 'No cross platform files found for ' , plugin moduleName printString; cr.
					^ self couldNotFindPlatformFilesFor: plugin]].

	^plugin! !


More information about the Squeak-dev mailing list