[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