VM Maker: CMakeVMMaker-EstebanLorenzano.271.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: CMakeVMMaker-EstebanLorenzano.271.mcz

commits-2
 
Timothy M uploaded a new version of CMakeVMMaker to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMaker-EstebanLorenzano.271.mcz

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

Name: CMakeVMMaker-EstebanLorenzano.271
Author: EstebanLorenzano
Time: 21 March 2014, 2:23:50.859 pm
UUID: d5e25493-d8b7-457c-9dc7-78c2b4f26f07
Ancestors: CMakeVMMaker-EstebanLorenzano.270

empty log message

=============== Diff against CMakeVMMaker-EstebanLorenzano.213 ===============

Item was changed:
  SystemOrganization addCategory: #CMakeVMMaker!
  SystemOrganization addCategory: #'CMakeVMMaker-Android'!
+ SystemOrganization addCategory: #'CMakeVMMaker-Builder'!
  SystemOrganization addCategory: #'CMakeVMMaker-FreeBSD'!
  SystemOrganization addCategory: #'CMakeVMMaker-IOS'!
  SystemOrganization addCategory: #'CMakeVMMaker-Libs'!
  SystemOrganization addCategory: #'CMakeVMMaker-MacOS'!
  SystemOrganization addCategory: #'CMakeVMMaker-Unix'!
  SystemOrganization addCategory: #'CMakeVMMaker-Windows'!

Item was changed:
  ----- Method: CMIOSFreetype2>>defineGlobalTargets (in category 'generating actions') -----
  defineGlobalTargets
  | var |
  var := self canonicalName , '_LIB'.
  vmGen set: var toString: self libraryFileName.
  "
  define a library as imported one
  and make it depend from it's build target
  "
+
  vmGen
  puts:
+ ('add_library("\{{1}\}" STATIC IMPORTED GLOBAL)
+ set_target_properties("\{{1}\}" PROPERTIES IMPORTED_LOCATION "\{{1}\}")
+ add_dependencies("\{{1}\}" "{2}")
+ ' format: { var. self buildTarget }
- ('add_library("{1}" STATIC IMPORTED GLOBAL)
- set_target_properties("{1}" PROPERTIES IMPORTED_LOCATION "{1}")
- add_dependencies("{1}" "{2}")
- ' format: { '${',var, '}' . self buildTarget }
  ).
 
  vmGen cmd: 'add_dependencies' params:
  vmGen moduleName , ' ' , self buildTarget!

Item was changed:
  ----- Method: CMIOSFreetype2>>includeDir (in category 'accessing') -----
  includeDir
  "see setVariables"
 
  " `<prefix>/include/freetype2' must be in your current inclusion path "
-
  ^ '"${thirdpartyDir}/freetype2/freetype-2.4.9/include"'!

Item was changed:
  ----- Method: CMPkgConfig>>build (in category 'generating actions') -----
  build
  gen
  puts: '
  add_custom_command(OUTPUT "${pkgConfigBinary}"
+ COMMAND ./configure --prefix=''${installPrefix}'' CFLAGS=''-std=gnu89 -arch i386'' LDFLAGS=''-arch i386''
- COMMAND ./configure --prefix=''${installPrefix}'' CFLAGS=''-arch i386'' LDFLAGS=''-arch i386''
  COMMAND make
  COMMAND make install
  WORKING_DIRECTORY "${libSourcesDir}"
  DEPENDS "${unpackTarget}"
  COMMENT "Building ${libName}"
  )
  '
  !

Item was changed:
+ ----- Method: CMThirdpartyLibrary>>archiveFileName (in category 'accessing') -----
- ----- Method: CMThirdpartyLibrary>>archiveFileName (in category 'as yet unclassified') -----
  archiveFileName
  ^ self downloadURL asUrl fileName !

Item was changed:
  ----- Method: CMThirdpartyLibrary>>defaultConfigurationFlags (in category 'settings') -----
  defaultConfigurationFlags
  ^#(
+ 'CFLAGS=''-arch i386'''
- 'CFLAGS=''-arch i386'''
  'LDFLAGS=''-arch i386''')!

Item was changed:
  ----- Method: CMakeGenerator>>addExternalLibrary: (in category 'cmake commands') -----
  addExternalLibrary: aLibrary
-
  self cmd: 'list'
  params: 'APPEND LINKLIBS ' , aLibrary .
 
  " self cmd: 'target_link_libraries'
  params: self moduleName , ' ' , aLibrary.
  "
  !

Item was changed:
  ----- Method: CMakeGenerator>>linkDirectories: (in category 'cmake commands') -----
  linkDirectories: aString
  ^ self cmd: 'link_directories' params: aString!

Item was changed:
  CMakeGenerator subclass: #CMakePluginGenerator
+ instanceVariableNames: 'plugin vmGen internal extraRules doNotGenerate externalDependencies'
- instanceVariableNames: 'plugin vmGen internal extraRules doNotGenerate'
  classVariableNames: ''
  poolDictionaries: ''
  category: 'CMakeVMMaker'!
 
  !CMakePluginGenerator commentStamp: 'Igor.Stasenko 12/25/2010 04:21' prior: 0!
  I am using for generating CMakeLists.txt (cmake config files) for specific plugin.
  The direct use of my instances is not recommended.
  Use CMakeVMGenerator and appropriate configuration to generate both VM and plugins cmake config files.!

Item was changed:
+ ----- Method: CMakePluginGenerator>>addCrossSources: (in category 'accessing') -----
- ----- Method: CMakePluginGenerator>>addCrossSources: (in category 'as yet unclassified') -----
  addCrossSources: sources
 
  ^ self addSources: sources prefixed: '${pluginCross}/'
  !

Item was added:
+ ----- Method: CMakePluginGenerator>>addExternalDependency: (in category 'accessing') -----
+ addExternalDependency: aString
+ "We need to collect external dependencies to internal plugins because we need to force its
+ resolve before, and if we just add teh dependency in executable some times is not enough.
+ check StackIPhoneConfig>>#configureFT2Plugin: as an example"
+ externalDependencies := externalDependencies copyWith: aString.!

Item was changed:
+ ----- Method: CMakePluginGenerator>>addExternalLibrary: (in category 'cmake commands') -----
- ----- Method: CMakePluginGenerator>>addExternalLibrary: (in category 'as yet unclassified') -----
  addExternalLibrary: aLibrary
+ self isInternal
+ ifTrue: [ vmGen addExternalLibrary: aLibrary ]
+ ifFalse: [ super addExternalLibrary: aLibrary ].!
-
- self isInternal ifTrue: [
- vmGen addExternalLibrary: aLibrary  
- ]
- ifFalse: [ super addExternalLibrary: aLibrary ]
- !

Item was changed:
+ ----- Method: CMakePluginGenerator>>addPlatformSources: (in category 'accessing') -----
- ----- Method: CMakePluginGenerator>>addPlatformSources: (in category 'as yet unclassified') -----
  addPlatformSources: sources
 
  ^ self addSources: sources prefixed: '${pluginPlatform}/'
  !

Item was changed:
+ ----- Method: CMakePluginGenerator>>config (in category 'accessing') -----
- ----- Method: CMakePluginGenerator>>config (in category 'as yet unclassified') -----
  config
  ^ vmGen config!

Item was changed:
+ ----- Method: CMakePluginGenerator>>configurationName (in category 'accessing') -----
- ----- Method: CMakePluginGenerator>>configurationName (in category 'as yet unclassified') -----
  configurationName
  ^ vmGen configurationName!

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

Item was changed:
+ ----- Method: CMakePluginGenerator>>generate:for:internal:extraRules: (in category 'code generation') -----
- ----- Method: CMakePluginGenerator>>generate:for:internal:extraRules: (in category 'as yet unclassified') -----
  generate: aPlugin for: aCMakeVMGenerator internal: aBoolean extraRules: aBlock
 
  doNotGenerate := false.
  internal := aBoolean.
  plugin := aPlugin.
  vmGen := aCMakeVMGenerator.
  extraRules := aBlock.
 
  ^ self generate!

Item was added:
+ ----- Method: CMakePluginGenerator>>initialize (in category 'initialization') -----
+ initialize
+ super initialize.
+ externalDependencies := #().!

Item was changed:
+ ----- Method: CMakePluginGenerator>>saveFile (in category 'accessing') -----
- ----- Method: CMakePluginGenerator>>saveFile (in category 'as yet unclassified') -----
  saveFile
 
  | reference |
  reference := ((vmGen config dirFrom: vmGen buildDir) / plugin moduleName) ensureDirectory; yourself.
  (FileStream forceNewFileNamed: (reference / self outputFileName) fullName)
  nextPutAll: (self config fixLineEndsOf: output contents);
  close.!

Item was changed:
+ ----- Method: CMakeVMGenerator>>configurationName (in category 'accessing') -----
- ----- Method: CMakeVMGenerator>>configurationName (in category 'as yet unclassified') -----
  configurationName
  ^ config class name!

Item was changed:
  ----- Method: CMakeVMGenerator>>generate (in category 'code generation') -----
  generate
  | intPlugins extPlugins |
 
  output := String new writeStream.
 
  config setGlobalOptions: self.
 
  self
  printHeader;
  project: config executableName.
 
  config setGlobalOptionsAfterDetermineSystem: self.
 
  config setupDirectories: self.
 
  self message: '${CMAKE_MODULE_PATH}'.
  self set: 'CMAKE_CONFIGURATION_TYPES' to: 'Release'.
 
  config preferredIncludes
  do: [ :each | self includeDirectories: each ].
  self includeDirectories: self includeDirs.
  config standardIncludes
  do: [:each | self includeDirectories: each ].
 
  self addDefinitions: config compilerFlags.
 
  config extraVMSettings: self.
 
  self puts: 'add_executable(' , config executableName, ' ', config executableType, ' ' , self sources , ')'.
 
  intPlugins := self generatePluginConfigs: config internalPlugins internal: true.
  extPlugins := self generatePluginConfigs: config externalPlugins internal: false.
+
-
  self processThirdpartyLibraries.
 
  self processPlugins:  intPlugins, extPlugins.
 
  config setExtraTargetProperties: self.
 
  self cmd: 'target_link_libraries'
  params: self moduleName , ' ${LINKLIBS}'.
 
  config postBuildActions: self.
 
  self saveFile.
  self generateBuildScript.!

Item was changed:
+ ----- Method: CMakeVMGenerator>>generatePlugin:internal:extraRules: (in category 'plugins') -----
- ----- Method: CMakeVMGenerator>>generatePlugin:internal:extraRules: (in category 'as yet unclassified') -----
  generatePlugin: aPlugin internal: aBoolean extraRules: aBlock
  " this method called back from plugin"
  ^ CMakePluginGenerator new
  generate: aPlugin for: self internal: aBoolean extraRules: aBlock!

Item was changed:
+ ----- Method: CMakeVMGenerator>>includeDirs (in category 'sources management') -----
- ----- Method: CMakeVMGenerator>>includeDirs (in category 'as yet unclassified') -----
  includeDirs
 
  ^ '${crossDir}/vm ${srcVMDir} ${targetPlatform}/vm ${buildDir}'.!

Item was changed:
  ----- Method: CMakeVMGenerator>>processPlugins: (in category 'processing plugins') -----
  processPlugins: pluginGenerators
+ | libs libDeps |
 
- | libs |
  libs := OrderedCollection new.
+ libDeps := Dictionary new.
-
  pluginGenerators do: [:gen |
  gen doNotGenerate ifFalse: [
+ gen isInternal
+ ifTrue: [
+ libs add: gen plugin moduleName ]
+ ifFalse: [
+ "make main module to depend on external plugin, just to make sure it is built
+ before main module built"
+ self
+ cmd: 'add_dependencies'
+ params: config executableName, ' ' , gen plugin moduleName ].
+ gen externalDependencies
+ ifNotEmpty: [ :deps |
+ libDeps
+ at: gen plugin moduleName
+ put: (deps fold: [ :a :b | a, ' ', b ]) ].
+ self addSubdirectory: gen plugin moduleName ] ].
- gen isInternal ifTrue: [
- libs add:  gen plugin moduleName ]
- ifFalse: [
- "make main module to depend on external plugin, just to make sure it is built before main module built"
- self cmd: 'add_dependencies' params: config executableName, ' ' , gen plugin moduleName
- ].
- self addSubdirectory:  gen plugin moduleName.
- ].
- ].
 
  self cmd: 'target_link_libraries' params:  config executableName , ' ' ,
+ (libs inject: '' into: [:res :ea | res, ' ' , ea ]).
- (libs inject: '' into: [:res :ea | res, ' ' , ea ]) .
 
+ libDeps keysAndValuesDo: [ :moduleName :dependencies |
+ self
+ cmd: 'add_dependencies'
+ params: moduleName, ' ', dependencies ].  
+
+ self generateExportsH: libs.!
- self generateExportsH: libs.
- !

Item was changed:
+ ----- Method: CMakeVMGenerator>>saveFile (in category 'accessing') -----
- ----- Method: CMakeVMGenerator>>saveFile (in category 'as yet unclassified') -----
  saveFile
 
  config write: output contents toFile: (self outputFileName).
  !

Item was changed:
  Object subclass: #CPlatformConfig
+ instanceVariableNames: 'topDir buildDir srcDir platformsDir outputDir internalPlugins externalPlugins pluginsDir externalLibs thirdpartyLibs generateForRelease'
- instanceVariableNames: 'topDir buildDir srcDir platformsDir outputDir internalPlugins externalPlugins pluginsDir externalLibs thirdpartyLibs'
  classVariableNames: ''
  poolDictionaries: ''
  category: 'CMakeVMMaker'!
 
  !CPlatformConfig commentStamp: 'MarianoMartinezPeck 4/24/2011 15:29' prior: 0!
  Base class, defining some common properties and behavior for all kinds of VM build configurations. These classes are used to generate the VM sources and the CMMake files.
 
  Notice that this configuration classes expect that you have download the "platofroms code" which is in Gitorious: https://gitorious.org/cogvm
  You can load it executing: git clone git://gitorious.org/cogvm/blessed.git
 
  Once that is done it should have created a directory /blessed. In order to get all the directories by default, place this image under /blessed/image
 
  To generate a sources/build configuration use one of my subclasses with:
  <config> generate.   - to generate a build configuration
  <config> generateWithSources - to generate VMMaker sources and then build configuration.
 
  Once you do that, go to /blessed/build and execute:  cmake .    or cmake -G"MSYS Makefiles" if you are in Windows
 
  Since some plugins require extra settings (like additional source files etc), there is two ways to add that:
 
  - add custom rules on plugin class side:
 
  PluginClass>>generateFor: aCMakeVMGenerator internal: aBoolean
 
  ^ aCMakeVMGenerator
  generatePlugin: self
  internal: aBoolean
  extraRules: [:maker |   ... your rules come here ... ]
 
  - define rules by adding #configure<PluginClass>: method in config class (see my 'plugin extra rules' category)
 
  The last one is more compact and also avoids inter-package dependency, so you can load and use
  CMakeVMMaker even if some 3rd-party plugins are not loaded into image.
 
 
  Links of interest:
 
  Official Cog Website: http://www.mirandabanda.org/cog
  Official Cog Blog: http://www.mirandabanda.org/cogblog
  Cog issue tracker: http://code.google.com/p/cog
  Cog Wiki: http://code.google.com/p/cog/w/list
  Cog binaries: http://www.mirandabanda.org/files/Cog/VM
  Cog binaries in Pharo Hudson server: https://pharo-ic.lille.inria.fr/hudson/view/Cog
  Cog SVN branch: http://squeakvm.org/svn/squeak/branches/Cog
  VM mailing list: http://lists.squeakfoundation.org/mailman/listinfo/vm-dev
  VM-beginners mailing list: http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
  Guide step by step about how to build the Cog VM using CMakeVMMaker and Git: http://code.google.com/p/cog/wiki/Guide
 
 
 
  !

Item was added:
+ ----- Method: CPlatformConfig>>addThirdpartyLibraries: (in category 'thirdparty libs') -----
+ addThirdpartyLibraries: aCollection
+ aCollection do: [ :each | self addThirdpartyLibrary: each ]!

Item was changed:
  ----- Method: CPlatformConfig>>addThirdpartyLibrary: (in category 'thirdparty libs') -----
  addThirdpartyLibrary: libName
  | libs lib |
 
  libs := self thirdpartyLibs.
 
  lib :=  libs
  detect: [:each | each canonicalName = libName ]
  ifNone: [ nil ].
 
  lib ifNil: [
+ lib := CMThirdpartyLibrary named: libName config: self.
+ "add dependencies first, so thirpartyLibs collection will be naturally dependency sorted"
+ lib dependencies do: [:dep | self addThirdpartyLibrary: dep ].
+ libs add: lib ].
- lib := (CMThirdpartyLibrary named: libName config: self).
- "add dependencies first, so thirpartyLibs collection will be naturally dependency sorted"
- lib dependencies do: [:dep | self addThirdpartyLibrary: dep ].
- libs add: lib ].
 
  ^ lib!

Item was changed:
  ----- Method: CPlatformConfig>>buildScript (in category 'build script') -----
  buildScript
  "answer the build script for building everything"
 
 
  ^
+ '#!!/usr/bin/env bash
- '#!!bash
 
  cmake .
  make
 
  '!

Item was added:
+ ----- Method: CPlatformConfig>>commonCompilerFlags (in category 'compiler flags') -----
+ commonCompilerFlags
+ ^ #()!

