Hi Ben,
On Wed, Sep 19, 2018 at 6:17 AM Ben Coman <btc@openinworld.com> wrote:
 
I tried to build via "build.win32x86/squeak.cog.spur/mvm" but got an error with the resource file...
```
i686-w64-mingw32-windres \
    --include-dir ../../platforms/win32/misc \
    -D_WIN32 \
    -DFILEVERSIONVALUES=,,, '-DFILEVERSIONSTRING=\"...\\0\"'  \
    -i Squeak.rc \
    -o builddbg/vm/Squeak.res
==> 
i686-w64-mingw32-windres: Squeak.rc:7: syntax error
make[1]: *** [../common/Makefile:296: Squeak.res] Error 1

It should look something like this:

Aeolus.oscogvm$ grep FILEVERSIONVALUES build.win32x86/squeak.cog.spur/LOGF
i686-w64-mingw32-windres --include-dir ../../platforms/win32/misc -D_WIN32 -DFILEVERSIONVALUES=2018,8,25,1913 '-DFILEVERSIONSTRING=\"2018.8.25.1913\\0\"' -i Squeak.rc -o build/vm/Squeak.res
i686-w64-mingw32-windres --include-dir ../../platforms/win32/misc -D_WIN32 -DFILEVERSIONVALUES=2018,8,25,1913 '-DFILEVERSIONSTRING=\"2018.8.25.1913\\0\"' -i build/vm/Squeak.res -o build/vm/resource.o

where the values are the checkin date of the VM sources as produced by a compiled program.  Here's the rule in common/Makefile.tools:

RCFLAGS:= --include-dir $(PLATDIR)/win32/misc -D_WIN32 -DFILEVERSIONVALUES=$(SVNMAJOR),$(SVNMINOR),$(SVNREV),$(SVNBUILD) '-DFILEVERSIONSTRING=\"$(SVNMAJOR).$(SVNMINOR).$(SVNREV).$(SVNBUILD)\\0\"'
 
And here's the rules for them:

SVNMAJOR := $(shell sed -e "s/^static.*GitRawRevisionString.*Rev: \([0-9][0-9][0-9][0-9]\).*/\\1/p" -e d $(PLATDIR)/Cross/vm/sqSCCSVersion.h | sed -e 's/^0*//')
SVNMINOR := $(shell sed -e "s/^static.*GitRawRevisionString.*Rev: [0-9][0-9][0-9][0-9]\([0-9][0-9]\).*/\\1/p" -e "s/^0*//" -e d $(PLATDIR)/Cross/vm/sqSCCSVersion.h | sed -e 's/^0*//')

So what I suspect has happened is that you've checked out the sources but not yet run scripts/updateSCCSVersions which has to be run before compiling for the first time.  [This is IMO a bug with git, which will not embed any version control info in files on checkin or checkout; one has to use triggers, which means no info on the first checkout :-( ).

If you /can/ instead of just running scripts/updateSCCSVersions you might add a rule that will run scripts/updateSCCSVersions if SVNMAJOR ends up being empty.  I'll then adapt that on the Mac builds.

Apologies.  This is covered in README.md, but that's hardly a satisfactory answer.

```

I see a reference at the top of [1] to this for Pharo but no direct resolution is mentioned.

```
FILEVERSION FILEVERSIONVALUES
```
and the value ",,," supplied for FILEVERSIONVALUES on the command line seems invalid.


I see Pharo has hardcoded the value... 
```
 FILEVERSION 5,0,0,0
```

and if I do the same in Squeak.rc the build completes.
So should I submit a PR for that, or does anyone know how the command line "FILEVERSIONVALUES" 
is supposed to be supplied a proper value?  Searching the repo doesn't give any hints...


cheers -ben


--
_,,,^..^,,,_
best, Eliot