[Vm-dev] VM Maker: CMakeVMMakerSqueak-tty.38.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Jun 8 23:26:36 UTC 2014


Timothy M uploaded a new version of CMakeVMMakerSqueak to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMakerSqueak-tty.38.mcz

==================== Summary ====================

Name: CMakeVMMakerSqueak-tty.38
Author: tty
Time: 8 June 2014, 7:26:29.383 pm
UUID: afce441e-f5d9-40c4-92af-5d2cbfe86b56
Ancestors: CMakeVMMakerSqueak-tty.37

Refactored AbstractBuilder into a singleton because class side was too heavy. 

Added a bucket and visitior pattern for querying configurations about their attributes and subsequent reporting by the builders. This stuff should be usable in scripting builds. a bit slow, but its ok for now.

Started (woot!) real configuration of the actual configurations. Work going forward will be on implementing these and tightening them up a bit.

Tests all still pass.

=============== Diff against CMakeVMMakerSqueak-tty.37 ===============

Item was added:
+ ----- Method: CMakeVMMakerSqueakBuildersTest>>testAvailableBuilds (in category 'as yet unclassified') -----
+ testAvailableBuilds
+ 	SqueakCMakeVMMakerAbstractBuilder 
+ 		subclassesDo:[:c | 
+ 			self assert: (c default availableBuilds size > 0).]	!

Item was removed:
- ----- Method: CMakeVMMakerSqueakBuildersTest>>testAvailableTargets (in category 'as yet unclassified') -----
- testAvailableTargets
- 	SqueakCMakeVMMakerAbstractBuilder 
- 		subclassesDo:[:c | 
- 			self assert: (c availableTargets size > 0).]	!

Item was changed:
  ----- Method: CMakeVMMakerSqueakBuildersTest>>testBuildConfigurations (in category 'as yet unclassified') -----
  testBuildConfigurations
+ 	self assert: (SqueakCMakeVMMakerAbstractBuilder default allBuildConfigurations size > 0).
+ 	self assert: (SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations size > 0).
- 	self assert: (SqueakCMakeVMMakerAbstractBuilder allBuildConfigurations size > 0).
- 	self assert: (SqueakCMakeVMMakerAbstractBuilder noBuildConfigurations size > 0).
  	!

Item was changed:
  ----- Method: CMakeVMMakerSqueakBuildersTest>>testConfigurationsCategory (in category 'as yet unclassified') -----
  testConfigurationsCategory
  	|oc|
  	"ensure builders have a category with configs in it and make sure it is unique. This does not guarantee it is correct, but it helps"
  	oc:= OrderedCollection new.
  	SqueakCMakeVMMakerAbstractBuilder 
  		subclassesDo:[:c | 
+ 			self assert: (c default configurationsCategory isString).
- 			self assert: (c configurationsCategory isString).
  			oc addLast: c.
  			self assert: ( (oc occurrencesOf: c) = 1)]	!

Item was added:
+ Object subclass: #CMakeVMakerConfigurationInfo
+ 	instanceVariableNames: 'availableBuildTypes dirBuildPlatform dirSource'
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMakerSqueak-Builder'!
+ 
+ !CMakeVMakerConfigurationInfo commentStamp: 'tty 6/8/2014 11:37' prior: 0!
+ I am a lowly data bucket.
+ 
+ Think of me as a database dataset. 
+ 
+ A CMakeVMMaker-Builder can request information from its configurations passing an instance of me as a storage container. 
+ 
+ They stick their info in me; the builder then extracts it and prints it out for the user.
+ 
+ The Builder then reports the data that I have.
+ 
+ !

Item was added:
+ ----- Method: CMakeVMakerConfigurationInfo>>availableBuildTypes (in category 'accessing') -----
+ availableBuildTypes
+ 
+ 	^ availableBuildTypes!

Item was added:
+ ----- Method: CMakeVMakerConfigurationInfo>>buildDirectoriesForTarget (in category 'accessing') -----
+ buildDirectoriesForTarget
+ 
+ 	^ buildDirectoriesForTarget!

Item was added:
+ ----- Method: CMakeVMakerConfigurationInfo>>dirBuildPlatform (in category 'accessing') -----
+ dirBuildPlatform
+ 
+ 	^ dirBuildPlatform!

Item was added:
+ ----- Method: CMakeVMakerConfigurationInfo>>dirSource (in category 'accessing') -----
+ dirSource
+ 	^ dirSource!

Item was added:
+ ----- Method: CMakeVMakerConfigurationInfo>>visit: (in category 'visiting') -----
+ visit: aVisitor
+ 	|v|
+ 	"I am being visited by a CMakeVMMakerSqueak configuration class. Extract its information and store it in myself"
+ 	self flag:'tty'. "why am I not storing the instances itself?does this visit stuff really make sense? I am thinking its 'lightweight'. hmmm"
+ 	v:= aVisitor new.
+ 	availableBuildTypes := v availableBuilds.
+ 	dirBuildPlatform := v dirBuildPlatform.
+ 	dirSource  := v dirSource.
+ 
+ !

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>addDriver:sources:generator: (in category 'utils') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>addDriver:sources:generator: (in category 'as yet unclassified') -----
  addDriver: name sources: aSources generator: cmakeGen
  
  	| cfg srcs |
  	
  	srcs := aSources inject: '' into: [:res :each | res , ' "', each, '"' ].
  	cfg := cmakeGen
  		captureOutputDuring: [
  			cmakeGen printHeader;
  			project: name;
  			include: '../directories.cmake';
  		
  			message: 'Adding module: ', name;
  			
  			addDefinitions:  self compilerFlags;
  			addDefinitions: '-fPIC -DPIC';
  			set: #sources to: srcs;
  			cmd: 'add_library' params: name, ' SHARED ${sources}';
  			linkDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/lib/arm-linux-gnueabihf/';
  	 		includeDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/include/';
  			includeDirectories: '${crossDir}/plugins/FilePlugin';
  			includeDirectories: '${targetPlatform}/plugins/B3DAcceleratorPlugin';
  			includeDirectories: '${crossDir}/plugins/B3DAcceleratorPlugin';
  			set: 'LIBRARY_OUTPUT_PATH' toString: self outputDir;
  			cmd: 'set_target_properties' params: name , ' PROPERTIES PREFIX "" SUFFIX "" 
  			LINK_FLAGS "', self linkFlags , '"'
  	].
  	
  		
  	self write: cfg toFile: ((self buildDir / name) assureExistence / cmakeGen outputFileName) fullName.
  	cmakeGen addSubdirectory:  name.
  	!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>addDriver:sources:generator:externalLibs: (in category 'squeak compatibility') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>addDriver:sources:generator:externalLibs: (in category 'as yet unclassified') -----
  addDriver: name sources: aSources generator: cmakeGen externalLibs: extLibs
  	super addDriver: name sources: aSources generator: cmakeGen externalLibs: extLibs
  !