Item was added:
+ ----- Method: CPlatformConfig>>compilerFlags (in category 'compiler flags') -----
+ compilerFlags
+ | releaseFlags |
+
+ releaseFlags := self isGenerateForRelease
+ ifTrue: [ self compilerFlagsRelease ]
+ ifFalse: [ self compilerFlagsDebug ].
+
+ ^ String streamContents: [ :stream |
+ ((self commonCompilerFlags, releaseFlags) collect: #trimBoth as: Set)
+ asStringOn: stream
+ delimiter: ' ' ]!

Item was added:
+ ----- Method: CPlatformConfig>>compilerFlagsDebug (in category 'compiler flags') -----
+ compilerFlagsDebug
+ ^ #()!

Item was added:
+ ----- Method: CPlatformConfig>>compilerFlagsRelease (in category 'compiler flags') -----
+ compilerFlagsRelease
+ ^ #()!

Item was added:
+ ----- Method: CPlatformConfig>>generateForDebug (in category 'accessing') -----
+ generateForDebug
+ generateForRelease := false!

Item was added:
+ ----- Method: CPlatformConfig>>generateForRelease (in category 'accessing') -----
+ generateForRelease
+ generateForRelease := true!

Item was added:
+ ----- Method: CPlatformConfig>>initialize (in category 'initialize-release') -----
+ initialize
+ super initialize.
+ generateForRelease := true.!

Item was added:
+ ----- Method: CPlatformConfig>>isGenerateForRelease (in category 'testing') -----
+ isGenerateForRelease
+ ^generateForRelease!

Item was changed:
  MacOSConfig subclass: #CocoaIOSConfig
+ instanceVariableNames: ''
- instanceVariableNames: 'generateForRelease'
  classVariableNames: ''
  poolDictionaries: ''
  category: 'CMakeVMMaker-IOS'!
 
  !CocoaIOSConfig commentStamp: 'MarianoMartinezPeck 4/24/2011 15:34' prior: 0!
  This is an abstract class for all Mac Cocoa configurations. It is intended to share code between different concrete implementations.
 
  Fore more information, check the class comments of all the superclasses.
  !

Item was removed:
- ----- Method: CocoaIOSConfig>>compilerFlags (in category 'accessing') -----
- compilerFlags
- | releaseFlags |
-
- releaseFlags := self isGenerateForRelease
- ifTrue: [ self compilerFlagsRelease ]
- ifFalse: [ self compilerFlagsDebug ].
-
- ^String streamContents: [ :stream |
- (self commonCompilerFlags, releaseFlags) asSet
- do: [ :each | stream nextPutAll: each ]
- separatedBy: [ stream space ] ]!

Item was changed:
  ----- Method: CocoaIOSConfig>>compilerFlagsRelease (in category 'accessing') -----
  compilerFlagsRelease
  ^#(
  "'-fobjc-direct-dispatch'"
  '-msse3'
  "'-msse4.1'"
  "'-msse4.2'"
  "'-mdynamic-no-pic'"
  "'-fwritable-strings'"
  '-Os'
+ '-fvisibility=default'
- '-fvisibility=hidden'
  '-funroll-loops'
  "'-fno-asm'"
  '-fasm-blocks'
  '-finline-functions'
  '-mfpmath=sse'
  '-fomit-frame-pointer'
  '-march=pentium-m'
  '-mtune=prescott'
  '-falign-functions=16'  
  '-fno-gcse'
- '-fno-cse-follow-jumps'
  '-std=gnu99'
  '-DBUILD_FOR_OSX'
  "'-DUSE_INLINE_MEMORY_ACCESSORS'"
  '-DLSB_FIRST'
  '-DUSE_INLINE_MEMORY_ACCESSORS'
  '-DHAVE_SYS_TIME_H'
  '-DHAVE_NANOSLEEP'
  '-DICC_DEBUG=0'
  '-DICC_OPTLEVEL="speedHLO"'
  '-DICC_OPT_IPO_FOR_SINGLE_FILE_COMPILATION=1'
  '-DICC_OPT_PARALLEL=0'
  '-DICC_OPT_PREFETCH_INSERTION=1'
  '-DICC_OPT_PROVIDE_FRAME_PTR=0'
  '-DICC_OPT_USE_ARCH_IA32="SSE42"')!

Item was added:
+ ----- Method: CocoaIOSConfig>>configureMIDIPlugin: (in category 'plugin extra rules') -----
+ configureMIDIPlugin: maker
+ "extra rules for MIDIPlugin"
+
+ maker addPlatformSources: #( 'sqMacMIDI.m')!

Item was changed:
  ----- Method: CocoaIOSConfig>>frameworks (in category 'accessing') -----
  frameworks
  ^ #(
  Cocoa
  Foundation
  AudioToolbox
  CoreAudio
  SystemConfiguration
  ApplicationServices
  QuartzCore
  OpenGL
+ AGL
+ QuickTime)!
- AGL)!

Item was removed:
- ----- Method: CocoaIOSConfig>>generateForDebug (in category 'accessing') -----
- generateForDebug
- generateForRelease := false!

Item was removed:
- ----- Method: CocoaIOSConfig>>generateForRelease (in category 'accessing') -----
- generateForRelease
- generateForRelease := true!

Item was removed:
- ----- Method: CocoaIOSConfig>>initialize (in category 'initialization') -----
- initialize
- super initialize.
- self generateForRelease!

Item was removed:
- ----- Method: CocoaIOSConfig>>isGenerateForRelease (in category 'testing') -----
- isGenerateForRelease
- ^generateForRelease!

Item was changed:
  ----- Method: CocoaIOSConfig>>setExtraTargetProperties: (in category 'settings') -----
  setExtraTargetProperties: maker
  | plist precompiledHeaders |
 
  " generated and add Info.plist file "
  plist := self plistFile.
 
  (maker buildDir forceNewFileNamed: 'Info.plist')
  nextPutAll: plist;
  close.
 
  maker
  addProperty: 'MACOSX_BUNDLE_INFO_PLIST'
  value: '${buildDir}/Info.plist'.  
 
  maker
  cmd: 'set_source_files_properties'
  params: '${resources} PROPERTIES MACOSX_PACKAGE_LOCATION Resources'.
 
  precompiledHeaders := (self executableName, '_Prefix.pch').
  (maker buildDir forceNewFileNamed: precompiledHeaders)
  nextPutAll: self precompiledHeaders;
  close.
 
  maker addXCodeProperty: 'GCC_PREFIX_HEADER' value: '${buildDir}/', precompiledHeaders.
 
  "maker
  addXCodeProperty: 'GCC_ENABLE_SSE3_EXTENSIONS' value: 'YES';  
  addXCodeProperty: 'GCC_ENABLE_SSE41_EXTENSIONS' value: 'YES';
  addXCodeProperty: 'GCC_ENABLE_SSE42_EXTENSIONS' value: 'YES';
  addXCodeProperty: 'GCC_GENERATE_DEBUGGING_SYMBOLS' value: 'NO';  
  addXCodeProperty: 'GCC_INLINES_ARE_PRIVATE_EXTERN' value: 'YES';
  addXCodeProperty: 'GCC_UNROLL_LOOPS' value: 'YES'. "
 
  "Extras"
  maker
  addXCodeProperty: 'ICC_DEBUG' value: 'NO';
  addXCodeProperty: 'ICC_OPTLEVEL' value: 'speedHLO';
  addXCodeProperty: 'ICC_OPT_IPO_FOR_SINGLE_FILE_COMPILATION' value: 'YES';
  addXCodeProperty: 'ICC_OPT_PARALLEL' value: 'NO';
  addXCodeProperty: 'ICC_OPT_PREFETCH_INSERTION' value: 'YES';
  addXCodeProperty: 'ICC_OPT_PROVIDE_FRAME_PTR' value: 'NO';
  addXCodeProperty: 'ICC_OPT_USE_ARCH_IA32' value: 'SSE41';
+ addXCodeProperty: 'PER_ARCH_CFLAGS_i386' value: '-finline-functions -mfpmath=sse -march=pentium-m -mtune=prescott -falign-functions=16  -fno-gcse -DLSB_FIRST';
- addXCodeProperty: 'PER_ARCH_CFLAGS_i386' value: '-finline-functions -mfpmath=sse -march=pentium-m -mtune=prescott -falign-functions=16  -fno-gcse -fno-cse-follow-jumps  -DLSB_FIRST';
  addXCodeProperty: 'PER_ARCH_CFLAGS_ppc' value: '-fast -mtune=7450 -mcpu=7450 -D_BSD_SOCKLEN_T_=int'!

Item was changed:
  ----- Method: CogFamilyCocoaIOSConfig>>commonCompilerFlags (in category 'settings') -----
  commonCompilerFlags
+ ^super commonCompilerFlags,  #(
+ "CLANG >>"
+ '-fwrapv' "Non optimization of stackoverflow (to allow number conversions)"
+ '-Wno-return-type' "to avoid clang to complain about plugins that do not return properly."
+ '-Qunused-arguments'
+ "CLANG <<"
- ^super commonCompilerFlags,
- #(
  '-funroll-loops'
  '-fasm-blocks'
  '-fno-inline-functions'
  '-mfpmath=sse'
  '-march=pentium-m'
  '-mtune=prescott'
  '-falign-functions=16'
  '-fno-gcse'
- '-fno-cse-follow-jumps'
  '-std=gnu99'
  '-fmessage-length=0'
  '-fpascal-strings'
  '-DBUILD_FOR_OSX'
  "'-DUSE_INLINE_MEMORY_ACCESSORS=1' "
  '-DLSB_FIRST'
  '-DHAVE_SYS_TIME_H'
  '-DHAVE_NANOSLEEP'
  '-DCOGMTVM=0'
  '-DUSE_GLOBAL_STRUCT=0'
  '-DBASE_HEADER_SIZE=4'
  '-DENABLE_FAST_BLT')!

Item was changed:
  ----- Method: CogFamilyCocoaIOSConfig>>defaultExternalPlugins (in category 'plugins') -----
  defaultExternalPlugins
  ^(self versionExternalPlugins),
  #(
  UUIDPlugin
  FloatMathPlugin
  AsynchFilePlugin
