[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-cygwin
Subject:    RE: [Issue N11069]  Question about qt cygwin port
From:       "Ralf Habacker" <Ralf.Habacker () freenet ! de>
Date:       2002-12-05 8:33:12
[Download RAW message or body]

> Sure, it's just that buying another vmware licence and the commercial
> Cygwin version,

you need no license for cygwin. :-)

> installing the environment, porting Qt need lots of resources.

Mostly work is already done. See below

>
>
> > BTW: Currently we are working on the port for qt3.1. If we are ready,
> > I will
> > send you the remaining patches.
>
> Fine. If possible I would prefer following these steps:
>
> 1) Get configure to run. This should already be the case. If not I would
> be interested in feedback. Relevant patches would be immediately
> applied to Qt 3.1.

 it runs already. Only mkspecs/cygwin-g++ patches. See mkspecs_cygwin_310rc1.dif
One note: the qmake.conf contains the following as backward compatibility to
recent cygwin ld

# activate both below if implib for dlls are needed
#QMAKE_CYGWIN_IMPLIB	= 1
#QMAKE_LFLAGS_SHLIB	= -shared -Wl,--out-implib=$(TARGETI)


> 2) Get Qt to build. This should almost be the case. I would be
> interested in feedback. Relevant patches would be applied to Qt 3.1.

See file root_cygwin_310rc1.dif.

Additional there are some patches to qmake. While patching it i recognized an
incompatibility problem with the unix generator.

In all targets except shared library the TARGET macros is defined to the
absolute path of the installed library.

makefile(unix - app)
QMAKE_TARGET = moc
TARGET  = ../../bin/moc
...
$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
...

Only for the shared library handles this in another way.
makefile(unix - shared lib/plugin)
QMAKE_TARGET = qt-mt
DESTDIR  = ../lib/
TARGET  = libqt-mt.so.3.1.0
[1]^^^^^^^^
TARGETA	= ../lib/libqt-mt.a
TARGETD	= libqt-mt.so.3.1.0
TARGET0	= libqt-mt.so
TARGET1	= libqt-mt.so.3
TARGET2	= libqt-mt.so.3.1

all: Makefile ../lib/libqt-mt.prl  ../lib/$(TARGET)
                                   ^^^^^^[2]
../lib/$(TARGET):  $(UICDECLS) $(OBJECTS) $(OBJMOC) $(SUBLIBS)
[2]^^^^^^^^
	test -d ../lib/ || mkdir -p ../lib/
	-$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)
	$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
	-ln -s $(TARGET) $(TARGET0)
	-ln -s $(TARGET) $(TARGET1)
	-ln -s $(TARGET) $(TARGET2)
	-$(DEL_FILE) ../lib/$(TARGET)
	-$(DEL_FILE) ../lib/$(TARGET0)
	-$(DEL_FILE) ../lib/$(TARGET1)
	-$(DEL_FILE) ../lib/$(TARGET2)
	-$(MOVE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2) ../lib/


The problem is, that cygwin need to install the shared library in the bin dir,
which conflicts with [1] [2].
If the destination dir would be added to TARGET the if would be easeier. (The
uses TARGET macro should be replaced with the TARGETD, which is the same.

TARGET  = ../lib/libqt-mt.so.3.1.0
[1] ^^^^
TARGETA	= ../lib/libqt-mt.a
TARGETD	= libqt-mt.so.3.1.0
TARGET0	= libqt-mt.so
TARGET1	= libqt-mt.so.3
TARGET2	= libqt-mt.so.3.1

all: Makefile ../lib/libqt-mt.prl  $(TARGET)
                                   ^^^[2]
$(TARGET):  $(UICDECLS) $(OBJECTS) $(OBJMOC) $(SUBLIBS)
[2]^^^
	-$(DEL_FILE) $(TARGETD) $(TARGET0) $(TARGET1) $(TARGET2)
                           ^
	$(LINK) $(LFLAGS) -o $(TARGETD) $(OBJECTS) $(OBJMOC) $(LIBS)
                                   ^
	-ln -s $(TARGETD) $(TARGET0)
                     ^
	-ln -s $(TARGETD) $(TARGET1)
                     ^
	-ln -s $(TARGETD) $(TARGET2)
                     ^
	-$(DEL_FILE) ../lib/$(TARGET)
	-$(DEL_FILE) ../lib/$(TARGET0)
	-$(DEL_FILE) ../lib/$(TARGET1)
	-$(DEL_FILE) ../lib/$(TARGET2)
	-$(MOVE) $(TARGETD) $(TARGET0) $(TARGET1) $(TARGET2) ../lib/
                       ^

If you like I can prepare a patch for this.

Ralf




["mkspecs_cygwin_310rc1.dif" (application/octet-stream)]
["root_cygwin_310rc1.dif" (application/octet-stream)]
["qmake_cygwin_310rc1.dif" (application/octet-stream)]
_______________________________________________
kde-cygwin mailing list
kde-cygwin@mail.kde.org
http://mail.kde.org/mailman/listinfo/kde-cygwin

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic