Dear Joel, Dear Anders, 

Sorry for the whitespace mess:  I did not know about the uncrustify stuff. I 
added it in my pre-commit hook, so this should append again.

I now have a running version on AppVeyor 
- It is automatically build with your autogen / configure / make suite
- it is compiled with Visual 2013 and Visual 2015 compilers, in either 32 and 
64 bits versions.
- it pass the internal unit tests
- one can download a compiled alpha version (eg. 

To do so:
- I had to fix 2 bugs from the original ccache sources, when compiled in WIN32 
environment. I guess you could cherry-pick them:
  o make_relative_path(char *path) does a free(path+1):
  o hash_command_output() makes a double free of win32args == cmd

- I had to upgrade config.guess and config.sub to the latest version. The old 
version (2012-07-31) did not 
  recognise my MSYS2 build image. This seems to make Travis shock: I’ll have a 
look there.

- I made quiet a few changes in, and The 
main challenge there was:
  o $(CC) was used both for compilation and link. On Windows it is two separate 
  o Use of standard OBJEXT to manage .o vs. .obj, and of new LIBEXT to manage 
.a vs. .lib
  o Use different compile options (eg. -nologo -MD -O3 -W3). And link options 
  o Visual have a different syntax to compile objects: “cl -Fofoo.obj -c foo.c” 
instead of “gcc -o foo.o -c foo.c”
  o Visual have a different syntax to force include (“-FIconfig.h” instead of 
“—include config.h”)
 … and mainly the fact this was my first autoconf project, my first MSYS 
project and my first AppVeyor project too.

Things I would like to do now:
- Make sure Travis works again !
- Make it run for another compiler (mingw32 and mingw64 ?) because some config 
stuff do not use the proper predicate yet.
- Make to run with cl.exe, if easy.
- Add a few unit tests for WIN32 specific paths and options.

- Any advice on how to do simpler ?
- Any advice on things I should do differently to better suite your taste ?
- How do you prefer I manage the configuration stuff: in (eg. 
settings a LINK variable) or in Makefile (using ifeq()) ?

Thanks again for your time,
JD dot Gascuel at free dot fr
> On 17 Mar 2017, at 20:32, Anders Björklund <> wrote:
> Seems that there is an awful lot of hacks needed to support this platform and 
> compiler.
> And the whitespace issues have only gotten worse ? Maybe it is not feasible 
> to do this...
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub 
> <>, or mute 
> the thread 
> <>.

ccache mailing list

Reply via email to