- SerialPlugin
  Mpeg3Plugin
  CroquetPlugin
  JoystickTabletPlugin
- MIDIPlugin
  B3DAcceleratorPlugin
  JPEGReadWriter2Plugin
  JPEGReaderPlugin
  RePlugin
  LocalePlugin
  ObjectiveCPlugin
  QuicktimePlugin
  TestOSAPlugin
  SqueakSSLPlugin
+ SerialPlugin
+ MIDIPlugin
- "UnixOSProcessPlugin"
  )!

Item was changed:
  ----- Method: CogFamilyCocoaIOSConfig>>defaultInternalPlugins (in category 'plugins') -----
  defaultInternalPlugins
  ^ #(
  ADPCMCodecPlugin
  BMPReadWriterPlugin
  BalloonEnginePlugin
  BitBltSimulation
  ClipboardExtendedPlugin
  DSAPlugin
  DeflatePlugin
  DropPlugin
  FFTPlugin
  FilePlugin
  FloatArrayPlugin
  GeniePlugin
  HostWindowPlugin
  "JPEGReadWriter2Plugin
  JPEGReaderPlugin"
+ KlattSynthesizerPlugin
- KlattSynthesizerPlugin
  LargeIntegersPlugin
- "MacMenubarPlugin" "This plugin is not yet ported"
  Matrix2x3Plugin
  MiscPrimitivePlugin
  "RePlugin"
  SecurityPlugin
  SocketPlugin
  SoundCodecPlugin
  SoundGenerationPlugin
  SoundPlugin
  StarSqueakPlugin
  SurfacePlugin
  UnixAioPlugin
  UnixOSProcessPlugin
  )!

Item was changed:
  ----- Method: CogFamilyCocoaIOSConfig>>setExtraTargetProperties: (in category 'settings') -----
  setExtraTargetProperties: maker
  | plist |
 
  maker addFrameworks: self frameworks.
 
  " generated and add Info.plist file "
  plist := self plistFile.
 
  (FileStream forceNewFileNamed: (maker buildDir / 'Info.plist') fullName)
  nextPutAll: plist;
  close.
 
  maker
  addProperty: 'MACOSX_BUNDLE_INFO_PLIST'
  value: '${buildDir}/Info.plist'.  
 
  (FileStream forceNewFileNamed: (maker buildDir / self prefixHeaderFileName) fullName )
  nextPutAll: self precompiledHeaders;
  close.
  maker addXCodeProperty: 'GCC_PREFIX_HEADER' value: '${buildDir}/', self prefixHeaderFileName.
 
  maker
+ addXCodeProperty: 'PER_ARCH_CFLAGS_i386' value: '-DLSB_FIRST -mfpmath=sse -finline-functions  -fno-gcse -mtune=prescott -march=pentium-m -falign-functions=16'.
- addXCodeProperty: 'PER_ARCH_CFLAGS_i386' value: '-DLSB_FIRST -mfpmath=sse -finline-functions  -fno-cse-follow-jumps -fno-gcse -mtune=prescott -march=pentium-m -falign-functions=16'.
 
  "maker
  addXCodeProperty: 'GCC_VERSION' value: '4.3'."
 
  maker
  cmd: 'set_target_properties'
  params: self executableName, ' PROPERTIES COMPILE_FLAGS "-include \"', (self buildDir / self prefixHeaderFileName) fullName, '\""'.
 
  " maker set: 'CMAKE_C_COMPILER' to: '/usr/bin/gcc-4.2'.
  maker set: 'CMAKE_CXX_COMPILER' to: '/usr/bin/g++-4.2'.
  "
  maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir fullName.
  maker set: 'RUNTIME_OUTPUT_DIRECTORY' toString: self outputDir fullName.!

Item was changed:
  ----- Method: CogFamilyUnixConfig>>buildScript (in category 'build script') -----
  buildScript
  "answer the build script for building everything"
 
 
  ^
+ '#!!/usr/bin/env bash
- '#!!bash
 
  if [ !! -e vmVersionInfo.h ]; then
+ ../scripts/extract-commit-info.sh
- ../codegen-scripts/extract-commit-info.sh
  fi
  cmake .
  make
 
  '!

Item was removed:
- ----- Method: CogFamilyUnixConfig>>compilerFlags (in category 'compiler flags') -----
- compilerFlags
- ^ self subclassResponsibility!

Item was changed:
  ----- Method: CogFamilyUnixConfig>>configureSoundPlugin: (in category 'plugin extra rules') -----
  configureSoundPlugin: maker
  "extra rules for SoundPlugin"
 
+ maker addPlatformSources: #( 'sqUnixSound').
+ maker addExternalLibraries: #( 'asound' )!
- maker addPlatformSources: #( 'sqUnixSound')!

Item was added:
+ ----- Method: CogFamilyUnixConfig>>externalModulesDir (in category 'accessing') -----
+ externalModulesDir
+ "answer the location in VM bundle, where plugins and rest of dynamic libs will be copied,
+ "
+ ^ '${outputDir}'!

Item was added:
+ ----- Method: CogFamilyUnixConfig>>setupDirectories: (in category 'utils') -----
+ setupDirectories: gen
+ super setupDirectories: gen.
+ gen set: #externalModulesDir toString: self externalModulesDir.!

Item was changed:
  ----- Method: CogFamilyWindowsConfig>>buildScript (in category 'build script') -----
  buildScript
  "answer the build script for building everything"
 
 
  ^
+ '#!!/usr/bin/env bash
- '#!!bash
 
  if [ !! -e vmVersionInfo.h ]; then
+ ../scripts/extract-commit-info.sh
- ../codegen-scripts/extract-commit-info.sh
  fi
  cmake -G "MSYS Makefiles" .
  make
 
  '!

Item was changed:
  ----- Method: CogFamilyWindowsConfig>>commonCompilerFlags (in category 'compiler flags') -----
  commonCompilerFlags
  "omit -ggdb2 to prevent generating debug info"
  "Some flags explanation:
 
  STACK_ALIGN_BYTES=16 is needed in mingw and FFI (and I suppose on other modules too).
  DALLOCA_LIES_SO_USE_GETSP=0 Some compilers return the stack address+4 on alloca function,
  then FFI module needs to adjust that. It is NOT the case of mingw.
  For more information see this thread: http://forum.world.st/There-are-something-fishy-with-FFI-plugin-td4584226.html
  "
+ ^ {  
+ '-march=pentium4'.
+ '-mwindows'.
+ '-D_MT'.
+ '-msse2'.
+ '-mthreads'.
+ '-mwin32'.
+ '-mno-rtd'.
+ '-mms-bitfields'.
+ '-mno-accumulate-outgoing-args ', self winVer.
+ '-DWIN32'.
+ '-DWIN32_FILE_SUPPORT'.
+ '-DNO_ISNAN'.
+ '-DNO_SERVICE'.
+ '-DNO_STD_FILE_SUPPORT'.
+ '-DLSB_FIRST'.
+ '-DVM_NAME="', self executableName,'"'.
+ '-DX86 '.
+ '-DSTACK_ALIGN_BYTES=16'.
+ '-DALLOCA_LIES_SO_USE_GETSP=0'.
+ '-DENABLE_FAST_BLT ' }!
- ^ '-march=pentium4 -mwindows -D_MT -msse2 -mthreads -mwin32 -mno-rtd -mms-bitfields -mno-accumulate-outgoing-args ', self winVer ,
- ' -DWIN32 -DWIN32_FILE_SUPPORT -DNO_ISNAN -DNO_SERVICE -DNO_STD_FILE_SUPPORT ',
- '-DLSB_FIRST -DVM_NAME="', self executableName,'" -DX86 ',
- '-DSTACK_ALIGN_BYTES=16 -DALLOCA_LIES_SO_USE_GETSP=0 -DENABLE_FAST_BLT '!

Item was added:
+ ----- Method: CogFamilyWindowsConfig>>configureSoundPlugin: (in category 'plugin extra rules') -----
+ configureSoundPlugin: maker
+ "extra rules for SoundPlugin"
+
+ maker addPlatformSources: #( 'sqWin32Sound' )!

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

Item was changed:
  ----- Method: CogFreeBSDConfig>>compilerFlagsRelease (in category 'as yet unclassified') -----
  compilerFlagsRelease
 
+ ^ {
+ '-g0'.
+ '-O2'.
+ '-msse2'.
+ '-DNDEBUG'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=0'.
+ '-DNOEXECINFO' }
- ^ '-g0 -O2 -msse2  -DNDEBUG -DITIMER_HEARTBEAT=1
- -DNO_VM_PROFILE=1 -DDEBUGVM=0 -DNOEXECINFO'
  !

Item was added:
+ Object subclass: #CogMTBuilder
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'CMakeVMMaker-Builder'!

Item was added:
+ ----- Method: CogMTBuilder class>>build (in category 'building') -----
+ build
+ " self build "
+ "build for platform we're currently running on"
+ | platform |
+
+ platform := Smalltalk os platformName.
+
+ platform = 'Win32' ifTrue:  [ ^ self buildWin32 ].
+ platform = 'Mac OS' ifTrue:  [ ^ self buildMacOSX32 ].
+ platform  = 'unix' ifTrue: [ ^ self buildUnix32 ].!

