On September 10, 2002 12:42 pm, you wrote:
"Dimitrie O. Paun" dpaun@rogers.com writes:
Why don't we take the following directives: name, heap, init out of the .spec file, and put them in the Makefile (transfered to winebuild through command line args)?
Well, 'name' is no longer really used, and 'heap' is used for 16-bit dlls, where specifying it in the makefile would be inconvenient. And I'm hoping to make 'init' default to DllMain one day... So I'm not sure we would use these command line options at all. But if you want to add them anyway I don't mind.
I see. Apart from functions and 'init', this is what we have in .spec files today: heap 65520 rsrc version16.res name kernel rsrc version16.res rsrc version16.res rsrc resources/display.res rsrc resources/mouse.res heap 65520 rsrc resources/version16.res mode guiexe
I was hoping to get rid of them, along with init. Once we do that, it's gonna be very easy to extract the .spec files from the .c files, and be done with it. I was thinking we can add empty macros for __export (16-bit) and __declspec(dllexport). When compiling in PE, we can directly use them, if not, we can scan for them and generate a .spec file. Moreover, we should support natively .DEF files, for stuff that can not be specified inside the .c files. And so we will have:
PE build ELF build .c .DEF(opt) .c .c | \ | | v v v .DEF (opt) .o .spec .o \ / | | \ / v / \ / .o / \ / \ / LINK LINK | | v v .DLL .DLL
BTW, what does it take to default 'init' to DllMain?
With that in mind, it would be neat if we could specify a flag at configure time to build most of Wine as PE with a cross mingw. It would be way cool if I could take the same comctl32.dll I have on Linux, copy it on my Windows machine, and test it out...
Note that you can do that today, you just need two separate build trees so it's a bit inconvenient. I'm planning to make it possible to build everything inside the same tree one of these days.
Yay!!! Hip, hip, hurray for Alexandre!!!
-- Dimi.