Item was added:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations
+ !

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>commonCompilerFlags (in category 'compiler flags') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>commonCompilerFlags (in category 'as yet unclassified') -----
  commonCompilerFlags
  
  	"Common compiler flags
  	
  	
  	LSB_FIRST=1 means that target platform is little endian. 
  	set it to 0 for big-endian platforms
  	
  	"
  	
  	^ {
  		'-DLSB_FIRST=1'. 
  		'-DUSE_GLOBAL_STRUCT=0'. 
  		'-DCOGMTVM=0' } 	
  	!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>compilerFlagsDebug (in category 'compiler flags') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
  compilerFlagsDebug
  
  	^ {
  	'-g3'.
  	'-O0'. 
  	'-D_GNU_SOURCE'. 
  	'-DITIMER_HEARTBEAT=1'. 
  	'-DNO_VM_PROFILE=1'. 
  	'-DDEBUGVM=1' }!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>compilerFlagsRelease (in category 'compiler flags') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>compilerFlagsRelease (in category 'as yet unclassified') -----
  compilerFlagsRelease
  "
  THIS FLAGS ARE CRASHING COMPILER 
  -fschedule-insns2 
  -fschedule-insns 
  
  THIS FLAGS ARE CRASHING VM
  -ftree-pre  
  -fcaller-saves 
  
  THIS FLAGS ARE WORKING 
  -O1 -fthread-jumps -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fdevirtualize -fexpensive-optimizations -fgcse -fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra -foptimize-sibling-calls -fpeephole2 -fregmove -freorder-blocks -frerun-cse-after-loop -freorder-functions  -fsched-interblock -fsched-spec -fstrict-aliasing -fstrict-overflow  -ftree-switch-conversion -ftree-vrp
  
  THIS IS LIKE: -O2 -fno-tree-pre -fno-caller-saves 
  
  "
  
  	^ {
  		'-g0'. 
  		'-O2'. 
  		'-fno-tree-pre'. 
  		'-fno-caller-saves'. 
  		'-D_GNU_SOURCE'. 
  		'-DNDEBUG'. 
  		'-DITIMER_HEARTBEAT=1'. 
  		'-DNO_VM_PROFILE=1'. 
  		'-DDEBUGVM=0' }!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>configH (in category 'headers generation') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>configH (in category 'as yet unclassified') -----
  configH
  	" right now its like  that "
  	^ '
  #ifndef __sq_config_h
  #define __sq_config_h
  
  /* explicit image width */
  
  #define	HAVE_INTERP_H 1
  
  /* package options */
  
  #define	USE_X11 1
  #define	USE_X11_GLX 1
  /* #undef	USE_QUARTZ */
  /* #undef	USE_QUARTZ_CGL */
  /* #undef	USE_RFB */
  
  /* libraries */
  
  /* #undef	HAVE_LIBX11 */
  /* #undef	HAVE_LIBXEXT */
  #define	HAVE_LIBDL 1
  /* #undef	HAVE_DYLD */
  /* #undef	HAVE_LIBFFI */
  /* #undef	HAVE_ICONV */
  
  /* #undef	USE_AUDIO_NONE */
  /* #undef	USE_AUDIO_SUN */
  /* #undef	USE_AUDIO_NAS */
  /* #undef	USE_AUDIO_OSS */
  /* #undef	USE_AUDIO_MACOSX */
  /* #undef	OSS_DEVICE */
  
  /* header files */
  
  #define	HAVE_UNISTD_H 1
  /* #undef	NEED_GETHOSTNAME_P */
  
  #define	HAVE_DIRENT_H 1
  /* #undef	HAVE_SYS_NDIR_H */
  /* #undef	HAVE_SYS_DIR_H */
  /* #undef	HAVE_NDIR_H */
  #define	HAVE_DLFCN_H 1
  #define	HAVE_ICONV_H 1
  
  #define	HAVE_SYS_TIME_H 1
  #define	TIME_WITH_SYS_TIME 1
  
  /* #undef	HAVE_SYS_FILIO_H */
  
  /* #undef	HAVE_SYS_AUDIOIO_H */
  /* #undef	HAVE_SUN_AUDIOIO_H */
  
  #define	HAVE_PTY_H 1
  /* #undef	HAVE_UTIL_H */
  /* #undef	HAVE_LIBUTIL_H */
  #define	HAVE_STROPTS_H 1
  
  #define	HAVE_GL_GL_H 1
  /* #undef	HAVE_OPENGL_GL_H */
  
  /* #undef	NEED_SUNOS_H */
  
  /* system calls/library functions */
  
  #define	AT_EXIT atexit
  
  #define	HAVE_TZSET 1
  
  #define	HAVE_OPENPTY 1
  /* #undef	HAVE_UNIX98_PTYS */
  
  #define	HAVE_SNPRINTF 1
  /* #undef	HAVE___SNPRINTF */
  
  #define	HAVE_MMAP 1
  
  /* #undef	HAVE_DYLD */
  
  #define	HAVE_LANGINFO_CODESET 1
  
  #define	HAVE_ALLOCA 1
  #define	HAVE_ALLOCA_H 1
  
  #define	HAVE_UNSETENV 1
  
  #define	HAVE_NANOSLEEP 1
  
  /* widths of primitive types */
  
  #define	SIZEOF_INT 4
  #define	SIZEOF_LONG 4
  #define	SIZEOF_LONG_LONG 8
  #define	SIZEOF_VOID_P 4
  
  /* structures */
  
  #define	HAVE_TM_GMTOFF 1
  #define	HAVE_TIMEZONE 1
  
  /* typedefs */
  
  /* #undef	size_t */
  /* #undef	socklen_t */
  
  #define	ENABLE_FAST_BLT 1
  #define	squeakInt64 long long
  
  /* architecture */
  
  #define	OS_TYPE "unix"
  #define __arm__ 1
  #define __ARM_ARCH_6__ 1
  #define	VM_HOST "arm-pc-linux-gnu"
  #define	VM_HOST_CPU "arm"
  /* #undef	VM_HOST_VENDOR */
  #define	VM_HOST_OS "linux-gnu"
  #define	VM_BUILD_STRING "Unix built on "__DATE__ " "__TIME__" Compiler: "__VERSION__
  
  /* #undef	WORDS_BIGENDIAN */
  /* #undef	DOUBLE_WORD_ALIGNMENT */
  
  /* damage containment */
  
  /* #undef	DARWIN */
  
  #ifdef NEED_SUNOS_H
  # include "sunos.h"
  #endif
  
  /* other configured variables */
  
  #define SQ_VERSION "3.9a-7024"
  #define VM_VERSION "3.9-7"
  #define VM_MODULE_PREFIX ""
  /* #undef VM_DLSYM_PREFIX */
  #define VM_X11DIR ""
  
  /* avoid dependencies on glibc2.3 */
  
  #define HAVE_FEATURES_H 1
  
  #if defined(HAVE_FEATURES_H)
  # include "glibc.h"
  #endif
  
  
  /* used by UUID plugin: */
  
  #define HAVE_UUID_H 1
  
  #endif /* __sq_config_h */
  																																																																					
  																																																																				'!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>configureB3DAcceleratorPlugin: (in category 'plugin extra rules') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>configureB3DAcceleratorPlugin: (in category 'as yet unclassified') -----
  configureB3DAcceleratorPlugin: maker
  	"extra rules for B3DAcceleratorPlugin"
  	
  	super configureB3DAcceleratorPlugin: maker.
  	maker includeDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/include/'.!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>configureBitBltSimulation: (in category 'plugin extra rules') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>configureBitBltSimulation: (in category 'as yet unclassified') -----
  configureBitBltSimulation: maker
  	"extra rules for BitBltSimulation"
  
  	maker includeDirectories: '${pluginCross}'.
  
  	maker addCrossSources: #(
  		'BitBltGeneric.c'
  		'BitBltDispatch.c'
  	).
  	!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>defaultExternalPlugins (in category 'plugins') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>defaultExternalPlugins (in category 'as yet unclassified') -----
  defaultExternalPlugins
  	self flag:'tty'. "InternetConfigPlugin is part of pharo build but not squeak. why?"
  	^ #(
  		B3DAcceleratorPlugin
  		JPEGReaderPlugin 
  		JPEGReadWriter2Plugin 			
  		RePlugin
  "		InternetConfigPlugin"
  	)!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>defaultInternalPlugins (in category 'plugins') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>defaultInternalPlugins (in category 'as yet unclassified') -----
  defaultInternalPlugins
  " took from unixbuild/bld/plugins.int"
  	^ #(
  		ADPCMCodecPlugin 
  		AsynchFilePlugin 
  		BalloonEnginePlugin "B2DPlugin" 
  		BitBltSimulation "BitBltPlugin"
  		BMPReadWriterPlugin 
  		CroquetPlugin 
  		DeflatePlugin  "ZipPlugin"
  		DropPlugin 
  		DSAPlugin "DSAPrims" 
  		FFTPlugin 
  		FileCopyPlugin 
  		FilePlugin 
  		FloatArrayPlugin 
  		FloatMathPlugin 
  		JoystickTabletPlugin 
  		KlattSynthesizerPlugin "Klatt"
  		LargeIntegersPlugin "LargeIntegers"
  		Matrix2x3Plugin 
  		MIDIPlugin 
  		MiscPrimitivePlugin 
  		Mpeg3Plugin  	
  		SecurityPlugin 
  		SerialPlugin 
  		SocketPlugin 
  		SoundCodecPlugin "SoundCodecPrims"
  		SoundGenerationPlugin 
  		SoundPlugin 
  		StarSqueakPlugin 
  		SurfacePlugin	
  		LocalePlugin
  		)!