Item was added:
+ ----- Method: CogMTBuilder class>>buildMacOSX32 (in category 'building') -----
+ buildMacOSX32
+ ^ self new buildMacOSX32!

Item was added:
+ ----- Method: CogMTBuilder class>>buildOnJenkins: (in category 'building') -----
+ buildOnJenkins: aPlatformName
+ "entry point for jenkins build jobs.
+ currently we use following names:
+ win
+ mac
+ linux
+
+ "
+
+ aPlatformName = 'win' ifTrue: [ ^ self buildWin32 ].
+ aPlatformName = 'mac' ifTrue: [ ^ self buildMacOSX32 ].
+ aPlatformName = 'linux' ifTrue: [ ^ self buildUnix32 ].
+
+ self error: 'no suitable platform'!

Item was added:
+ ----- Method: CogMTBuilder class>>buildUnix32 (in category 'building') -----
+ buildUnix32
+ ^ self new buildUnix32!

Item was added:
+ ----- Method: CogMTBuilder class>>buildWin32 (in category 'building') -----
+ buildWin32
+ ^ self new buildWin32!

Item was added:
+ ----- Method: CogMTBuilder>>buildMacOSX32 (in category 'building') -----
+ buildMacOSX32
+
+ CogMTCocoaIOSConfig new  
+ generateForRelease;
+ "generateForDebug;"
+ addExternalPlugins: #(  FT2Plugin );
+ addInternalPlugins: #( UnixOSProcessPlugin );
+ generateSources; generate.
+ !

Item was added:
+ ----- Method: CogMTBuilder>>buildUnix32 (in category 'building') -----
+ buildUnix32
+
+ CogMTUnixConfig new
+ addExternalPlugins: #( FT2Plugin SqueakSSLPlugin );
+ addInternalPlugins: #( UnixOSProcessPlugin  );
+ generateSources; generate.
+ !

Item was added:
+ ----- Method: CogMTBuilder>>buildWin32 (in category 'building') -----
+ buildWin32
+
+ CogMTWindowsConfig new  
+
+ addExternalPlugins: #(  FT2Plugin SqueakSSLPlugin );
+ addInternalPlugins: #( Win32OSProcessPlugin );
+
+ generateSources; generate.
+ !

Item was added:
+ ----- Method: CogMTBuilder>>initialize (in category 'initialization') -----
+ initialize
+
+ "a stupid temporary hack to workaround initialization problems"
+
+ Cogit allSubclassesDo: [ :each | each initializeWithOptions: (VMMaker new instVarNamed: 'optionsDictionary') ]!

Item was changed:
  ----- Method: CogMTFreeBSDConfig>>commonCompilerFlags (in category 'compiler flags') -----
  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=1' }!
- ^ ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=1'
- !

Item was changed:
  ----- Method: CogMTMacOSConfig>>commonCompilerFlags (in category 'compiler flags') -----
  commonCompilerFlags
 
  "Common compiler flags"
 
+ ^ {
+ '-fmessage-length=0'.
+ '-Wno-trigraphs'.
+ '-fpascal-strings'.
+ '-fasm-blocks'.
+ '-DCOGMTVM=1'.
+ '-DUSE_GLOBAL_STRUCT=0'.
+ '-DTARGET_API_MAC_CARBON'.
+ '-DHAVE_SYS_TIME_H'.
+ '-mmacosx-version-min=10.5' }!
- ^ ' -fmessage-length=0 -Wno-trigraphs -fpascal-strings -fasm-blocks -DCOGMTVM=1 -DUSE_GLOBAL_STRUCT=0 -DTARGET_API_MAC_CARBON -DHAVE_SYS_TIME_H -mmacosx-version-min=10.5'
- !

Item was changed:
  ----- Method: CogMTUnixConfig>>commonCompilerFlags (in category 'compiler flags') -----
  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=1'.
+ '-m32' }!
- ^ ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=1 -m32'
- !

Item was changed:
  ----- Method: CogMacOSConfig>>commonCompilerFlags (in category 'compiler flags') -----
  commonCompilerFlags
 
  "Common compiler flags"
 
+ ^ {
+ '-fmessage-length=0'.
+ '-Wno-trigraphs'.
+ '-fpascal-strings'.
+ '-fasm-blocks'.
+ '-DCOGMTVM=0'.
+ '-DUSE_GLOBAL_STRUCT=0'.
+ '-DTARGET_API_MAC_CARBON'.
+ '-DBUILD_FOR_OSX'.
+ '-DHAVE_SYS_TIME_H'.
+ '-mmacosx-version-min=10.5' }
+ !
- ^ ' -fmessage-length=0 -Wno-trigraphs -fpascal-strings -fasm-blocks -DCOGMTVM=0 -DUSE_GLOBAL_STRUCT=0 -DTARGET_API_MAC_CARBON -DBUILD_FOR_OSX -DHAVE_SYS_TIME_H -mmacosx-version-min=10.5'
-
- " ^ '-arch i386 -fmessage-length=0 -Wno-trigraphs -fpascal-strings -fasm-blocks -DCOGMTVM=0 -DUSE_GLOBAL_STRUCT=0 -DTARGET_API_MAC_CARBON -DHAVE_SYS_TIME_H -mmacosx-version-min=10.5'"!

Item was removed:
- ----- Method: CogMacOSConfig>>compilerFlags (in category 'compiler flags') -----
- compilerFlags
- "depends on config ..."
- ^ self compilerFlagsRelease!

Item was changed:
  ----- Method: CogMacOSConfig>>compilerFlagsDebug (in category 'compiler flags') -----
  compilerFlagsDebug
 
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-Wmissing-prototypes'.
+ '-Wmissing-braces'.
+ '-Wparentheses'.
+ '-Wunused-function'.
+ '-Wunused-label'.
+ '-Wunused-parameter'.
+ '-Wunused-variable'.
+ '-Wunused-value'.
+ '-Wsign-compare'.
+ '-DDEBUGVM=1'.
+ '-DEXTERNALPRIMSDEBUG=1'.
+ '-gdwarf-2' }!
- ^ self commonCompilerFlags , ' -g3 -O0 -Wmissing-prototypes -Wmissing-braces -Wparentheses -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wsign-compare -DDEBUGVM=1 -DEXTERNALPRIMSDEBUG=1 -gdwarf-2 '!

Item was changed:
  ----- Method: CogMacOSConfig>>compilerFlagsRelease (in category 'compiler flags') -----
  compilerFlagsRelease
  " -mdynamic-no-pic "
+ ^ {
+ '-gdwarf-2'.
+ '-O3'.
+ '-funroll-loops'.
+ '-ftree-vectorize'.
+ '-msse3'.
+ '-DDEBUGVM=0'.
+ '-DNDEBUG'.
+ '-Wunused-value'.
+ '-Wuninitialized'.
+ '-falign-functions=16'.
+ '-fno-gcse'.
+ '-mtune=prescott'.
+ '-march=pentium-m'.
+ '-mfpmath=sse'.
+ '-finline-functions'.
+ '-Wall'.
+ '-DUSE_INLINE_MEMORY_ACCESSORS' }!
- ^ self commonCompilerFlags , ' -gdwarf-2 -O3 -funroll-loops -ftree-vectorize -msse3 -DDEBUGVM=0 -DNDEBUG -Wunused-value -Wuninitialized -falign-functions=16 -fno-gcse -mtune=prescott -march=pentium-m -mfpmath=sse -finline-functions -Wall -DUSE_INLINE_MEMORY_ACCESSORS'!

Item was changed:
  ----- Method: CogMacOSDebugConfig>>compilerFlags (in category 'compiler flags') -----
  compilerFlags
+     ^ String streamContents:  [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
-
-     ^  self compilerFlagsDebug!

Item was changed:
  ----- Method: CogOnDebian64Config>>commonCompilerFlags (in category 'accessing') -----
  commonCompilerFlags
+ ^ super commonCompilerFlags , { '-L/usr/lib32' }!
- ^ super commonCompilerFlags , ' -L/usr/lib32'!

Item was changed:
  ----- Method: CogUnixConfig>>commonCompilerFlags (in category 'compiler flags') -----
  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'.
+ '-m32'.
+ '-DENABLE_FAST_BLT ' }
- ^ ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -DENABLE_FAST_BLT '
  !

Item was removed:
- ----- Method: CogUnixConfig>>compilerFlags (in category 'compiler flags') -----
- compilerFlags
- "depends on config ..."
- ^ self commonCompilerFlags, ' ' ,self compilerFlagsRelease!

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

Item was changed:
  ----- Method: CogUnixConfig>>compilerFlagsRelease (in category 'compiler flags') -----
  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'.
+ '-msse2'.
+ '-D_GNU_SOURCE'.
+ '-DNDEBUG'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=0' }!
- ^ '-g0 -O2 -fno-tree-pre -fno-caller-saves -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0'!

Item was changed:
  ----- Method: CogUnixDebugConfig>>compilerFlags (in category 'as yet unclassified') -----
  compilerFlags
