Win32: Workarounds for bugs in eXept's Win32 makefiles as of 2017-01-13
As of 2017-01-13, mingwmake fails due to a slasg/backslash mess in OUTDIR
and OUTDIR_SLASH variables (presumably). As a consequence, `objmingw` directory
is either not created at all or an attemptp to create it fails because of
invalid command syntax.
To (temporarily, I hope) workaround it, checkout older makefiles (from
2017-01-01) which seems to work.
How could eXept mess up things so badly without noticing?
project :'stx:baseline' do
repository :'exept:public'
package "stx:stc"
package "stx:librun"
package "stx:libbasic"
package "stx:goodies/refactoryBrowser/helpers"
package "stx:goodies/refactoryBrowser/parser"
package "stx:libbasic2"
package "stx:libcomp"
package "stx:libcompat"
package "stx:libview"
package "stx:libbasic3"
package "stx:libdb"
package "stx:libdb/libodbc"
package "stx:libdb/libsqlite"
package "stx:libview2"
package "stx:libboss"
package "stx:goodies/refactoryBrowser/changes"
package "stx:libwidg"
package "stx:libhtml"
package "stx:libwidg2"
package "stx:libui"
package "stx:libview3"
package "stx:libwidg3"
package "stx:libtool"
package "stx:libjavascript"
package "stx:goodies/refactoryBrowser/refactoring"
package "stx:goodies/refactoryBrowser/lint"
package "stx:goodies/refactoryBrowser/browser"
package "stx:libtool2"
package "stx:goodies/libdbase" if not win32?
application 'stx:projects/smalltalk'
tasks do
task :'checkout:buildtools' => [ BUILD_DIR / 'stx' / "rules",
BUILD_DIR / 'stx' / "configurations",
BUILD_DIR / 'stx' / "support",
BUILD_DIR / 'stx' / "RELEASE",
# needed by applications for *.rc stuff
BUILD_DIR / 'stx' / 'projects' / 'smalltalk',
# documentation
BUILD_DIR / 'stx' / 'doc' / 'online' / 'english',
BUILD_DIR / 'stx' / 'doc' / 'online' / 'pictures',
BUILD_DIR / 'stx' / 'doc' / 'online' / 'icons',
# various icons (country flags etc)
BUILD_DIR / 'stx' / 'goodies' / 'bitmaps'
]
file BUILD_DIR / 'stx' / 'rules' => BUILD_DIR do | t |
# As of 2017-01-13, Borland makefiles fail to compile Smalltalk/X
# due to a slash/backslash mess in variables OUTDIR and OUTDIR_SLASH
# To (temporarily) workaround that, checkout older version which
# is/was OK.
# How could eXept mess up things so badly without noticing?
checkout :'exept:public', 'stx/rules', revision: '2017-01-01'
# the clear is here to avoid multiple checkouts
t.clear()
end
file BUILD_DIR / 'stx' / 'RELEASE' => BUILD_DIR do | t |
checkout :'exept:public', 'stx/RELEASE'
# the clear is here to avoid multiple checkouts
t.clear()
end
file BUILD_DIR / 'stx' / 'configurations' => BUILD_DIR do | t |
checkout :'exept:public', 'stx/configurations'
# the clear is here to avoid multiple checkouts
t.clear()
end
file BUILD_DIR / 'stx' / 'doc' / 'online' / 'english' => BUILD_DIR do | t |
checkout :'exept:public', 'stx/doc/online/english'
# the clear is here to avoid multiple checkouts
t.clear()
end
file BUILD_DIR / 'stx' / 'doc' / 'online' / 'pictures' => BUILD_DIR do | t |
checkout :'exept:public', 'stx/doc/online/pictures'
# the clear is here to avoid multiple checkouts
t.clear()
end
file BUILD_DIR / 'stx' / 'doc' / 'online' / 'icons' => BUILD_DIR do | t |
checkout :'exept:public', 'stx/doc/online/icons'
# the clear is here to avoid multiple checkouts
t.clear()
end
file BUILD_DIR / 'stx' / 'goodies' / 'bitmaps' => BUILD_DIR do | t |
checkout :'exept:public', 'stx/goodies/bitmaps'
# the clear is here to avoid multiple checkouts
t.clear()
end
file BUILD_DIR / 'stx' / 'support' => BUILD_DIR do | t |
checkout :'exept:public', 'stx/support'
# the clear is here to avoid multiple checkouts
t.clear()
end
file BUILD_DIR / 'stx' / 'projects' / 'smalltalk' do | t |
app = project.application
repo = :'exept:public'
branch = nil
if (app.name == 'stx:projects/smalltalk' )
repo = app.repository
branch = app.branch
end
checkout repo, 'stx/projects/smalltalk', :branch => branch, :separator => '-'
# the clear is here to avoid multiple checkouts
t.clear()
end
end
end