Item was added:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>dirBuildPlatform (in category 'cmake') -----
+ dirBuildPlatform
+ 	"the directory for the platform. example: build.linux32x86"
+ 	^self dirARMv6!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>extraPluginSettings: (in category 'plugin extra rules') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>extraPluginSettings: (in category 'as yet unclassified') -----
  extraPluginSettings: maker
  
  	maker isExternal ifTrue: [
  		"copy lib to results dir "
  		maker set: 'LIBRARY_OUTPUT_PATH' to: '${outputDir}' 
  	].	
  	
  	maker set: #linkFlags toString: '${linkFlags}'
  !

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>linkFlags (in category 'accessing') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>linkFlags (in category 'as yet unclassified') -----
  linkFlags
  	 ^ '-lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11'!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>preferredIncludes (in category 'source files') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>preferredIncludes (in category 'as yet unclassified') -----
  preferredIncludes
  	^ #('${CMAKE_FIND_ROOT_PATH}/usr/include/'
  	'${targetPlatform}/plugins/B3DAcceleratorPlugin')
  	!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>setExtraTargetProperties: (in category 'utils') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianConfig>>setExtraTargetProperties: (in category 'as yet unclassified') -----
  setExtraTargetProperties: maker
  
  	"maker setTargetProperties: 'LINK_FLAGS ""'."
  		
  	maker puts: 'set_source_files_properties( ${srcVMDir}/cogit.c PROPERTIES 
  		COMPILE_FLAGS "-O1 -fno-omit-frame-pointer -momit-leaf-frame-pointer")'.
  		
  		
  	maker 
  		cmd: 'set_source_files_properties'
  		params: ' ${targetPlatform}/vm/sqUnixHeartbeat.c PROPERTIES 
  		COMPILE_FLAGS "-O1 -fno-omit-frame-pointer"'.
  						
  	maker linkDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/lib/arm-linux-gnueabihf/'.
  	
  	maker addExternalLibraries: 
  		#(
  			'm'  "math lib"
  			'dl'  "dynamic loader"
  			'pthread' "posix threads" 
  		).
  		
  	maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir fullName.
  	self addVMDrivers: maker.!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianFastBltConfig>>commonCompilerFlags (in category 'compiler flags') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianFastBltConfig>>commonCompilerFlags (in category 'as yet unclassified') -----
  commonCompilerFlags
  	^ super commonCompilerFlags, { '-DENABLE_FAST_BLT' }.!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianFastBltConfig>>compilerFlagsDebug (in category 'compiler flags') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianFastBltConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
  compilerFlagsDebug
  
  	^ {
  		'-g3'. 
  		'-D_GNU_SOURCE'. 
  		'-DITIMER_HEARTBEAT=1'. 
  		'-DNO_VM_PROFILE=1'. 
  		'-DDEBUGVM=1' }!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianFastBltConfig>>compilerFlagsRelease (in category 'compiler flags') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianFastBltConfig>>compilerFlagsRelease (in category 'as yet unclassified') -----
  compilerFlagsRelease
  "
  THIS FLAGS ARE CRASHING COMPILER 
  -fschedule-insns2 
  -fschedule-insns 
  
  THIS FLAGS ARE CRASHING VM
  -ftree-pre  
  -fcaller-saves 
  
  THIS FLAGS ARE WORKING 
  -O1 -fthread-jumps -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fdevirtualize -fexpensive-optimizations -fgcse -fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra -foptimize-sibling-calls -fpeephole2 -fregmove -freorder-blocks -frerun-cse-after-loop -freorder-functions  -fsched-interblock -fsched-spec -fstrict-aliasing -fstrict-overflow  -ftree-switch-conversion -ftree-vrp
  
  THIS IS LIKE: -O2 -fno-tree-pre -fno-caller-saves 
  
  "
  
  	^ {
  		'-g0'. 
  		'-D_GNU_SOURCE'. 
  		'-DNDEBUG'. 
  		'-DITIMER_HEARTBEAT=1'. 
  		'-DNO_VM_PROFILE=1'. 
  		'-DDEBUGVM=0' }!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianFastBltConfig>>configH (in category 'headers generation') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianFastBltConfig>>configH (in category 'as yet unclassified') -----
  configH
  	" right now its like  that "
  	^ '
  #ifndef __sq_config_h
  #define __sq_config_h
  
  /* explicit image width */
  
  #define	HAVE_INTERP_H 1
  
  /* package options */
  
  #define	USE_X11 1
  #define	USE_X11_GLX 1
  /* #undef	USE_QUARTZ */
  /* #undef	USE_QUARTZ_CGL */
  /* #undef	USE_RFB */
  
  /* libraries */
  
  /* #undef	HAVE_LIBX11 */
  /* #undef	HAVE_LIBXEXT */
  #define	HAVE_LIBDL 1
  /* #undef	HAVE_DYLD */
  /* #undef	HAVE_LIBFFI */
  /* #undef	HAVE_ICONV */
  
  /* #undef	USE_AUDIO_NONE */
  /* #undef	USE_AUDIO_SUN */
  /* #undef	USE_AUDIO_NAS */
  /* #undef	USE_AUDIO_OSS */
  /* #undef	USE_AUDIO_MACOSX */
  /* #undef	OSS_DEVICE */
  
  /* header files */
  
  #define	HAVE_UNISTD_H 1
  /* #undef	NEED_GETHOSTNAME_P */
  
  #define	HAVE_DIRENT_H 1
  /* #undef	HAVE_SYS_NDIR_H */
  /* #undef	HAVE_SYS_DIR_H */
  /* #undef	HAVE_NDIR_H */
  #define	HAVE_DLFCN_H 1
  #define	HAVE_ICONV_H 1
  
  #define	HAVE_SYS_TIME_H 1
  #define	TIME_WITH_SYS_TIME 1
  
  /* #undef	HAVE_SYS_FILIO_H */
  
  /* #undef	HAVE_SYS_AUDIOIO_H */
  /* #undef	HAVE_SUN_AUDIOIO_H */
  
  #define	HAVE_PTY_H 1
  /* #undef	HAVE_UTIL_H */
  /* #undef	HAVE_LIBUTIL_H */
  #define	HAVE_STROPTS_H 1
  
  #define	HAVE_GL_GL_H 1
  /* #undef	HAVE_OPENGL_GL_H */
  
  /* #undef	NEED_SUNOS_H */
  
  /* system calls/library functions */
  
  #define	AT_EXIT atexit
  
  #define	HAVE_TZSET 1
  
  #define	HAVE_OPENPTY 1
  /* #undef	HAVE_UNIX98_PTYS */
  
  #define	HAVE_SNPRINTF 1
  /* #undef	HAVE___SNPRINTF */
  
  #define	HAVE_MMAP 1
  
  /* #undef	HAVE_DYLD */
  
  #define	HAVE_LANGINFO_CODESET 1
  
  #define	HAVE_ALLOCA 1
  #define	HAVE_ALLOCA_H 1
  
  #define	HAVE_UNSETENV 1
  
  #define	HAVE_NANOSLEEP 1
  
  /* widths of primitive types */
  
  #define	SIZEOF_INT 4
  #define	SIZEOF_LONG 4
  #define	SIZEOF_LONG_LONG 8
  #define	SIZEOF_VOID_P 4
  
  /* structures */
  
  #define	HAVE_TM_GMTOFF 1
  #define	HAVE_TIMEZONE 1
  
  /* typedefs */
  
  /* #undef	size_t */
  /* #undef	socklen_t */
  
  #define	ENABLE_FAST_BLT 1
  #define	squeakInt64 long long
  
  /* architecture */
  
  #define	OS_TYPE "unix"
  
  #define	VM_HOST "i686-pc-linux-gnu"
  #define	VM_HOST_CPU "i686"
  /* #undef	VM_HOST_VENDOR */
  #define	VM_HOST_OS "linux-gnu"
  #define	VM_BUILD_STRING "Unix built on "__DATE__ " "__TIME__" Compiler: "__VERSION__
  
  /* #undef	WORDS_BIGENDIAN */
  /* #undef	DOUBLE_WORD_ALIGNMENT */
  
  /* damage containment */
  
  /* #undef	DARWIN */
  
  #ifdef NEED_SUNOS_H
  # include "sunos.h"
  #endif
  
  /* other configured variables */
  
  #define SQ_VERSION "3.9a-7024"
  #define VM_VERSION "3.9-7"
  #define VM_MODULE_PREFIX ""
  /* #undef VM_DLSYM_PREFIX */
  #define VM_X11DIR ""
  
  /* avoid dependencies on glibc2.3 */
  
  #define HAVE_FEATURES_H 1
  
  #if defined(HAVE_FEATURES_H)
  # include "glibc.h"
  #endif
  
  
  /* used by UUID plugin: */
  
  #define HAVE_UUID_H 1
  
  #endif /* __sq_config_h */
  																																																																					
  																																																																				'!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3CrossRaspbianFastBltConfig>>configureBitBltSimulation: (in category 'plugin extra rules') -----