+ ^  String streamContents:  [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
-
- ^  self commonCompilerFlags, ' ' ,self compilerFlagsDebug!

Item was removed:
- ----- Method: CogWindowsConfig>>compilerFlags (in category 'compiler flags') -----
- compilerFlags
- "depends on config ..."
- ^ self commonCompilerFlags, ' ' , self compilerFlagsRelease!

Item was changed:
  ----- Method: CogWindowsConfig>>compilerFlagsDebug (in category 'plugins') -----
  compilerFlagsDebug
  "Define NDEBUG for production to exclude asserts "
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-march=pentium4'.
+ '-momit-leaf-frame-pointer'.
+ '-maccumulate-outgoing-args'.
+ '-funroll-loops'.
+ '-DDEBUGVM=1' }!
- ^ '-g3 -O0 -march=pentium4 -momit-leaf-frame-pointer -maccumulate-outgoing-args -funroll-loops  -DDEBUGVM=1'!

Item was changed:
  ----- Method: CogWindowsConfig>>compilerFlagsRelease (in category 'compiler flags') -----
  compilerFlagsRelease
  "Define NDEBUG for production to exclude asserts "
+ ^ {
+ '-g0'.
+ '-O2'.
+ '-march=pentium4'.
+ '-momit-leaf-frame-pointer'.
+ '-maccumulate-outgoing-args'.
+ '-funroll-loops'.
+ '-DNDEBUG -DDEBUGVM=0'}!
- ^ '-g0 -O2 -march=pentium4 -momit-leaf-frame-pointer -maccumulate-outgoing-args -funroll-loops ',
- '-DNDEBUG -DDEBUGVM=0'!

Item was changed:
  ----- Method: CogWindowsConfig>>defaultInternalPlugins (in category 'plugins') -----
  defaultInternalPlugins
 
  ^ #(
 
  ADPCMCodecPlugin
  AsynchFilePlugin
  B3DAcceleratorPlugin
  BalloonEnginePlugin "B2DPlugin"
  BitBltSimulation "BitBltPlugin"
  BMPReadWriterPlugin
  CroquetPlugin
  DeflatePlugin  "ZipPlugin"
  DropPlugin
  DSAPlugin "DSAPrims"
  FFTPlugin
  FilePlugin
  FloatArrayPlugin
  FloatMathPlugin
  HostWindowPlugin
  IA32ABIPlugin "IA32ABI"
  JoystickTabletPlugin
  JPEGReaderPlugin
  JPEGReadWriter2Plugin
  KlattSynthesizerPlugin "Klatt"
  LargeIntegersPlugin "LargeIntegers"
  LocalePlugin
  Matrix2x3Plugin
  MIDIPlugin
  MiscPrimitivePlugin
  Mpeg3Plugin
  RePlugin
  SecurityPlugin
  SerialPlugin
  SocketPlugin
  SoundCodecPlugin "SoundCodecPrims"
  SoundGenerationPlugin
+ SoundPlugin
  StarSqueakPlugin
  SurfacePlugin
  UUIDPlugin
  )!

Item was changed:
  ----- Method: CogWindowsDebugConfig>>compilerFlags (in category 'as yet unclassified') -----
  compilerFlags
+ ^ String streamContents:  [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
- "depends on config ..."
- ^ self commonCompilerFlags, ' ' , self compilerFlagsDebug!

Item was changed:
  ----- Method: MacOSConfig>>buildScript (in category 'build script') -----
  buildScript
  "answer the build script for building everything"
 
 
  ^
+ '#!!/usr/bin/env bash
- '#!!bash
 
  if [ !! -e vmVersionInfo.h ]; then
+ ../scripts/extract-commit-info.sh
- ../codegen-scripts/extract-commit-info.sh
  fi
  cmake .
  make
  make install
 
  '!

Item was added:
+ ----- Method: StackCocoaIOSConfig>>commonCompilerFlags (in category 'settings') -----
+ commonCompilerFlags
+ ^ super commonCompilerFlags!

Item was removed:
- ----- Method: StackCocoaIOSConfig>>compilerFlagsRelease (in category 'settings') -----
- compilerFlagsRelease
- ^#(
- '-g0' '-O0' '-DNDEBUG' '-DDEBUGVM=0'
- '-fomit-frame-pointer'
- '-fdefer-pop -fdelayed-branch -fguess-branch-probability -fcprop-registers -fif-conversion -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants'
- '-fthread-jumps -fcrossjumping -foptimize-sibling-calls -fcse-follow-jumps  -fcse-skip-blocks -fgcse  -fgcse-lm -fexpensive-optimizations -frerun-cse-after-loop -fcaller-saves -fpeephole2 -fschedule-insns  -fschedule-insns2 -fsched-interblock  -fsched-spec -fregmove -fstrict-aliasing -fstrict-overflow -fdelete-null-pointer-checks -freorder-blocks -freorder-functions -falign-functions -falign-jumps -falign-loops  -falign-labels -ftree-vrp -ftree-pre'
- '-finline-functions -funswitch-loops -fgcse-after-reload')!

Item was added:
+ ----- Method: StackCocoaIOSConfig>>setGlobalOptions: (in category 'settings') -----
+ setGlobalOptions: maker
+    super setGlobalOptions: maker.
+    maker set: 'CMAKE_C_COMPILER' to: 'clang'.
+    maker set: 'CMAKE_CXX_COMPILER' to: 'clang++'.!

Item was added:
+ StackUnixConfig subclass: #StackCrossRaspbianConfig
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'CMakeVMMaker-Unix'!
+
+ !StackCrossRaspbianConfig commentStamp: '<historical>' prior: 0!
+ This is a concrete class which generates a StackVM for Raspbian (debian on RaspberryPi). But in cross compilation usage.
+
+
+ Usage:
+ StackCrossRaspbianConfig generateWithSources
+
+
+ Fore more information, check the class comments of all the superclasses.
+ !

Item was added:
+ ----- Method: StackCrossRaspbianConfig>>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 added:
+ ----- Method: StackCrossRaspbianConfig>>addDriver:sources:generator:externalLibs: (in category 'as yet unclassified') -----
+ addDriver: name sources: aSources generator: cmakeGen externalLibs: extLibs
+
+ | 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}';
+ 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 fullName;
+ linkDirectories: '${CMAKE_FIND_ROOT_PATH}/usr/lib/arm-linux-gnueabihf/';
+
+ addExternalLibraries: extLibs;
+
+ cmd: 'target_link_libraries' params: name , ' ${LINKLIBS}';
+ cmd: 'set_target_properties' params: name , ' PROPERTIES PREFIX "" SUFFIX "" '
+ ].
+
+ (self buildDir / name) ensureDirectory.
+ self write: cfg toFile: name , '/', cmakeGen outputFileName.
+ cmakeGen addSubdirectory:  name.
+ !

Item was added:
+ ----- Method: StackCrossRaspbianConfig>>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 added:
+ ----- Method: StackCrossRaspbianConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
+ compilerFlagsDebug
+
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-D_GNU_SOURCE'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=1' }!

Item was added:
+ ----- Method: StackCrossRaspbianConfig>>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 added:
+ ----- Method: StackCrossRaspbianConfig>>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 added:
+ ----- Method: StackCrossRaspbianConfig>>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 added:
+ ----- Method: StackCrossRaspbianConfig>>configureBitBltSimulation: (in category 'as yet unclassified') -----
+ configureBitBltSimulation: maker
+ "extra rules for BitBltSimulation"
+
+ maker includeDirectories: '${pluginCross}'.
+
+ maker addCrossSources: #(
+ 'BitBltGeneric.c'
+ 'BitBltDispatch.c'
+ ).
+ !

Item was added:
+ ----- Method: StackCrossRaspbianConfig>>defaultExternalPlugins (in category 'as yet unclassified') -----
+ defaultExternalPlugins
+ ^ #(
+ B3DAcceleratorPlugin
+ JPEGReaderPlugin
+ JPEGReadWriter2Plugin
+ RePlugin
+ InternetConfigPlugin
+ )!

Item was added:
+ ----- Method: StackCrossRaspbianConfig>>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: StackCrossRaspbianConfig>>executableName (in category 'as yet unclassified') -----
+ executableName
+ ^ 'PharoS'!

Item was added:
+ ----- Method: StackCrossRaspbianConfig>>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 added:
+ ----- Method: StackCrossRaspbianConfig>>linkFlags (in category 'as yet unclassified') -----
+ linkFlags
+ ^ '-lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11'!

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

Item was added:
+ ----- Method: StackCrossRaspbianConfig>>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 added:
+ StackCrossRaspbianConfig subclass: #StackCrossRaspbianFastBltConfig
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'CMakeVMMaker-Unix'!
+
+ !StackCrossRaspbianFastBltConfig commentStamp: '<historical>' prior: 0!
+ This is a concrete class which generates a StackVM for Raspbian (debian on RaspberryPi). But in cross compilation usage.
+
+
+ Usage:
+ StackCrossRaspbianFastBltConfig generateWithSources
+
+
+ Fore more information, check the class comments of all the superclasses.
+ !

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

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

Item was added:
+ ----- Method: StackCrossRaspbianFastBltConfig>>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 added:
+ ----- Method: StackCrossRaspbianFastBltConfig>>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 added:
+ ----- Method: StackCrossRaspbianFastBltConfig>>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: StackEvtUnixDebugConfig>>compilerFlags (in category 'compiler flags') -----
  compilerFlags
