Using winebuild explicitly

Ralf Juengling juenglin at cse.ogi.edu
Fri Jan 2 18:16:45 CST 2004


Hi Dimi,

On Wed, 2003-12-31 at 16:47, Dimitrie O. Paun wrote:
> On December 31, 2003 07:42 pm, Ralf Juengling wrote:
> > okay, now it's as before:
> 
> As I said, I think there's something wrong with your
> ld setup. You need to have /usr/local/lib (where
> the libwine library is) in your /etc/ld.so.conf:

I tried this today, (adding /local/lib to /etc/ld.so.conf) 
but it didn't make a difference.
I then looked into winegcc.c and winewrap.c to find out 
what winwgcc is actually doing. It is creating a shared 
library (dll) and a little wrapper executable to load the
shared library.

This should not be necessary with the code in question and
I would rather like to build just one executable. So I wrote
a Makefile that does this (not using winegcc & co) by 
calling winebuild explicitly (see below).

It seems to work, but when I start the executable by

wine phaeaco.exe.so

I see the application's windows appearing and immediately 
disappearing and get the following error messages:

err:win:WIN_FindWndPtr window 0x20030 belongs to other process
err:win:WIN_FindWndPtr window 0x20030 belongs to other process

I wonder whether this error has to do with the way I built
the executable. The Makefile is as follows:


------ Makefile ------------------------------------------

INCLUDE_PATH = /local/include/wine
LIBRARY_PATH = /local/lib


# This should be replaced by wildcard expression as soon as all
# sources actually participate in the built.
PHAEACO_CSRCS  = ../gensrc/Statist.c

PHAEACO_CXXSRCS = Experim.cpp   Login.cpp   Phaeaco.cpp  TextWnd.cpp \
	Intrface.cpp  Mentor.cpp  Solver.cpp  List.cpp  
        ... (some more)

PHAEACO_RCSRCS = phaeaco.rc

PHAEACO_DLLS = advapi32 comdlg32 gdi32 kernel32 odbc32 ole32 \
	oleaut32 shell32 user32 winspool winmm comctl32 

DEFINES   = -D__WINE__
INCLUDES  = -I. -I../geninc -I../coginc -I$(INCLUDE_PATH)
-I$(INCLUDE_PATH)/windows
CC        = gcc
CFLAGS    = -g -fpack-struct $(DEFINES) 
CXX       = g++
CXXFLAGS  = -g -fpack-struct $(DEFINES)
CPPFLAGS  = $(INCLUDES)
OBJS      = $(PHAEACO_CSRCS:.c=.o) $(PHAEACO_CXXSRCS:.cpp=.o)
RESS      = $(PHAEACO_RCSRCS:.rc=.res)
LDFLAGS   = -L$(LIBRARY_PATH) -L$(LIBRARY_PATH)/wine
LIBS      = -lwine -lm 
WBLIBS    = $(patsubst %,-l%,$(PHAEACO_DLLS))

phaeaco.exe.so : $(OBJS)
	winebuild -o phaeaco.spec.c --exe $(@) -mgui $(OBJS) $(RES) $(LDFLAGS)
$(WBLIBS)
	gcc -o phaeaco.spec.o -c phaeaco.spec.c
	$(CXX) -shared -Wl,-Bsymbolic,-z,defs -o $@ phaeaco.spec.o $(OBJS)
$(LDFLAGS) $(LIBS)
	strip --strip-all $(@)

%.o : %.cpp
	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<

%.res : %.rc
	wrc $(DEFINES) $(INCLUDES) -o $@ $<

clean:
	rm -f ./*.o ../gensrc/*.o ../cogsrc/*.o





-- 
Ralf Juengling <juenglin at cse.ogi.edu>




More information about the wine-devel mailing list