- ----- Method: Linux32ARMv6StackV3CrossRaspbianFastBltConfig>>configureBitBltSimulation: (in category 'as yet unclassified') -----
  configureBitBltSimulation: maker
  	"extra rules for BitBltSimulation"
  
  	maker includeDirectories: '${pluginCross}'.
  	maker set: 'can_use_assembler' to: 'TRUE'.
  	maker cmd: 'enable_language' params: 'ASM'.
  	maker set: 'CMAKE_ASM_COMPILE_OBJECT' to: '"asasm -cpu 6 -I ${pluginCross} -o <OBJECT> <SOURCE>"'.
  	
  	maker addCrossSources: #(
  		'BitBltArm.c'
  		'BitBltArmSimd.c'
  		'BitBltDispatch.c'
  		'BitBltGeneric.c'
  		'BitBltArmLinux.c'
  		'BitBltArmSimdAlphaBlend.s'
  		'BitBltArmSimdBitLogical.s'
  		'BitBltArmSimdPixPaint.s'
  		'BitBltArmSimdSourceWord.s'
  	).
  	!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>addDriver:sources:generator:externalLibs: (in category 'squeak compatibility') -----
- ----- Method: Linux32ARMv6StackV3RaspbianConfig>>addDriver:sources:generator:externalLibs: (in category 'as yet unclassified') -----
  addDriver: name sources: aSources generator: cmakeGen externalLibs: extLibs
  	super addDriver: name sources: aSources generator: cmakeGen externalLibs: extLibs
  !

Item was added:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations
+ !

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>commonCompilerFlags (in category 'compiler flags') -----
- ----- Method: Linux32ARMv6StackV3RaspbianConfig>>commonCompilerFlags (in category 'as yet unclassified') -----
  commonCompilerFlags
  
  	"Common compiler flags
  	
  	
  	LSB_FIRST=1 means that target platform is little endian. 
  	set it to 0 for big-endian platforms
  	
  	"
  	
  	^ {
  		'-DLSB_FIRST=1'. 
  		'-DUSE_GLOBAL_STRUCT=0'. 
  		'-DCOGMTVM=0' } !

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>compilerFlagsDebug (in category 'compiler flags') -----
- ----- Method: Linux32ARMv6StackV3RaspbianConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
  compilerFlagsDebug
  
  	^ {
  		'-g3'. 
  		'-O0'. 
  		'-D_GNU_SOURCE'. 
  		'-DITIMER_HEARTBEAT=1'. 
  		'-DNO_VM_PROFILE=1'. 
  		'-DDEBUGVM=1' }!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>compilerFlagsRelease (in category 'compiler flags') -----
- ----- Method: Linux32ARMv6StackV3RaspbianConfig>>compilerFlagsRelease (in category 'as yet unclassified') -----
  compilerFlagsRelease
  "
  THIS FLAGS ARE CRASHING COMPILER 
  -fschedule-insns2 
  -fschedule-insns 
  
  THIS FLAGS ARE CRASHING VM
  -ftree-pre  
  -fcaller-saves 
  
  THIS FLAGS ARE WORKING 
  -O1 -fthread-jumps -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks -fdelete-null-pointer-checks -fdevirtualize -fexpensive-optimizations -fgcse -fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra -foptimize-sibling-calls -fpeephole2 -fregmove -freorder-blocks -frerun-cse-after-loop -freorder-functions  -fsched-interblock -fsched-spec -fstrict-aliasing -fstrict-overflow  -ftree-switch-conversion -ftree-vrp
  
  THIS IS LIKE: -O2 -fno-tree-pre -fno-caller-saves 
  
  "
  
  	^ {
  		'-g0'. 
  		'-O2'. 
  		'-fno-tree-pre'. 
  		'-fno-caller-saves'. 
  		'-D_GNU_SOURCE'. 
  		'-DNDEBUG'. 
  		'-DITIMER_HEARTBEAT=1'. 
  		'-DNO_VM_PROFILE=1'. 
  		'-DDEBUGVM=0' }!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>configureBitBltSimulation: (in category 'plugin extra rules') -----
- ----- Method: Linux32ARMv6StackV3RaspbianConfig>>configureBitBltSimulation: (in category 'as yet unclassified') -----
  configureBitBltSimulation: maker
  	"extra rules for BitBltSimulation"
  
  	maker includeDirectories: '${pluginCross}'.
  
  	maker addCrossSources: #(
  		'BitBltGeneric.c'
  		'BitBltDispatch.c'
  	).
  	!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>defaultExternalPlugins (in category 'plugins') -----
- ----- Method: Linux32ARMv6StackV3RaspbianConfig>>defaultExternalPlugins (in category 'as yet unclassified') -----
  defaultExternalPlugins
  	self flag:'tty'. "InternetConfigPlugin not available default svn co of Cog for unix. "
  	^ #(
  		B3DAcceleratorPlugin
  		JPEGReaderPlugin 
  		JPEGReadWriter2Plugin 			
  		RePlugin
  "		InternetConfigPlugin"
  	)!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>defaultInternalPlugins (in category 'plugins') -----
- ----- Method: Linux32ARMv6StackV3RaspbianConfig>>defaultInternalPlugins (in category 'as yet unclassified') -----
  defaultInternalPlugins
  " took from unixbuild/bld/plugins.int"
  	^ #(
  		ADPCMCodecPlugin 
  		AsynchFilePlugin 
  		BalloonEnginePlugin "B2DPlugin" 
  		BitBltSimulation "BitBltPlugin"
  		BMPReadWriterPlugin 
  		CroquetPlugin 
  		DeflatePlugin  "ZipPlugin"
  		DropPlugin 
  		DSAPlugin "DSAPrims" 
  		FFTPlugin 
  		FileCopyPlugin 
  		FilePlugin 
  		FloatArrayPlugin 
  		FloatMathPlugin 
  		JoystickTabletPlugin 
  		KlattSynthesizerPlugin "Klatt"
  		LargeIntegersPlugin "LargeIntegers"
  		Matrix2x3Plugin 
  		MIDIPlugin 
  		MiscPrimitivePlugin 
  		Mpeg3Plugin  	
  		SecurityPlugin 
  		SerialPlugin 
  		SocketPlugin 
  		SoundCodecPlugin "SoundCodecPrims"
  		SoundGenerationPlugin 
  		SoundPlugin 
  		StarSqueakPlugin 
  		SurfacePlugin	
  		LocalePlugin
  		)!

Item was added:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>dirBuildPlatform (in category 'cmake') -----
+ dirBuildPlatform
+ 	"the directory for the platform. example: build.linux32x86"
+ 	^self dirARMv6!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>extraPluginSettings: (in category 'plugin extra rules') -----
- ----- Method: Linux32ARMv6StackV3RaspbianConfig>>extraPluginSettings: (in category 'as yet unclassified') -----
  extraPluginSettings: maker
  
  	maker isExternal ifTrue: [
  		"copy lib to results dir "
  		maker set: 'LIBRARY_OUTPUT_PATH' to: '${outputDir}' 
  	].	
  	
  	maker set: #linkFlags toString: '${linkFlags}'
  !

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>linkFlags (in category 'accessing') -----
- ----- Method: Linux32ARMv6StackV3RaspbianConfig>>linkFlags (in category 'as yet unclassified') -----
  linkFlags
  	 ^ '-lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11'!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianConfig>>setExtraTargetProperties: (in category 'utils') -----
- ----- Method: Linux32ARMv6StackV3RaspbianConfig>>setExtraTargetProperties: (in category 'as yet unclassified') -----
  setExtraTargetProperties: maker
  
  	"maker setTargetProperties: 'LINK_FLAGS ""'."
  		
  	maker puts: 'set_source_files_properties( ${srcVMDir}/cogit.c PROPERTIES 
  		COMPILE_FLAGS "-O1 -fno-omit-frame-pointer -momit-leaf-frame-pointer")'.
  		
  	
  	maker 
  		cmd: 'set_source_files_properties'
  		params: ' ${targetPlatform}/vm/sqUnixHeartbeat.c PROPERTIES 
  		COMPILE_FLAGS "-O1 -fno-omit-frame-pointer"'.
  						
  	
  	maker addExternalLibraries: 
  		#(
  			'm'  "math lib"
  			'dl'  "dynamic loader"
  			'pthread' "posix threads" 
  		).
  		
  	maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir fullName.
  	self addVMDrivers: maker.!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianFastBltConfig>>commonCompilerFlags (in category 'compiler flags') -----