+ ^ String streamContents:  [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
-
- ^  self commonCompilerFlags, ' ' ,self compilerFlagsDebug!

Item was changed:
  ----- Method: StackIPhoneConfig>>buildScript (in category 'build script') -----
  buildScript
  "answer the build script for building everything"
 
 
  ^
+ '#!!/usr/bin/env bash
- '#!!bash
 
+ set -e
+
  if [ !! -e vmVersionInfo.h ]; then
+ ../scripts/extract-commit-info.sh
- ../codegen-scripts/extract-commit-info.sh
  fi
+ cmake .
+ make
+ find ../{1}/{2}.app/Contents -type f -exec mv ''\{\}'' ../{1}/{2}.app \\;
+ rm -Rf ../{1}/{2}.app/Contents
+ ' format: { self outputDirName. self executableName }!
- cmake -G Xcode .
- xcodebuild -sdk {2} -configuration Release -target {1}
-
- ' format: {self executableName. self sdkTarget}!

Item was changed:
  ----- Method: StackIPhoneConfig>>commonCompilerFlags (in category 'settings') -----
  commonCompilerFlags
  "Common compiler flags"
  ^{
+ '-arch {1}' format: { self architecture }.
+ "CLANG >>"
+ '-fwrapv'. "Non optimization of stackoverflow (to allow number conversions)"
+ '-Wno-return-type'. "to avoid clang to complain about plugins that do not return properly."
+ '-Qunused-arguments'.
+ "CLANG <<"
+ '-isysroot {1}' format: { self sysroot }.
- "'-miphoneos-version-min=4.3'. "
- '-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk' format: { self targetDevice. self sdkVersion}.
  '-x objective-c'.
  '-std=gnu99'.
  '-falign-functions=16'.
  '-fno-gcse'.
- '-fno-cse-follow-jumps'.
  '-fvisibility=hidden'.
  '-funroll-loops'.
  '-finline-functions'.
  '-mno-thumb'.
- '-fwrapv'.
  '-DSTACKVM=1'.
  '-DCOGMTVM=0'.
  '-DUSE_GLOBAL_STRUCT=0'.
  '-DBASE_HEADER_SIZE=4'.
  '-DTARGET_OS_IS_IPHONE'.
  '-DHAVE_UUID_GENERATE'.
- "'-DUSE_INLINE_MEMORY_ACCESSORS'. "
  '-DHAVE_SYS_TIME_H'.
  '-DLSB_FIRST'.
  '-DHAVE_NANOSLEEP'.
+ '-DISQUEAK_IMAGE={1}' format: { self imageName }.
- '-DISQUEAK_IMAGE=', self imageName.
  '-DISQUEAK_SOURCES=PharoV10'.
  '-DSTACKVM'}!

Item was changed:
  ----- Method: StackIPhoneConfig>>configureFT2Plugin: (in category 'plugin extra rules') -----
  configureFT2Plugin: maker
  "extra rules for Freetype plugin.
  a custom rule to build freetype library"
+ | lib |
- | lib devRoot sdkRoot |
 
- devRoot := '/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer'
- format: { self targetDevice}.
- sdkRoot := '{1}/SDKs/{2}{3}.sdk'
- format: { devRoot. self targetDevice. self sdkVersion}.
-
  "add freetype library into loop"
  lib := self addThirdpartyLibrary: 'freetype2'.
+ lib configurationFlags: self ft2PluginConfigurationFlags.
- lib configurationFlags: ({
- '--without-zlib'.
- '--without-bzip2'.
-   '--host=arm-apple-darwin'.
- '--enable-static=yes'.
- '--enable-shared=no'.
- 'CC={3}/usr/bin/gcc'.
- 'CXX={3}/usr/bin/g++'.
- 'CFLAGS=\\"-arch {1} -std=c99 -Wno-trigraphs -O2 -fwrapv -Wreturn-type -Wunused-variable -fmessage-length=0 -miphoneos-version-min=4.0 -I{2}/usr/include/libxml2 -isysroot {2}\\"'.
- 'LDFLAGS=\\"-arch {1} -isysroot {2}\\"'}
- collect: [ :each | each format: { self architecture. sdkRoot. devRoot} ]).
 
  "link plugin with freetype lib"
+ maker includeDirectories: lib includeDir.
  maker addExternalLibrary: '${thirdpartyDir}/out/lib/', lib libraryFileName.
+ maker addExternalDependency: 'freetype2'.
+ !
- maker includeDirectories: lib includeDir. !

Item was added:
+ ----- Method: StackIPhoneConfig>>ft2PluginConfigurationFlags (in category 'plugin extra rules') -----
+ ft2PluginConfigurationFlags
+ ^ {'--without-zlib'.
+ '--without-bzip2'.
+ '--host=arm-apple-darwin'.
+ '--enable-static=yes'.
+ '--enable-shared=no'.
+ 'CFLAGS=\\"-arch {1} -std=c99 -Wno-trigraphs -O2 -fpascal-strings -fwrapv -Wreturn-type -Wunused-variable -fvisibility=hidden -fmessage-length=0 -miphoneos-version-min={3}  -I{2}/usr/include/libxml2 -isysroot {2}\\"'.
+ 'LDFLAGS=\\"-arch {1} -miphoneos-version-min={3} -isysroot {2}\\"' }
+ collect: [ :each |
+ each format: {
+ self architecture.
+ self sysroot.
+ self sdkVersion } ]!

Item was changed:
  ----- Method: StackIPhoneConfig>>sdkVersion (in category 'accessing') -----
  sdkVersion
+ ^'7.0'!
- ^'6.1'!

Item was changed:
  ----- Method: StackIPhoneConfig>>setCommonProperties: (in category 'settings') -----
  setCommonProperties: maker
  maker set: 'CMAKE_CROSSCOMPILING' to: 'TRUE'.
  maker set: 'CMAKE_SYSTEM_NAME' to: 'Darwin'.
  maker set: 'CMAKE_SYSTEM_PROCESSOR' to: 'arm'.
 
  maker set: 'SDKVER' toString: self sdkVersion.
+ maker
+ set: 'DEVROOT'
+ toString: ('/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer'
+ format: { self targetDevice }).
+ maker
+ set: 'SDKROOT'
+ toString: '${DEVROOT}/SDKs/', self targetDevice,'${SDKVER}.sdk'.
- maker set: 'DEVROOT' toString: ('/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer'
- format: { self targetDevice }).
- maker set: 'SDKROOT' toString: '${DEVROOT}/SDKs/', self targetDevice,'${SDKVER}.sdk'.
 
  maker set: 'CMAKE_OSX_SYSROOT' to: 'iphoneos${SDKVER}'.
 
  maker set: 'CMAKE_FIND_ROOT_PATH' to: '"${SDKROOT}" "${DEVROOT}"'.
  maker set: 'CMAKE_FIND_ROOT_PATH_MODE_PROGRAM' to: 'ONLY'.
  maker set: 'CMAKE_FIND_ROOT_PATH_MODE_LIBRARY' to: 'ONLY'.
  maker set: 'CMAKE_FIND_ROOT_PATH_MODE_INCLUDE' to: 'ONLY'.
 
  maker set: 'CMAKE_EXE_LINKER_FLAGS' toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
  maker set: 'CMAKE_C_FLAGS' toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
  maker set: 'CMAKE_CXX_FLAGS' toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
 
  maker addFrameworks: self frameworks.!

Item was changed:
  ----- Method: StackIPhoneConfig>>setExtraTargetProperties: (in category 'settings') -----
  setExtraTargetProperties: maker
  "super setExtraTargetProperties: maker."
 
  | precompiledHeaders plist |
 
  precompiledHeaders := (self executableName, '_Prefix.pch').
  (FileStream forceNewFileNamed: (maker buildDir / precompiledHeaders) fullName)
  nextPutAll: self precompiledHeaders;
  close.
 
  maker addXCodeProperty: 'GCC_PREFIX_HEADER' value: '${buildDir}/', precompiledHeaders.
 
  self setCommonProperties: maker.
 
  " generated and add Info.plist file "
  plist := self plistFile.
  (FileStream forceNewFileNamed: (maker buildDir / 'Info.plist') fullName)
  nextPutAll: plist;
  close.
 
  maker addProperty: 'MACOSX_BUNDLE_INFO_PLIST' value: '${buildDir}/Info.plist'.  
  maker
  cmd: 'set_target_properties'
  params: self executableName, ' PROPERTIES COMPILE_FLAGS "-include \"', (self buildDir / self prefixHeaderFileName) fullName, '\""'.
 
+ maker
+ set: 'CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY'
- maker set: 'CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY'
  toString: self codeSignIdentity.
+ maker
+ set: 'CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY'
- maker set: 'CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY'
  toString: self targetedDeviceFamilyAsString.
+ maker
+ set: 'CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET'
- maker set: 'CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET'
  to: self deploymentTargetVersion.
+ maker
+ set: 'CMAKE_XCODE_ATTRIBUTE_CONFIGURATION_BUILD_DIR'
- maker set: 'CMAKE_XCODE_ATTRIBUTE_CONFIGURATION_BUILD_DIR'
  toString: '$(BUILD_DIR)/$(CONFIGURATION)'.
+ maker
+ set: 'CMAKE_XCODE_ATTRIBUTE_CONFIGURATION_TEMP_DIR'
- maker set: 'CMAKE_XCODE_ATTRIBUTE_CONFIGURATION_TEMP_DIR'
  toString: '$(BUILD_DIR)/$(CONFIGURATION)'.
 
  maker set: 'EXECUTABLE_OUTPUT_PATH' toString: self outputDir fullName.
 
+ maker puts: 'set_source_files_properties(${srcVMDir}/gcc3x-cointerp.c PROPERTIES COMPILE_FLAGS -O0)'.
+
+
- maker puts: 'set_source_files_properties(${srcVMDir}/gcc3x-cointerp.c PROPERTIES COMPILE_FLAGS -O0)'
  !

Item was added:
+ ----- Method: StackIPhoneConfig>>sysroot (in category 'accessing') -----
+ sysroot
+ ^ '/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk'
+ format: {
+ self targetDevice.
+ self sdkVersion }!

Item was changed:
  ----- Method: StackMacOSDebugConfig>>compilerFlags (in category 'compiler flags') -----
  compilerFlags
+     ^ String streamContents:  [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
-
-     ^  self compilerFlagsDebug!

Item was added:
+ StackUnixConfig subclass: #StackRaspbianConfig
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'CMakeVMMaker-Unix'!
+
+ !StackRaspbianConfig commentStamp: '<historical>' prior: 0!
+ This is a concrete class which generates a StackVM for Raspbian (debian on RaspberryPi).
+
+ Usage:
+ StackRaspbianConfig generateWithSources
+
+
+ Fore more information, check the class comments of all the superclasses.
+ !

Item was added:
+ ----- Method: StackRaspbianConfig>>addDriver:sources:generator:externalLibs: (in category 'as yet unclassified') -----
+ addDriver: name sources: aSources generator: cmakeGen externalLibs: extLibs
+
+ | 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}';
+ includeDirectories: '${crossDir}/plugins/FilePlugin';
+ includeDirectories: '${targetPlatform}/plugins/B3DAcceleratorPlugin';
+ includeDirectories: '${crossDir}/plugins/B3DAcceleratorPlugin';
+ set: 'LIBRARY_OUTPUT_PATH' toString: self outputDir fullName;
+ addExternalLibraries: extLibs;
+ cmd: 'target_link_libraries' params: name , ' ${LINKLIBS}';
+ cmd: 'set_target_properties' params: name , ' PROPERTIES PREFIX "" SUFFIX "" '
+ ].
+
+ (self buildDir / name) ensureDirectory.
+ self write: cfg toFile: name , '/', cmakeGen outputFileName.
+ cmakeGen addSubdirectory:  name.
+ !

