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

commits at source.squeak.org commits at source.squeak.org
Mon Jun 16 22:39:07 UTC 2014


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

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

Name: CMakeVMMakerSqueak-tty.58
Author: tty
Time: 16 June 2014, 6:39:15.056 pm
UUID: e61942f8-d638-4306-8cd6-34bb6275454e
Ancestors: CMakeVMMakerSqueak-tty.57

configureBuild coded in Trait

There are several methods in there that have to be determined at generate time.

One of those is configH which I just successfully re-routed and was able to customize on a per-buildType basis.

Tested this on  Linux64x86w32BitSqueakCogV3SlackwareNoGLConfig 

All tests still pass.

Next up, intercept and route:

setGlobalOptionsBuild: aMaker
setGlobalOptionsAfterDetermineSystemBuild: aMaker
setupDirectoriesBuild: aMaker;
extraVMSettingsBuild: aMaker
postBuildActionsBuild: aMaker

=============== Diff against CMakeVMMakerSqueak-tty.57 ===============

Item was changed:
  ----- Method: CMakeVMMakerSqueakHowToCreateNewConfiguration class>>step4 (in category 'pages') -----
  step4
  	^HelpTopic
  		title:'Step 4. Customize the "cmake build type config" protocol'
  		contents:
+ 'When we invoke a Builder with a command like:
- 'TODO: summarize this
  
+ SqueakLinux64x86w32CompatBuilder
+ 	configureA: #Linux64x86w32BitSqueakCogV3SlackwareNoGLConfig forBuildType: #buildDebugITimerHeartbeat;
+ 	generateSources;
+ 	generate.  
+ 
+ We are telling the Builder to select a Configuration and have that Configuration configure itself to produce CMake output for the buildType: #buildDebugITimerHeartbeat;
+ 
+ On your configuration the entry point for your configuration is one of:
+ 
+ configureBuild
+ configureBuildAssert
+ configureBuildAssertITimerHeartbeat
+ configureBuildDebug
+ configureBuildDebugITimerHeartbeat                        <----this one is selected by buildType: #buildDebugITimerHeartbeat;
+ configureBuildITimerHeartbeat
+ configureBuildMultiThreaded
+ configureBuildMultiThreadedAssert
+ configureBuildMultiThreadedDebug
+ 
+ Within this method, system state is set up and customizable for many methods in CMakeVMaker CPlatformConfig.
+ 
+ "setGlobalOptions: aMaker"
+ "setGlobalOptionsAfterDetermineSystem: aMaker"
- setGlobalOptions
- setGlobalOptionsAfterDetermineSystem
  setupDirectories
  preferredIncludes
  standardIncludes
  compilerFlags
+ "extraVMSettings: aMaker"
- extraVMSettings
  internalPlugins
  externalPlugins
  thirdpartyLibs
+ "setExtraTargetProperties: aMaker"
+ "postBuildActions: aMaker"
+ configH
- setExtraTargetProperties:aMaker
- postBuildActions: aMaker
  
+ The methods above that take the : aMaker argument are handled on-the-fly later in the process and are only presented here for informational purposes.
+ 
+ 
+ 
  A Reminder: Consistent Naming Conventions Are Our Friends!!
  
  '!

Item was changed:
  ----- Method: CMakeVMMakerSqueakHowToCreateNewConfiguration class>>step4m (in category 'pages') -----
  step4m
  	^HelpTopic
  		title:'Step4m configH'
  		contents:
+ ' This is the contents of a config.h file in the build directory.
+ It is used only in Unix builds in CMakeVMMaker.
- 'TODO: summarize this
  
  
+ It is called from the method ''extraVMSettings'' of  CogUnixConfig in CMakeVMMaker when CogUnixConfig sends the message:		self generateConfigH.
  