- ----- Method: Linux32ARMv6StackV3RaspbianFastBltConfig>>commonCompilerFlags (in category 'as yet unclassified') -----
  commonCompilerFlags
  	^ super commonCompilerFlags, { '-DENABLE_FAST_BLT' }.!

Item was changed:
+ ----- Method: Linux32ARMv6StackV3RaspbianFastBltConfig>>configureBitBltSimulation: (in category 'plugin extra rules') -----
- ----- Method: Linux32ARMv6StackV3RaspbianFastBltConfig>>configureBitBltSimulation: (in category 'as yet unclassified') -----
  configureBitBltSimulation: maker
  	"extra rules for BitBltSimulation"
  
  	maker includeDirectories: '${pluginCross}'.
  	
  	maker set: 'can_use_assembler' to: 'TRUE'.
  	
  	maker addCrossSources: #(
  		'BitBltArm.c'
  		'BitBltArmSimd.c'
  		'BitBltDispatch.c'
  		'BitBltGeneric.c'
  		'BitBltArmLinux.c'
  		'BitBltArmSimdAlphaBlend.s'
  		'BitBltArmSimdBitLogical.s'
  		'BitBltArmSimdPixPaint.s'
  		'BitBltArmSimdSourceWord.s'
  	).
  	!

Item was added:
+ ----- Method: Linux32x86Config>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default allBuildConfigurations copyWithoutAll:#(#releaseMultiThreadedFFI #debugMultiThreadedFFI)
+ !

Item was added:
+ Linux32x86NewspeakCogV3Config subclass: #Linux32x86NewspeakCogV3AssertHeartbeatTimerConfig
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMakerSqueak-Linux32x86'!
+ 
+ !Linux32x86NewspeakCogV3AssertHeartbeatTimerConfig commentStamp: 'tty 6/7/2014 10:38' prior: 0!
+ A Linux32x86NewspeakCogV3AssertThreadedHeartbeatConfig  configures a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
+ 
+ Usage:
+  Linux32x86NewspeakCogV3AssertThreadedHeartbeatConfig generate
+ Or:
+   Linux32x86NewspeakCogV3AssertThreadedHeartbeatConfig generateWithSources
+ Or:
+ find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me!

Item was added:
+ ----- Method: Linux32x86NewspeakCogV3AssertHeartbeatTimerConfig>>todo (in category 'as yet unclassified') -----
+ todo
+ 	self flag:'tty'!

Item was removed:
- Linux32x86NewspeakCogV3Config subclass: #Linux32x86NewspeakCogV3AssertThreadedHeartbeatConfig
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'CMakeVMMakerSqueak-Linux32x86'!
- 
- !Linux32x86NewspeakCogV3AssertThreadedHeartbeatConfig commentStamp: 'tty 6/7/2014 10:38' prior: 0!
- A Linux32x86NewspeakCogV3AssertThreadedHeartbeatConfig  configures a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
- 
- Usage:
-  Linux32x86NewspeakCogV3AssertThreadedHeartbeatConfig generate
- Or:
-   Linux32x86NewspeakCogV3AssertThreadedHeartbeatConfig generateWithSources
- Or:
- find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me!

Item was removed:
- ----- Method: Linux32x86NewspeakCogV3AssertThreadedHeartbeatConfig>>todo (in category 'as yet unclassified') -----
- todo
- 	self flag:'tty'!

Item was added:
+ Linux32x86NewspeakCogV3Config subclass: #Linux32x86NewspeakCogV3DebugHeartbeatTimerConfig
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMakerSqueak-Linux32x86'!
+ 
+ !Linux32x86NewspeakCogV3DebugHeartbeatTimerConfig commentStamp: 'tty 6/7/2014 10:37' prior: 0!
+ A Linux32x86NewspeakCogV3DebugThreadedHeartbeatConfig  configures a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
+ 
+ Usage:
+ Linux32x86NewspeakCogV3DebugThreadedHeartbeatConfig  generate
+ Or:
+ Linux32x86NewspeakCogV3DebugThreadedHeartbeatConfig  generateWithSources
+ Or:
+ find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me!

Item was added:
+ ----- Method: Linux32x86NewspeakCogV3DebugHeartbeatTimerConfig>>todo (in category 'as yet unclassified') -----
+ todo
+ 	self flag:'tty'!

Item was removed:
- Linux32x86NewspeakCogV3Config subclass: #Linux32x86NewspeakCogV3DebugThreadedHeartbeatConfig
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'CMakeVMMakerSqueak-Linux32x86'!
- 
- !Linux32x86NewspeakCogV3DebugThreadedHeartbeatConfig commentStamp: 'tty 6/7/2014 10:37' prior: 0!
- A Linux32x86NewspeakCogV3DebugThreadedHeartbeatConfig  configures a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
- 
- Usage:
- Linux32x86NewspeakCogV3DebugThreadedHeartbeatConfig  generate
- Or:
- Linux32x86NewspeakCogV3DebugThreadedHeartbeatConfig  generateWithSources
- Or:
- find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me!

Item was removed:
- ----- Method: Linux32x86NewspeakCogV3DebugThreadedHeartbeatConfig>>todo (in category 'as yet unclassified') -----
- todo
- 	self flag:'tty'!

Item was added:
+ Linux32x86NewspeakCogV3Config subclass: #Linux32x86NewspeakCogV3HeartbeatTimerConfig
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'CMakeVMMakerSqueak-Linux32x86'!
+ 
+ !Linux32x86NewspeakCogV3HeartbeatTimerConfig commentStamp: 'tty 6/7/2014 10:37' prior: 0!
+ A Linux32x86NewspeakCogV3ThreadedHeartbeatConfig  configures a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
+ 
+ Usage:
+   Linux32x86NewspeakCogV3ThreadedHeartbeatConfig generate
+ Or:
+   Linux32x86NewspeakCogV3ThreadedHeartbeatConfig generateWithSources
+ Or:
+ find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me!

Item was added:
+ ----- Method: Linux32x86NewspeakCogV3HeartbeatTimerConfig>>todo (in category 'as yet unclassified') -----
+ todo
+ 	self flag:'tty'!

Item was removed:
- Linux32x86NewspeakCogV3Config subclass: #Linux32x86NewspeakCogV3ThreadedHeartbeatConfig
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'CMakeVMMakerSqueak-Linux32x86'!
- 
- !Linux32x86NewspeakCogV3ThreadedHeartbeatConfig commentStamp: 'tty 6/7/2014 10:37' prior: 0!
- A Linux32x86NewspeakCogV3ThreadedHeartbeatConfig  configures a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
- 
- Usage:
-   Linux32x86NewspeakCogV3ThreadedHeartbeatConfig generate
- Or:
-   Linux32x86NewspeakCogV3ThreadedHeartbeatConfig generateWithSources
- Or:
- find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me!

Item was removed:
- ----- Method: Linux32x86NewspeakCogV3ThreadedHeartbeatConfig>>todo (in category 'as yet unclassified') -----
- todo
- 	self flag:'tty'!

Item was changed:
  ----- Method: Linux32x86SqueakCogV3Config class>>availableBuilds (in category 'as yet unclassified') -----
  availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default allBuildConfigurations
- 	^SqueakCMakeVMMakerAbstractBuilder allBuildConfigurations
  !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default allBuildConfigurations copyWithoutAll:#(#assert #assertWithHeartbeatTimer #releaseHeartbeatTimer #debugMultiThreadedFFI #debugWithHeartbeatTimer )
+ 
+ 
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>dirBuildPlatform (in category 'cmake') -----
+ dirBuildPlatform
+ 	"the directory for the platform. example: build.linux32x86"
+ 	^self dirLinux32x86!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Debian64Config>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default allBuildConfigurations copyWithoutAll:#(#assert #assertWithHeartbeatTimer #debug  #debugMultiThreadedFFI #debugWithHeartbeatTimer #releaseHeartbeatTimer #releaseMultiThreadedFFI)
+ 
+ 
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Debian64Config>>dirBuildPlatform (in category 'cmake') -----
+ dirBuildPlatform
+ 	"the directory for the platform. example: build.linux32x86"
+ 	^self dirLinux32x8664!

Item was changed:
  ----- Method: Linux32x86SqueakStackSpurConfig class>>availableBuilds (in category 'as yet unclassified') -----
  availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  allBuildConfigurations!
- 	^SqueakCMakeVMMakerAbstractBuilder allBuildConfigurations!

