Actually there is a portable solution. Here's what i did when I compiled the Wine tests on Windows:
Run 'vcvars32.bat' first. When you install Microsoft Visual C++ you can either tell it to add environment variables with the useful stuff (either in autoexec.bat or the registry for NT), or just rely on 'vcvars32.bat'. This script is usually in the include directory: c:\Program Files\Microsoft Visual Studio\VC98\include\vcvars32.bat
Well, so I run it on the command line and then in the makefile (a realy .mak file) I put:
INCLUDE=$(TOTOP)\include;$(INCLUDE)
Then I don't use -I at all and the compiler will automatically use the environment variable. If using the .mak file directly from the IDE you don't even need to run vcvars32.bat,
First of all I use .dsw/.dsp files not Makefile. OK, they are sort of Makefile but not quite.
Secondly the idea is that have different targets so you can easily switch between them. So that does quite cut it.
However I still had include order problems: part of the headers were coming from MS and part from Wine but did not have time to look into it in detail. So I ended up extracting the tests from the Wine tree. But if you are able to avoid the header mixup then the above could work.
As Alexandre suggested I copied the needed header files. It work eventhough it is a little kludgy. Oh well, it will do for now.
Now I just have to properly fix all compile error instead of just kludging them...