+ To provide a custom config.h CMakeVMakerSqueak subclasses that message ''self generateConfigH'' and routes the call
+ to ''generateConfigH: aBuildType''
+ 
+ From there, a block is evaluated appropriate for the build type that invokes a ''configHBuildXYZ'' method which can be overridden by you to 
+ return a custom config.h. The default is to return the base configH.
+ 
+ 
  A Reminder: Consistent Naming Conventions Are Our Friends!!
  
  '!

Item was changed:
+ ----- Method: Linux32x86Config>>generateConfigH (in category 'headers generation') -----
- ----- Method: Linux32x86Config>>generateConfigH (in category 'squeak compatibility') -----
  generateConfigH
+ 	"	
+ 	used to be: 	
+ 		self write: self configH toFile: 'config.h'
+       but with variable buildTypes we need:
+ "
+ 	self write: (self generateConfigH: buildType) toFile: 'config.h'   
+ !
- 	"will fix that later"
- 	self write: self configH toFile: 'config.h'!

Item was added:
+ ----- Method: Linux64Config>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ 	"	
+ 	used to be: 	
+ 		self write: self configH toFile: 'config.h'
+       but with variable buildTypes we need:
+ "
+ 	self write: (self generateConfigH: buildType) toFile: 'config.h'   
+ !

Item was changed:
  ----- Method: Linux64x86w32BitConfig>>configureBuild (in category 'cmake') -----
  configureBuild
+ 	"configure this Configuration for a buildType #build"
+ 	self 
+ "		setGlobalOptionsBuild: aMaker"
+ "		setGlobalOptionsAfterDetermineSystemBuild: aMaker"
+ "		setupDirectoriesBuild: aMaker;"
+ 		preferredIncludesBuild;
+ 		standardIncludesBuild;
+ 		compilerFlagsBuild;
+ "		extraVMSettingsBuild: aMaker"
+ 		internalPluginsBuild;
+ 		externalPluginsBuild;
+ 		thirdpartyLibsBuild.
+ "		postBuildActionsBuild: aMaker"
+ "		configHBuild"!
- 	self required!

Item was changed:
+ ----- Method: Linux64x86w32BitConfig>>generateConfigH (in category 'headers generation') -----
- ----- Method: Linux64x86w32BitConfig>>generateConfigH (in category 'squeak compatibility') -----
  generateConfigH
+ 	"	
+ 	used to be: 	
+ 		self write: self configH toFile: 'config.h'
+       but with variable buildTypes we need:
+ "
+ 	self write: (self generateConfigH: buildType asSymbol) toFile: 'config.h'   
+ !
- 	"will fix that later"
- 	self write: self configH toFile: 'config.h'!

Item was removed:
- ----- Method: Linux64x86w32BitSqueakCogV3SlackwareNoGLConfig>>configH (in category 'squeak compatibility') -----
- configH
- 	^ '
- 
- #define HAVE_UUID_H 1 
- #define HAVE_UUIDGEN 1
- 
- #ifndef __sq_config_h
- #define __sq_config_h
- 
- /* explicit image width */
- 
- #define	HAVE_INTERP_H 1
- 
- /* package options */
- 
- #define	USE_X11 1
- 
- #undef	USE_X11_GLX 
- /* #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
- 
- #undef	HAVE_GL_GL_H
- #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	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
- 
- #endif /* __sq_config_h */
- 																																																																					
- 																																																																				'!

Item was added:
+ ----- Method: Linux64x86w32BitSqueakCogV3SlackwareNoGLConfig>>configHBuild (in category 'headers generation') -----
+ configHBuild
+ 	^ '
+ 
+ #define HAVE_UUID_H 1 
+ #define HAVE_UUIDGEN 1
+ 
+ #ifndef __sq_config_h
+ #define __sq_config_h
+ 
+ /* explicit image width */
+ 
+ #define	HAVE_INTERP_H 1
+ 
+ /* package options */
+ 
+ #define	USE_X11 1
+ 
+ #undef	USE_X11_GLX 
+ /* #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
+ 
+ #undef	HAVE_GL_GL_H
+ #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	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
+ 
+ #endif /* __sq_config_h */
+ 																																																																					
+ 																																																																				'!