Item was added:
+ ----- Method: Linux32x86SqueakStackSpurConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	"SqueakCMakeVMMakerAbstractBuilder  default allBuildConfigurations"
+ 	^SqueakCMakeVMMakerAbstractBuilder default allBuildConfigurations copyWithoutAll:#(#assert #assertWithHeartbeatTimer #debugMultiThreadedFFI  #debug #debugWithHeartbeatTimer  #releaseHeartbeatTimer #releaseMultiThreadedFFI )
+ 
+ 
+ !

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	"SqueakCMakeVMMakerAbstractBuilder  default allBuildConfigurations"
+ 	^SqueakCMakeVMMakerAbstractBuilder default allBuildConfigurations copyWithoutAll:#(#assert #assertWithHeartbeatTimer #debugMultiThreadedFFI  #debugWithHeartbeatTimer  #releaseHeartbeatTimer #releaseMultiThreadedFFI )
+ 
+ !

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>dirARMv6 (in category 'cmake') -----
+ dirARMv6
+ 	^'cmake_build.armv6'!

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>dirBuildPlatform (in category 'cmake') -----
+ dirBuildPlatform
+ 	"the directory for the platform. example: build.linux32x86"
+ 	^self dirLinux32x86!

Item was added:
+ ----- Method: Linux32x86SqueakStackV3SlackwareConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default allBuildConfigurations copyWithoutAll:#(#assert #assertWithHeartbeatTimer #debug  #debugMultiThreadedFFI #debugWithHeartbeatTimer #releaseHeartbeatTimer #releaseMultiThreadedFFI)
+ 
+ 
+ !

Item was added:
+ ----- Method: Linux32x86SqueakStackV3SlackwareConfig>>dirBuildPlatform (in category 'cmake') -----
+ dirBuildPlatform
+ 	"the directory for the platform. example: build.linux32x86"
+ 	^self dirLinux32x8664!

