Build only one dll from project without building whole WINE

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
petravion
Newbie
Newbie
Posts: 1
Joined: Fri Jun 30, 2023 8:10 am

Build only one dll from project without building whole WINE

Post by petravion »

Hi to all!
I am trying to fix some Windows application wich working with scanner and use TWAIN protocol.
WINE has TWAIN support, all commands from TWAIN protocol redirect to SANE subsystem.
But there are some bugs in this realisation - thats why my Windows application working not absolutely correct.
One of the component in this chain is "sane.ds" - it is DLL for scanner sources.

I have download WINE source and can build it. Next step is to explore the code (first of all - this "sane.ds") and fix it.
But - I have no idea how can I build only one dll from whole project. My laptop build whole WINE more that 1 hour. It is not possible to make build whole project each time after a little code changing in one dll.

Does any body know - how to build separetly one dll from project?

I have already try 3 ways:
1. Do only ./configure from root WINE directory.
After that I get local Makefiles in all dll subdirs. Than I go to dll subfolder and do ./make there.
No success - linker get errors about some undefined links

2. Go to dll subfolder and do winemaker localy. After that I get local Makefile and can do .\make, but on this step I get a lot of missing header files and dependecies. After fix that linker again talk to me about links and errors.

3. Do ./configure and make from root WINE directory. Whating more than 1 hour and go to subdir, where is my ready dll that I can use (where is local Makefile too, but is changed from Makefile, creating only with ./configure operation). I can take this dll and copy to necessary folder in my wine prefix and it is work. But if I do some changes in local .c and .h files in dll sources and try to do local .\make in this subfolder - I get the same dll like first time looks like without my changes... Looks like linker build my dll from "old" .so files and don't create new files.

I'm at a dead end.
Can any body tell me how to build only one little component from WINE?
Do developers rebuild the entire project every time when they want to make a little edits and fix errors in WINE subsystems and components?
User avatar
DarkShadow44
Level 8
Level 8
Posts: 1207
Joined: Tue Nov 22, 2016 5:39 pm

Re: Build only one dll from project without building whole WINE

Post by DarkShadow44 »

1) After doing a "configure", I can go into a folder (e.g. wine/dlls/sane.ds") and when I run "make" it just build that DLL (and everything it needs)
3) Also, when changing a file and running "make" in the wine root folder, it only builds what has changed. That usually just works fine. Note that you do not need to run "configure" again when you just changed a bit of code, just use make.

Can you maybe explain in detail what you're doing? Usually you just change code, and the run "make" in the root wine folder. But when that doesn't work for you, then you must be doing something different.
Locked