Item was changed:
+ ----- Method: SqueakAndroidStackEvtConfig>>generateConfigH (in category 'headers generation') -----
- ----- Method: SqueakAndroidStackEvtConfig>>generateConfigH (in category 'source files') -----
  generateConfigH
+ 	"	
+ 	used to be: 	
+ 		self write: self configH toFile: 'config.h'
+       but with variable buildTypes we need:
+ "
+ 	self write: (self generateConfigH: buildType) toFile: 'config.h'   
+ !
- 	"will fix that later"
- 	self write: self configH toFile: 'config.h'!

Item was added:
+ ----- Method: SqueakBSDConfig>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ 	"	
+ 	used to be: 	
+ 		self write: self configH toFile: 'config.h'
+       but with variable buildTypes we need:
+ "
+ 	self write: (self generateConfigH: buildType) toFile: 'config.h'   
+ !

Item was changed:
  ----- Method: SqueakCMakeVMMakerAbstractBuilder>>configureABuildFor:withBuildType: (in category 'building') -----
  configureABuildFor: configSymbol withBuildType: typeSymbol
  	| i |
  	self flag:'tty'. "excludeFromBuild returning True does not exit gracefully"
  	"Do some sanity checks, then set the internal state of a Configuration for a particular build type. "
  	[
  	((Smalltalk at: configSymbol)  category) =  (self configurationsCategory)  "verify the class is handled by this concrete builder"
  		ifTrue:[	
  				config := (Smalltalk at: configSymbol) new.                              "verify this config can handle this build type."
  				config excludeFromBuild                                                         "has a developer excluded this build manually?"
  					ifTrue:[^self userErrorConfigMarkedAsExcludeFromBuild: configSymbol].   
  				i:=config availableBuilds indexOf:typeSymbol                                    
  						ifAbsent:[^self userErrorInvalidBuildType: typeSymbol "this config does not support this build type"
  										forConfiguration: configSymbol 
  										hasTypes: config availableBuilds].
  
  				(config configureForBuildType: typeSymbol) value.                             "config configure yourself"
  				^self]
  		ifFalse:[^self userErrorInvalidTarget: configSymbol]
  	] ifError:[^'error configureABuildFor: ''', configSymbol].
  
  	^nil.
  	
  
  	!

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ 	"	
+ 	used to be: 	
+ 		self write: self configH toFile: 'config.h'
+       but with variable buildTypes we need:
+ "
+ 	self write: (self generateConfigH: buildType) toFile: 'config.h'   
+ !

Item was added:
+ ----- Method: SqueakMacOSConfig>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ 	"	
+ 	used to be: 	
+ 		self write: self configH toFile: 'config.h'
+       but with variable buildTypes we need:
+ "
+ 	self write: (self generateConfigH: buildType) toFile: 'config.h'   
+ !

Item was changed:
+ ----- Method: SqueakMacOSXPowerPCConfig>>generateLicense (in category 'accessing') -----
- ----- Method: SqueakMacOSXPowerPCConfig>>generateLicense (in category 'as yet unclassified') -----
  generateLicense 
  	self 
  		write:  (self class licenseTemplate 
  			format: { self version })
  		toFile: 'LICENSE.txt'
  	!

Item was changed:
+ ----- Method: SqueakMacOSXPowerPCConfig>>generatePluginsList (in category 'accessing') -----
- ----- Method: SqueakMacOSXPowerPCConfig>>generatePluginsList (in category 'as yet unclassified') -----
  generatePluginsList 
  	self 
  		write:  (self class pluginsTemplate 
  			format: {
  				self version. 
  				String streamContents: [ :stream | self internalPlugins asStringOn: stream delimiter: String cr ].
  				String streamContents: [ :stream | self externalPlugins asStringOn: stream delimiter: String cr ].
  				self executableName })
  		toFile: 'PLUGINS.txt'
  	!