Item was added:
+ ----- Method: Linux32x86SqueakStackV3SlackwareNoGLConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  allBuildConfigurations
+ 
+ 	" ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations.
+ 	  ^(SqueakCMakeVMMakerAbstractBuilder  default  allBuildConfigurations 
+ 			copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   
+ 	"!

Item was added:
+ ----- Method: Linux32x86SqueakStackV3SlackwareNoGLConfig>>dirBuildPlatform (in category 'cmake') -----
+ dirBuildPlatform
+ 	"the directory for the platform. example: build.linux32x86"
+ 	^self dirLinux32x8664!

Item was added:
+ ----- Method: Linux64SqueakCogSpur>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was added:
+ ----- Method: Linux64SqueakCogSpur>>dirBuildPlatform (in category 'as yet unclassified') -----
+ dirBuildPlatform
+ 	"the directory for the platform. example: build.linux32x86"
+ 	^self dirLinux32x8664!

Item was added:
+ ----- Method: MacOSX32x86NewspeakCogSpur>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was added:
+ ----- Method: MacOSX32x86NewspeakCogV3>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was added:
+ ----- Method: MacOSX32x86NewspeakStackSpur>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was added:
+ ----- Method: MacOSX32x86NewspeakStackV3>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was added:
+ ----- Method: MacOSX32x86SqueakCogSpur>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was added:
+ ----- Method: MacOSX32x86SqueakCogV3>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was added:
+ ----- Method: MacOSX32x86SqueakSistaSpur>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was added:
+ ----- Method: MacOSX32x86SqueakSistaV3>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was added:
+ ----- Method: MacOSX32x86SqueakStackSpur>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was added:
+ ----- Method: MacOSX32x86SqueakStackV3>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was changed:
  ----- Method: MacOSXPowerPCSqueakCogSpur class>>availableBuilds (in category 'as yet unclassified') -----
  availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default   allBuildConfigurations!
- 	^SqueakCMakeVMMakerAbstractBuilder allBuildConfigurations!

Item was added:
+ ----- Method: MacOSXPowerPCSqueakCogSpur>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!

Item was removed:
- ----- Method: SqueakAndroidBuilder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) = (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakAndroidBuilder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakAndroidBuilder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-Android'!

Item was added:
+ ----- Method: SqueakAndroidBuilder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-Android'!

Item was changed:
  ----- Method: SqueakAndroidStackEvtConfig class>>availableBuilds (in category 'as yet unclassified') -----
  availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations!
- 	^SqueakCMakeVMMakerAbstractBuilder noBuildConfigurations!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations
+ !

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>dirBuildPlatform (in category 'cmake') -----
+ dirBuildPlatform
+ 	"the directory for the platform. example: build.linux32x86"
+ 	^self dirAndroid!

Item was added:
+ ----- Method: SqueakBSDCogV3Config>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations
+ !

Item was removed:
- ----- Method: SqueakBSDX86Builder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) = (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakBSDX86Builder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakBSDX86Builder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^ 'CMakeVMMakerSqueak-BSD32x86'!

Item was added:
+ ----- Method: SqueakBSDX86Builder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^ 'CMakeVMMakerSqueak-BSD32x86'!

Item was changed:
  Object subclass: #SqueakCMakeVMMakerAbstractBuilder
+ 	instanceVariableNames: 'buildTypeAndDirectoryInfo'
- 	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Builder'!
+ SqueakCMakeVMMakerAbstractBuilder class
+ 	instanceVariableNames: 'default'!
  
+ !SqueakCMakeVMMakerAbstractBuilder commentStamp: 'tty 6/8/2014 17:21' prior: 0!
- !SqueakCMakeVMMakerAbstractBuilder commentStamp: 'tty 6/7/2014 15:35' prior: 0!
  I am an abstract base class for various CMakeVMMakerSqueak builders.
  
+ I am a singleton.
- most of my methods are on class side.
- 
  I am a facade to the various Squeak[Platform][WordSize][VM][MemoryManager]Config classes that provide all the functionality.
+ I also act as a repository of common information for the various configurations.
- 
  Think of me as lipstick on a pig.
  
- oink!!
  
+ Each one of my subclasses manages the CMakeVMMakerSqueak configurations -------->in a specific category<-----. 
+ Win32Builder handles the Win32 Smalltalk Category, IOSBuilder handles the Smalltalk IOS category.
+ Yes, its a limitation of the design, but so it goes.
  
- I also act as a repository of common information for the various configurations.
  
  
+ 
+ 
+ 
+ 
+ 
+ 
+ 
  !
+ SqueakCMakeVMMakerAbstractBuilder class
+ 	instanceVariableNames: 'default'!

Item was removed:
- ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>allBuildConfigurations (in category 'as yet unclassified') -----
- allBuildConfigurations
- 	^#(#assert #assertWithHeartbeatTimer #debug #debugWithHeartbeatTimer #debugMultiThreadedFFI #release #releaseHeartbeatTimer #releaseMultiThreadedFFI)!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>availableBuildTypesFor: (in category 'queries') -----
+ availableBuildTypesFor: aSymbol
+ 	default ifNil:[default:= self new].
+ 	^default availableBuildTypesFor: aSymbol!

Item was removed:
- ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>availableBuildTypesForTarget: (in category 'as yet unclassified') -----
- availableBuildTypesForTarget: aSymbol
- 	self subclassResponsibility.
- 
- 
- !

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>availableBuilds (in category 'queries') -----
+ availableBuilds
+ 	default ifNil:[default:= self new].
+ 	^default availableBuilds!

Item was removed:
- ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>availableBuildsTypesForTarget:inCategory: (in category 'as yet unclassified') -----
- availableBuildsTypesForTarget: aSymbol inCategory: aCategoryName
- 	|d |
- 	d:=(self configurationDictionary:aCategoryName) at: aSymbol ifAbsent:[^SqueakCMakeVMMakerAbstractBuilder noBuildConfigurations].
- 	^d value
- 
- 
- 
- !

Item was removed:
- ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>availableTargets: (in category 'as yet unclassified') -----
- availableTargets: aCategoryName
- 
- 	^((self configurationDictionary:aCategoryName) keys asSortedCollection) sort
- 
- !

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>buildDirectory (in category 'queries') -----
+ buildDirectory
+ 	"buildDirectory is user friendly term. dirBuildPlatform is internal naming convention. "
+ 	^self dirBuildPlatform
+ !

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>buildTypeDirectoriesFor: (in category 'queries') -----
+ buildTypeDirectoriesFor: aSymbol
+ 	default ifNil:[default:= self new].
+ 	^default buildTypeDirectoriesFor: aSymbol!

Item was removed:
- ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>configurationDictionary: (in category 'as yet unclassified') -----
- configurationDictionary: aCategoryName
- 	"return a Dictionary of CMakeMakerSqueak-XYZ platform configurations and their associated available builds"
- 	| result |
- 	result := Dictionary new.
- 	Smalltalk globals 
- 		allClassesDo:[:c | (c class category asString withoutQuoting = aCategoryName)
- 			ifTrue: [ result at: (c name) put:[c availableBuilds].]].
- 	^result
- 
- !

Item was changed:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>configurationsCategory (in category 'queries') -----
- ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>configurationsCategory (in category 'as yet unclassified') -----
  configurationsCategory
+ 	default ifNil:[default:= self new].
+ 	^default configurationsCategory
+ !
- 	"Answer the category in which the Builder's configurations reside."
- 	self subclassResponsibility!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>default (in category 'initialize-release') -----
+ default
+ 	^default ifNil:[default:= self new]!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>dirBuildPlatform (in category 'queries') -----
+ dirBuildPlatform
+ 	default ifNil:[default:= self new].
+ 	^default dirBuildPlatform!

Item was removed:
- ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>noBuildConfigurations (in category 'as yet unclassified') -----
- noBuildConfigurations
- 	^#(#noBuildsImplementedForThisConfiguration)!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>sourceDirectoryFor: (in category 'queries') -----
+ sourceDirectoryFor: aSymbol
+ 	default ifNil:[default:= self new].
+ 	^default sourceDirectoryFor: aSymbol!

Item was removed:
- ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>userErrorInvalidTarget: (in category 'as yet unclassified') -----
- userErrorInvalidTarget: aSymbol
- 	^'I cannot build for this target', aSymbol asString.!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>allBuildConfigurations (in category 'queries') -----
+ allBuildConfigurations
+ 	^buildTypeAndDirectoryInfo keys asOrderedCollection sorted.
+ !

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>availableBuildTypesFor: (in category 'queries') -----
+ availableBuildTypesFor: aSymbol
+ 	"answer a build type. somthing like #assert, #debug, #release. Each configuration is in charge of letting us know what it does"
+ 	[
+ 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)  "verify the class is handled by this concrete builder"
+ 		ifTrue:[	^self availableBuildTypesFor: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]  "if so, go get its info"
+ 		ifFalse:[^self userErrorInvalidTarget: aSymbol]
+ 	] ifError:[^'BuildTypeForTarget: ''', aSymbol , ''' not found' ].
+ 	^nil.!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>availableBuildTypesFor:inCategory: (in category 'queries') -----
+ availableBuildTypesFor: aSymbol inCategory: aCategoryName
+ 	|d |
+ 	"extract the CMakeVMakerConfigurationInfo object for a configuration and return the availableBuildTypes ."
+ 	d:=(self configurationDictionary:aCategoryName) at: aSymbol ifAbsent:[^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations].
+ 	^d availableBuildTypes
+ 
+ 
+ 
+ !

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>availableBuilds (in category 'queries') -----
+ availableBuilds
+ 	"abstract class pass through for concrete instance"
+ 	^self availableBuilds: (self configurationsCategory)!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>availableBuilds: (in category 'queries') -----
+ availableBuilds: aCategoryName
+ 	"answer the CMakeVMakerSqueak configurations in a Smalltalk category"
+ 	^((self configurationDictionary:aCategoryName) keys asSortedCollection) sort
+ 
+ !

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>buildTypeDirectoriesFor: (in category 'queries') -----
+ buildTypeDirectoriesFor: aSymbol
+ 	"answer a subset of buildTypeAndDirectoryInfo based on the buildTypes the configuration supports   "
+ 	[
+ 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)  "verify the class is handled by this concrete builder"
+ 		ifTrue:[	^self buildTypeDirectoriesFor: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]  "if so, go get its info"
+ 		ifFalse:[^self userErrorInvalidTarget: aSymbol]
+ 	] ifError:[^'BuildTypeDirectoriesFor: ''', aSymbol , ''' not found' ].
+ 	^nil.!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>buildTypeDirectoriesFor:inCategory: (in category 'queries') -----
+ buildTypeDirectoriesFor: aSymbol inCategory: aCategoryName
+ 	|d |
+ 	"extract the CMakeVMakerConfigurationInfo object for a configuration and return the availableBuildTypes ."
+ 	d:=(self configurationDictionary:aCategoryName) at: aSymbol ifAbsent:[^SqueakCMakeVMMakerAbstractBuilder default noBuildConfigurations].
+ 	^d availableBuildTypes
+ 
+ 
+ 
+ !

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>configurationDictionary: (in category 'queries') -----
+ configurationDictionary: aCategoryName
+ 	| result info|
+ 	self flag:'tty'. "building this on the fly is slow. Should I cache/lazy initialize?"
+ 
+ 	"return a Dictionary of CMakeMakerSqueak-XYZ platform configurations and their associated CMakeVMakerConfigurationInfo "
+ 
+ 	result := Dictionary new.
+ 	Smalltalk globals 
+ 		allClassesDo:[:c | (c class category asString withoutQuoting = aCategoryName)    "is there a faster lookup method?"
+ 			ifTrue: [ 
+ 				info := CMakeVMakerConfigurationInfo new.
+ 				info visit: c.
+ 				result at: (c name) put:info.]].
+ 	^result
+ 
+ !

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	"Answer the category in which the Builder's configurations reside."
+ 	self subclassResponsibility!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>dirBuildPlatform (in category 'queries') -----
+ dirBuildPlatform
+ 	"Answer the root directory for this configuration's build that contains build, build.assert...etc directories. example:  cmake_build.linux32x86."
+ 	^self dirBuildPlatform:(self configurationsCategory)!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>dirBuildPlatform: (in category 'queries') -----
+ dirBuildPlatform: aCategoryName
+ 	|info|
+ 	"All the configurations in a category share the same build platform."
+ 	info:=(self configurationDictionary:aCategoryName) at: ((self configurationDictionary:aCategoryName) keys at:1).  "i.e. aDictionary at:1"
+ 	^info dirBuildPlatform
+ 	
+ 	
+ !

Item was changed:
  ----- Method: SqueakCMakeVMMakerAbstractBuilder>>initialize (in category 'initialization') -----
  initialize
+ 	"a stupid <cough>temporary</cough> hack to workaround initialization problems"
+ 	Cogit allSubclassesDo: [ :each | each initializeWithOptions: (VMMaker new instVarNamed: 'optionsDictionary') ].
  
+ 	self initializeBuildTypeAndDirectoryInfo.
- 	"a stupid temporary hack to workaround initialization problems"
  
+ 	!
- 	Cogit allSubclassesDo: [ :each | each initializeWithOptions: (VMMaker new instVarNamed: 'optionsDictionary') ]!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>initializeBuildTypeAndDirectoryInfo (in category 'initialization') -----
+ initializeBuildTypeAndDirectoryInfo
+ 	"A dictionary of build types and the name of the directory they are stored in"
+ 	buildTypeAndDirectoryInfo := Dictionary new.
+ 	buildTypeAndDirectoryInfo 
+ 			at: #assert put:'build.assert';
+ 		      at: #assertWithHeartbeatTimer put: 'build.assert.itimerheartbeat';
+                   at:#debug put: 'build.debug';
+ 			at: #debugWithHeartbeatTimer put: 'build.debug.itimerheartbeat';
+ 			at: #debugMultiThreadedFFI put: 'build.debug.multithreaded';
+ 			at: #release put: 'build';
+ 			at: #releaseHeartbeatTimer put: 'build.itimerheartbeat';
+ 			at: #releaseMultiThreadedFFI put: 'build.multithreaded'.!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>noBuildConfigurations (in category 'queries') -----
+ noBuildConfigurations
+ 	^#(#noBuildsImplementedForThisConfiguration)!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>sourceDirectoryFor: (in category 'queries') -----
+ sourceDirectoryFor: aSymbol
+ 	"answer a subset of buildTypeAndDirectoryInfo based on the buildTypes the configuration supports   "
+ 	[
+ 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)  "verify the class is handled by this concrete builder"
+ 		ifTrue:[	^self sourceDirectoryFor: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]  "if so, go get its info"
+ 		ifFalse:[^self userErrorInvalidTarget: aSymbol]
+ 	] ifError:[^'sourceDirectoryFor: ''', aSymbol , ''' not found' ].
+ 	^nil.!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>sourceDirectoryFor:inCategory: (in category 'queries') -----
+ sourceDirectoryFor: aSymbol inCategory: aCategoryName
+ 	|info |
+ 	"extract the CMakeVMakerConfigurationInfo object for a configuration and return the sourceDirectory ."
+ 	info:=(self configurationDictionary:aCategoryName) at: aSymbol ifAbsent:[^SqueakCMakeVMMakerAbstractBuilder default userErrorNoSource:aSymbol].
+ 	^info dirSource
+ 
+ 
+ 
+ !

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>userErrorInvalidTarget: (in category 'queries') -----
+ userErrorInvalidTarget: aSymbol
+ 	^'I cannot build for this target', aSymbol asString.!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>userErrorNoSource: (in category 'queries') -----
+ userErrorNoSource: aSymbol
+ 	^'I cannot find the source directory for ', aSymbol asString.!

Item was added:
+ ----- Method: SqueakCocoaIOSConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations
+ !

Item was removed:
- ----- Method: SqueakIA32BochsBuilder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) = (self configurationsCategory) 
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakIA32BochsBuilder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakIA32BochsBuilder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-IA32-Bochs'!

Item was added:
+ ----- Method: SqueakIA32BochsBuilder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-IA32-Bochs'!

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations
+ !

Item was removed:
- ----- Method: SqueakIOSBuilder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) = (self configurationsCategory) 
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakIOSBuilder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakIOSBuilder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-IOS'!

Item was added:
+ ----- Method: SqueakIOSBuilder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-IOS'!

Item was removed:
- ----- Method: SqueakLinux32ARMv6Builder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol). ]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.
- !

Item was removed:
- ----- Method: SqueakLinux32ARMv6Builder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakLinux32ARMv6Builder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-Linux32ARMv6'!

Item was added:
+ ----- Method: SqueakLinux32ARMv6Builder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-Linux32ARMv6'!

Item was removed:
- ----- Method: SqueakLinux32X86Builder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakLinux32X86Builder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakLinux32X86Builder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-Linux32x86'!

Item was added:
+ ----- Method: SqueakLinux32X86Builder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-Linux32x86'!

Item was removed:
- ----- Method: SqueakLinux32X86_64Builder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakLinux32X86_64Builder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakLinux32X86_64Builder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-LinuxX86_64'!

Item was added:
+ ----- Method: SqueakLinux32X86_64Builder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-LinuxX86_64'!

Item was removed:
- ----- Method: SqueakLinux32X86_64_32CompatBuilder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakLinux32X86_64_32CompatBuilder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakLinux32X86_64_32CompatBuilder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-LinuxX86_64-32Compatibility'!

Item was added:
+ ----- Method: SqueakLinux32X86_64_32CompatBuilder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-LinuxX86_64-32Compatibility'!

Item was removed:
- ----- Method: SqueakMacOSBuilder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakMacOSBuilder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakMacOSBuilder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-MacOS'!

Item was added:
+ ----- Method: SqueakMacOSBuilder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-MacOS'!

Item was changed:
  ----- Method: SqueakMacOSConfig class>>availableBuilds (in category 'as yet unclassified') -----
  availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  allBuildConfigurations!
- 	^SqueakCMakeVMMakerAbstractBuilder allBuildConfigurations!

Item was added:
+ ----- Method: SqueakMacOSConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default allBuildConfigurations copyWithoutAll:#(#assert #assertWithHeartbeatTimer #debugMultiThreadedFFI #debugWithHeartbeatTimer #releaseHeartbeatTimer )
+ !

Item was removed:
- ----- Method: SqueakMacOSPowerPCBuilder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakMacOSPowerPCBuilder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakMacOSPowerPCBuilder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-MacOSPowerPC'!

Item was added:
+ ----- Method: SqueakMacOSPowerPCBuilder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-MacOSPowerPC'!

Item was removed:
- ----- Method: SqueakMacOSX32x86Builder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakMacOSX32x86Builder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakMacOSX32x86Builder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-MacOSX32x86'!

Item was added:
+ ----- Method: SqueakMacOSX32x86Builder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-MacOSX32x86'!

Item was added:
+ ----- Method: SqueakSunOS32x8664CogConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations
+ 
+ !

Item was removed:
- ----- Method: SqueakSunOS32x86Builder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakSunOS32x86Builder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakSunOS32x86Builder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-SunOS32x86'!

Item was added:
+ ----- Method: SqueakSunOS32x86Builder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-SunOS32x86'!

Item was added:
+ ----- Method: SqueakSunOS32x86CogConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations
+ !

Item was removed:
- ----- Method: SqueakSunOS32x86_64Builder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) =  (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakSunOS32x86_64Builder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakSunOS32x86_64Builder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^'CMakeVMMakerSqueak-SunOS32x86_64'!

Item was added:
+ ----- Method: SqueakSunOS32x86_64Builder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^'CMakeVMMakerSqueak-SunOS32x86_64'!

Item was removed:
- ----- Method: SqueakWin32x86Builder class>>availableBuildTypesForTarget: (in category 'documentation') -----
- availableBuildTypesForTarget: aSymbol
- 	self flag:'tty'. "I do not like the hard coding of the category name. Also, how will inform kludge up auto-builds?"
- 	[
- 	((Smalltalk at: aSymbol)  category) = (self configurationsCategory)
- 		ifTrue:[	^super availableBuildsTypesForTarget: aSymbol inCategory: ((Smalltalk at: aSymbol)  category).]
- 		ifFalse:[self inform: (self userErrorInvalidTarget: aSymbol)]
- 	] ifError:[self inform: (self userErrorInvalidTarget: aSymbol)].
- 	^nil.!

Item was removed:
- ----- Method: SqueakWin32x86Builder class>>availableTargets (in category 'documentation') -----
- availableTargets
- 	^super availableTargets: (self configurationsCategory)!

Item was removed:
- ----- Method: SqueakWin32x86Builder class>>configurationsCategory (in category 'documentation') -----
- configurationsCategory
- 	^ 'CMakeVMMakerSqueak-Win32x86'!

Item was added:
+ ----- Method: SqueakWin32x86Builder>>configurationsCategory (in category 'queries') -----
+ configurationsCategory
+ 	^ 'CMakeVMMakerSqueak-Win32x86'!

Item was added:
+ ----- Method: SqueakWin32x86CogFamilyConfig>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder default allBuildConfigurations copyWithoutAll:#(#assert #assertWithHeartbeatTimer #debugMultiThreadedFFI #debugWithHeartbeatTimer #release #releaseHeartbeatTimer)
+ 
+ 
+ !

Item was changed:
  Trait named: #TCPlatformConfigForSqueak
  	uses: {}
  	category: 'CMakeVMMakerSqueak'!
  
+ !TCPlatformConfigForSqueak commentStamp: 'tty 6/8/2014 10:47' prior: 0!
+ A TSqueakCPlatformConfig provides a template of methods which must be customized for Squeak compatibility with  pharo CMakeVMMaker classes. I also act as a repository of paths and directories. 
- !TCPlatformConfigForSqueak commentStamp: 'tty 6/6/2014 16:01' prior: 0!
- A TSqueakCPlatformConfig provides a template of methods which must be customized for Squeak compatibility with  pharo CMakeVMMaker classes.
  
  I exist because tty does not have (and, should not have) permission to modify  to the existing inheritence tree in the pharo CMakeVMMaker categories.
  
  
+ my protocol 'squeak compatibility' are the pharo override methods.
+ my protocol 'cmake' contains helper methods unique to the squeak implementation of CMakeVMMakerSqueak and do not exist in the pharo stack.
  
  
  
+ 
+ 
+ 
  !

Item was removed:
- ----- Method: TCPlatformConfigForSqueak class>>availableBuilds (in category 'accessing') -----
- availableBuilds
- 	^SqueakCMakeVMMakerAbstractBuilder allBuildConfigurations
- 
- 	" ^SqueakCMakeVMMakerAbstractBuilder noBuildConfigurations.
- 	  ^(SqueakCMakeVMMakerAbstractBuilder allBuildConfigurations 
- 			copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   
- 	"!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>availableBuilds (in category 'cmake') -----
+ availableBuilds
+ 	^SqueakCMakeVMMakerAbstractBuilder  default  allBuildConfigurations
+ 
+ 	" ^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations.
+ 	  ^(SqueakCMakeVMMakerAbstractBuilder  default  allBuildConfigurations 
+ 			copyWithoutAll: #( #assertWithHeartbeatTimer #debugWithHeartbeatTimer debugMultiThreadedFFI.....etc))   
+ 	"!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>dirAndroid (in category 'cmake') -----
+ dirAndroid
+ 	^'Do Not Build. See Class Comment'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirOutput (in category 'cmake') -----
  dirOutput
+ 	^'cmake_products'!
- 	^'results'!



More information about the Vm-dev mailing list