Item was added:
+ ----- Method: StackRaspbianConfig>>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 added:
+ ----- Method: StackRaspbianConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
+ compilerFlagsDebug
+
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-D_GNU_SOURCE'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DDEBUGVM=1' }!

Item was added:
+ ----- Method: StackRaspbianConfig>>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 added:
+ ----- Method: StackRaspbianConfig>>configureBitBltSimulation: (in category 'as yet unclassified') -----
+ configureBitBltSimulation: maker
+ "extra rules for BitBltSimulation"
+
+ maker includeDirectories: '${pluginCross}'.
+
+ maker addCrossSources: #(
+ 'BitBltGeneric.c'
+ 'BitBltDispatch.c'
+ ).
+ !

Item was added:
+ ----- Method: StackRaspbianConfig>>defaultExternalPlugins (in category 'as yet unclassified') -----
+ defaultExternalPlugins
+ ^ #(
+ B3DAcceleratorPlugin
+ JPEGReaderPlugin
+ JPEGReadWriter2Plugin
+ RePlugin
+ InternetConfigPlugin
+ )!

Item was added:
+ ----- Method: StackRaspbianConfig>>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: StackRaspbianConfig>>executableName (in category 'as yet unclassified') -----
+ executableName
+ ^ 'PharoS'!

Item was added:
+ ----- Method: StackRaspbianConfig>>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 added:
+ ----- Method: StackRaspbianConfig>>linkFlags (in category 'as yet unclassified') -----
+ linkFlags
+ ^ '-lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11'!

Item was added:
+ ----- Method: StackRaspbianConfig>>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 added:
+ StackRaspbianConfig subclass: #StackRaspbianFastBltConfig
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'CMakeVMMaker-Unix'!
+
+ !StackRaspbianFastBltConfig commentStamp: '<historical>' prior: 0!
+ http://www.cmake.org/Wiki/CMake/Assembler!

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

Item was added:
+ ----- Method: StackRaspbianFastBltConfig>>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: StackSimulatorConfig>>commonCompilerFlags (in category 'accessing') -----
+ commonCompilerFlags
+ ^ super commonCompilerFlags, {
+ '-mios-simulator-version-min={1}' format: { self sdkVersion } }!

Item was added:
+ ----- Method: StackSimulatorConfig>>ft2PluginConfigurationFlags (in category 'plugin extra rules') -----
+ ft2PluginConfigurationFlags
+ ^ {'--without-zlib'.
+ '--without-bzip2'.
+ '--host=i386-apple-darwin'.
+ '--enable-static=yes'.
+ '--enable-shared=no'.
+ 'CFLAGS=\\"-arch {1} -pipe -std=c99 -Wno-trigraphs -O2 -fpascal-strings -fwrapv -Wreturn-type -Wunused-variable -fvisibility=hidden -fmessage-length=0 -mios-simulator-version-min={3}  -I{2}/usr/include/libxml2 -isysroot {2}\\"'.
+ 'LDFLAGS=\\"-arch {1} -mios-simulator-version-min={3} -isysroot {2}\\"' }
+ collect: [ :each |
+ each format: {
+ self architecture.
+ self sysroot.
+ self sdkVersion } ]!

Item was added:
+ ----- Method: StackSimulatorConfig>>setCommonProperties: (in category 'settings') -----
+ setCommonProperties: maker
+ maker set: 'CMAKE_CROSSCOMPILING' to: 'TRUE'.
+ maker set: 'CMAKE_SYSTEM_NAME' to: 'Darwin'.
+ maker set: 'CMAKE_SYSTEM_PROCESSOR' to: 'i386'.
+
+ maker
+ set: 'SDKVER'
+ toString: self sdkVersion.
+ maker
+ set: 'DEVROOT'
+ toString: ('/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer'
+ format: { self targetDevice }).
+ maker
+ set: 'SDKROOT'
+ toString: ('$\{DEVROOT\}/SDKs/{1}$\{SDKVER\}.sdk' format: { self targetDevice }).
+
+ maker set: 'CMAKE_OSX_SYSROOT' to: self sysroot.
+
+ maker set: 'CMAKE_FIND_ROOT_PATH' to: '"${SDKROOT}" "${DEVROOT}"'.
+ maker set: 'CMAKE_FIND_ROOT_PATH_MODE_PROGRAM' to: 'ONLY'.
+ maker set: 'CMAKE_FIND_ROOT_PATH_MODE_LIBRARY' to: 'ONLY'.
+ maker set: 'CMAKE_FIND_ROOT_PATH_MODE_INCLUDE' to: 'ONLY'.
+
+ maker
+ set: 'CMAKE_EXE_LINKER_FLAGS'
+ toString: '-mios-simulator-version-min=${SDKVER} --sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
+ maker
+ set: 'CMAKE_C_FLAGS'
+ toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
+ maker
+ set: 'CMAKE_CXX_FLAGS'
+ toString: '--sysroot ${SDKROOT} -L${SDKROOT}/usr/lib -L${SDKROOT}/usr/lib/system'.
+
+ maker addFrameworks: self frameworks.!

Item was changed:
  ----- Method: StackSimulatorConfig>>standardIncludes (in category 'source files') -----
  standardIncludes
+ ^super standardIncludes, {
+ '/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk/usr/include/'
+ format: {
+ self targetDevice.
+ self sdkVersion} }
- ^super standardIncludes, {'/Applications/Xcode.app/Contents/Developer/Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk/usr/include/'
- format: { self targetDevice. self sdkVersion} }
  !

Item was changed:
  ----- Method: StackUnixDebugConfig>>compilerFlags (in category 'compiler flags') -----
  compilerFlags
+ ^  String streamContents:  [ :stream |
+ self commonCompilerFlags asStringOn: stream delimiter: ' '.
+ self compilerFlagsDebug asStringOn: stream delimiter: ' ' ]!
-
- ^  self commonCompilerFlags, ' ' ,self compilerFlagsDebug!

Item was changed:
  ----- Method: StackUnixDebugFixedVerSIConfig>>compilerFlagsDebug (in category 'as yet unclassified') -----
  compilerFlagsDebug
 
+ ^ {
+ '-g3'.
+ '-O0'.
+ '-msse2'.
+ '-save-temps'.
+ '-D_GNU_SOURCE'.
+ '-DITIMER_HEARTBEAT=1'.
+ '-DNO_VM_PROFILE=1'.
+ '-DCOGMTVM=0'.
+ '-DDEBUGVM=1' }!
- ^ '-g3 -O0 -msse2 -save-temps -D_GNU_SOURCE -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=1'
-
- !