Item was changed:
+ ----- Method: SqueakMacOSXPowerPCConfig>>version (in category 'accessing') -----
- ----- Method: SqueakMacOSXPowerPCConfig>>version (in category 'as yet unclassified') -----
  version
  	^ ''!

Item was added:
+ ----- Method: SqueakSunOS32x86Config>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ 	"	
+ 	used to be: 	
+ 		self write: self configH toFile: 'config.h'
+       but with variable buildTypes we need:
+ "
+ 	self write: (self generateConfigH: buildType) toFile: 'config.h'   
+ !

Item was added:
+ ----- Method: SqueakWin32x86Config>>generateConfigH (in category 'headers generation') -----
+ generateConfigH
+ 	"	
+ 	used to be: 	
+ 		self write: self configH toFile: 'config.h'
+       but with variable buildTypes we need:
+ "
+ 	self write: (self generateConfigH: buildType) toFile: 'config.h'   
+ !

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>configH (in category 'headers generation') -----
  configH
+ "ONLY USED ON UNIX CONFIGS included here for completeness and consistency CogUnixConfig browse.
- 	self flag:'tty' . "TODO: express correctly the 'what' and 'why' of this method"
- 	self required
  "
+ "
  Use  configH to tell your plugins where to find its libraries etc.
  The version of this is platform dependent.
  You may also need to edit your oscogvm/platforms/YOUR PLATFORM/plugins/ThePLuginDirectory/acinclude.m4 file so that it conforms to your system.
  
  tty needed a custom version of this in Linux32x86SqueakCogV3NoGLConfig in order to build the UUIDPlugin.
  
  Go to oscogvm/platforms/YOUR PLATFORM/plugins/ThePLuginDirectory and look at the acinclude.m4 file
  you may need to edit that .
  
  NOTE: CPlatformConfig contains a useable version of this that you can modify. 
  
  I reproduce it here, but with double quotes changed to two single quotes so that the commenting will hold.
  I provide a <---N.B quotes need changing at each place they have been modified.
  
  Again. it is easier to copy the one in CPlatformConfig.
  
  
  	^ '
  #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 */
  #define HAVE_LIBXEXT 1
  #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
  /* #undef       HAVE_ICONV_H */
  
  #define HAVE_SYS_TIME_H 1
  #define TIME_WITH_SYS_TIME 1
  
  #define HAVE_SYS_FILIO_H 1
  
  /* #undef       HAVE_SYS_AUDIOIO_H */
  /* #undef       HAVE_SUN_AUDIOIO_H */
  
  /* #undef       HAVE_PTY_H */
  /* #undef       HAVE_UTIL_H */
  #define HAVE_LIBUTIL_H 1
  /* #undef       HAVE_STROPTS_H */
  
  #define HAVE_GL_GL_H 1
  /* #undef       HAVE_OPENGL_GL_H */
  
  /* #undef       NEED_SUNOS_H */
  
  
  #define HAVE_UUID_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
  /* #undef       HAVE_ALLOCA_H */
  
  #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 squeakInt64 long long
  
  /* architecture */
  
  #define OS_TYPE ''unix''    <---N.B quotes need changing at each place they have been modifying.
  
  #define VM_HOST ''i386-freebsd8.2''    <---N.B quotes need changing at each place they have been modifying.
  #define VM_HOST_CPU ''i386''    <---N.B quotes need changing at each place they have been modifying.
  /* #undef       VM_HOST_VENDOR */
  #define VM_HOST_OS ''freebsd8.2''   <---N.B quotes need changing at each place they have been modifying.
  #define VM_BUILD_STRING ''Unix built on ''__DATE__ '' ''__TIME__'' Compiler: ''__VERSION__          <---N.B quotes need changing at each place they have been modifying.
  
  /* #undef       WORDS_BIGENDIAN */
  /* #undef       DOUBLE_WORD_ALIGNMENT */
  
  /* damage containment */
  
  /* #undef       DARWIN */
  
  #ifdef NEED_SUNOS_H
  # include ''sunos.h''    <---N.B quotes need changing at each place they have been modifying.
  #endif
  
  /* other configured variables */
  
  #define SQ_VERSION ''3.9a-7024''    <---N.B quotes need changing at each place they have been modifying.
  #define VM_VERSION ''3.9-7''    <---N.B quotes need changing at each place they have been modifying.
  #define VM_MODULE_PREFIX ''    <---N.B quotes need changing at each place they have been modifying.
  /* #undef VM_DLSYM_PREFIX */    
  #define VM_X11DIR '/usr/X11R6/lib'    <---N.B quotes need changing at each place they have been modifying.
  
  /* avoid dependencies on glibc2.3 */
  
  /* #undef HAVE_FEATURES_H */
  
  #if defined(HAVE_FEATURES_H)
  # include ''glibc.h''    <---N.B quotes need changing at each place they have been modifying.
  #endif
  
  #endif /* __sq_config_h */
  																																																																					
  																																																																				'
  "!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configHNoBuildType (in category 'headers generation') -----
+ configHNoBuildType
+ 	"SHOULD NOT GET HERE"	
+ 	self halt.!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>configureBuild (in category 'cmake configuration') -----
  configureBuild
+ 	"configure this Configuration for a buildType #build"
+ 	self 
+ "		setGlobalOptionsBuild: aMaker"
+ "		setGlobalOptionsAfterDetermineSystemBuild: aMaker"
+ "		setupDirectoriesBuild: aMaker;"
+ 		preferredIncludesBuild;
+ 		standardIncludesBuild;
+ 		compilerFlagsBuild;
+ "		extraVMSettingsBuild: aMaker"
+ 		internalPluginsBuild;
+ 		externalPluginsBuild;
+ 		thirdpartyLibsBuild
+ "		postBuildActionsBuild:"
+ "		configHBuild."
+ 		
+ 
+ 
+ 		
+ 		
+ 		!
- 	self compilerFlagsBuild.!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>generateConfigH (in category 'headers generation') -----
  generateConfigH
+ 	"	
+ 	used to be: 	
+ 		self write: self configH toFile: 'config.h'
+       but with variable buildTypes we need:
+ 		self write: (generateConfigH: (self buildType))toFile: 'config.h'   
+       However, I cannot use an instanceVariable in a Trait. so must implement in concrete class
+ "
+ 	self required.
+ 
+ !
- 	"will fix that later"
- 	self write: self configH toFile: 'config.h'!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>generateConfigH: (in category 'headers generation') -----
+ generateConfigH: aBuildType
+ 	"self write: self configH toFile: 'config.h'"
+ 
+ 	|d |
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo copy.
+ 	d 
+ 		at: #build put: [self configHBuild];
+ 		at: #buildAssert  put: [self configHBuildAssert];
+ 		at: #buildAssertITimerHeartbeat  put: [self configHBuildAssertITimerHeartbeat];
+             at:#buildDebug  put: [self configHBuildDebug];   "located in CMakeVMMaker CPlatformConfig"
+ 		at: #buildDebugITimerHeartbeat  put: [self configHBuildDebugITimerHeartbeat ];
+ 		at: #buildDebugMultiThreaded  put: [self configHBuildDebugMultiThreaded];
+ 		at: #buildITimerHeartbeat  put: [self configHBuildITimerHeartbeat];
+ 		at: #buildMultiThreaded  put: [self configHBuildMultiThreaded ];
+ 		at: #buildMultiThreadedAssert  put: [self configHBuildMultiThreadedAssert];
+ 		at: #buildMultiThreadedDebug   put: [self configHBuildMultiThreadedDebug ];
+ 		at: #buildNone put:[self configHNoBuildType].
+ 
+ 
+ 	 ^(d at: ( aBuildType)) value
+ 
+ 
+ 
+ !

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuild (in category 'cmake config build type ') -----
+ preferredIncludesBuild	
+ 	"convencience method to customize for this build. default is self preferredIncludes"
+ 	^self preferredIncludes
+ 
+ !
- preferredIncludesBuild
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildAssert (in category 'cmake config build type ') -----
  preferredIncludesBuildAssert
+ 	"convencience method to customize for this build. default is self preferredIncludes"
+ 	^self preferredIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildAssertITimerHeartbeat (in category 'cmake config build type ') -----
  preferredIncludesBuildAssertITimerHeartbeat
+ 	"convencience method to customize for this build. default is self preferredIncludes"
+ 	^self preferredIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildDebug (in category 'cmake config build type ') -----
  preferredIncludesBuildDebug
+ 	"convencience method to customize for this build. default is self preferredIncludes"
+ 	^self preferredIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildDebugITimerHeartbeat (in category 'cmake config build type ') -----
  preferredIncludesBuildDebugITimerHeartbeat
+ 	"convencience method to customize for this build. default is self preferredIncludes"
+ 	^self preferredIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildITimerHeartbeat (in category 'cmake config build type ') -----
  preferredIncludesBuildITimerHeartbeat
+ 	"convencience method to customize for this build. default is self preferredIncludes"
+ 	^self preferredIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildMultiThreaded (in category 'cmake config build type ') -----
  preferredIncludesBuildMultiThreaded
+ 	"convencience method to customize for this build. default is self preferredIncludes"
+ 	^self preferredIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildMultiThreadedAssert (in category 'cmake config build type ') -----
  preferredIncludesBuildMultiThreadedAssert
+ 	"convencience method to customize for this build. default is self preferredIncludes"
+ 	^self preferredIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildMultiThreadedDebug (in category 'cmake config build type ') -----
  preferredIncludesBuildMultiThreadedDebug
+ 	"convencience method to customize for this build. default is self preferredIncludes"
+ 	^self preferredIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>preferredIncludesBuildNone (in category 'cmake config build type ') -----
  preferredIncludesBuildNone
+ 	"SHOULD NOT GET HERE"
+ 	self halt
+ !
- 	self required!

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuild (in category 'cmake config build type ') -----
- setupDirectoriesBuild 
- 	self required
- !

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuild: (in category 'cmake config build type ') -----
+ setupDirectoriesBuild: aMaker 
+ 	"convencience method to customize for this build. default is self setupDirectories: aMaker"
+ 	self setupDirectories: aMaker
+ !

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildAssert (in category 'cmake config build type ') -----
- setupDirectoriesBuildAssert 
- 	self required
- 
- !

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildAssert: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildAssert: aMaker 
+ 	"convencience method to customize for this build. default is self setupDirectories: aMaker"
+ 	self setupDirectories: aMaker
+ 
+ !

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildAssertITimerHeartbeat (in category 'cmake config build type ') -----
- setupDirectoriesBuildAssertITimerHeartbeat 
- 	self required
- 
- 
- !

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildAssertITimerHeartbeat: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildAssertITimerHeartbeat: aMaker 
+ 	"convencience method to customize for this build. default is self setupDirectories: aMaker"
+ 	self setupDirectories: aMaker
+ 
+ 
+ 
+ !

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildDebug (in category 'cmake config build type ') -----
- setupDirectoriesBuildDebug 
- 	self break
- 
- 
- !

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildDebug: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildDebug: aMaker 
+ 	"convencience method to customize for this build. default is self setupDirectories: aMaker"
+ 	self setupDirectories: aMaker
+ 
+ 
+ 
+ !

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildDebugITimerHeartbeat (in category 'cmake config build type ') -----
- setupDirectoriesBuildDebugITimerHeartbeat 
- 	self required.
- !

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildDebugITimerHeartbeat: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildDebugITimerHeartbeat: aMaker 
+ 	"convencience method to customize for this build. default is self setupDirectories: aMaker"
+ 	self setupDirectories: aMaker
+ 
+ !

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildITimerHeartbeat (in category 'cmake config build type ') -----
- setupDirectoriesBuildITimerHeartbeat 
- 
- 	self required
- !

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildITimerHeartbeat: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildITimerHeartbeat: aMaker 
+ 	"convencience method to customize for this build. default is self setupDirectories: aMaker"
+ 	self setupDirectories: aMaker!

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreaded (in category 'cmake config build type ') -----
- setupDirectoriesBuildMultiThreaded 
- 	self required
- !

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreaded: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildMultiThreaded: aMaker 
+ 	"convencience method to customize for this build. default is self setupDirectories: aMaker"
+ 	self setupDirectories: aMaker!

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreadedAssert (in category 'cmake config build type ') -----
- setupDirectoriesBuildMultiThreadedAssert
- 	self required
- !

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreadedAssert: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildMultiThreadedAssert: aMaker 
+ 	"convencience method to customize for this build. default is self setupDirectories: aMaker"
+ 	self setupDirectories: aMaker!

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreadedDebug (in category 'cmake config build type ') -----
- setupDirectoriesBuildMultiThreadedDebug 
- 	self required
- !

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildMultiThreadedDebug: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildMultiThreadedDebug: aMaker 
+ 	"convencience method to customize for this build. default is self setupDirectories: aMaker"
+ 	self setupDirectories: aMaker!

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildNone (in category 'cmake config build type ') -----
- setupDirectoriesBuildNone
- 	self required!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>setupDirectoriesBuildNone: (in category 'cmake config build type ') -----
+ setupDirectoriesBuildNone: aMaker 
+ 	"WE SHOULD NEVER GET HERE"
+ 	self halt.
+ !

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>standardIncludesBuild (in category 'cmake config build type ') -----
+ standardIncludesBuild
+ 	"convencience method to customize for this build. default is self standardIncludes"
+ 	^self standardIncludes
+ !
- standardIncludesBuild 
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildAssert (in category 'cmake config build type ') -----
  standardIncludesBuildAssert 
+ 	"convencience method to customize for this build. default is self standardIncludes"
+ 	^self standardIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildAssertITimerHeartbeat (in category 'cmake config build type ') -----
  standardIncludesBuildAssertITimerHeartbeat 
+ 	"convencience method to customize for this build. default is self standardIncludes"
+ 	^self standardIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildDebug (in category 'cmake config build type ') -----
  standardIncludesBuildDebug 
+ 	"convencience method to customize for this build. default is self standardIncludes"
+ 	^self standardIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildDebugITimerHeartbeat (in category 'cmake config build type ') -----
  standardIncludesBuildDebugITimerHeartbeat 
+ 	"convencience method to customize for this build. default is self standardIncludes"
+ 	^self standardIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildITimerHeartbeat (in category 'cmake config build type ') -----
  standardIncludesBuildITimerHeartbeat 
+ 	"convencience method to customize for this build. default is self standardIncludes"
+ 	^self standardIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildMultiThreaded (in category 'cmake config build type ') -----
  standardIncludesBuildMultiThreaded 
+ 	"convencience method to customize for this build. default is self standardIncludes"
+ 	^self standardIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildMultiThreadedAssert (in category 'cmake config build type ') -----
  standardIncludesBuildMultiThreadedAssert
+ 	"convencience method to customize for this build. default is self standardIncludes"
+ 	^self standardIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildMultiThreadedDebug (in category 'cmake config build type ') -----
  standardIncludesBuildMultiThreadedDebug 
+ 	"convencience method to customize for this build. default is self standardIncludes"
+ 	^self standardIncludes
+ !
- 	self required!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>standardIncludesBuildNone (in category 'cmake config build type ') -----
  standardIncludesBuildNone
+ 	"SHOULD NOT GET HERE"
+ 	^self halt
+ !
- 	self required!



More information about the Vm-dev mailing list