Martin Costabel wrote on 26.10.2004 7:22 Uhr:
In one of my earlier posts I explained this: My fink prefix is /sw, but /sw is a symlink to /sw_current where the actual Fink installation is living. I think this is a standard practice to have /sw as a symlink to someplace else. In any case, I have been doing this forever and haven't had problems with it so far. It allows me switching between several Fink installations by just changing a symlink.

The qt3 Makefiles put randomly /sw/ or /sw_current/ into the paths for the install targets. The result is that I have both sw and sw_current directories in %d:

% ls -l /sw/src/root-qt3-3.3.3-25/
total 0
drwxr-xr-x  2 root  admin   68 25 Oct 23:54 DEBIAN
drwxr-xr-x  4 root  admin  136 25 Oct 23:54 sw
drwxr-xr-x  6 root  admin  204 25 Oct 23:54 sw_current

Both contain parts of the installation which then breaks on moving things to splitoffs.

But there should not be any sw_current here, of course. All install targets should only know about sw. The configure script must do some path finding by itself when it makes the Makefiles. Here are some lines from qmake/Makefile and from src/Makefile:

From qmake/Makefile:
install: qmake
[ -d $(INSTALL_ROOT)/sw/bin ] || mkdir -p $(INSTALL_ROOT)/sw/bin
-cp -RL -f /sw_current/src/qt3-3.3.3-25/qt-x11-free-3.3.3/bin/qmake $(INSTALL_ROOT)/sw/bin
[ -d $(INSTALL_ROOT)/sw/share/qt3 ] || mkdir -p $(INSTALL_ROOT)/sw/share/qt3
-cp -R -P -f /sw_current/src/qt3-3.3.3-25/qt-x11-free-3.3.3/mkspecs $(INSTALL_ROOT)/sw/share/qt3

This is OK, because the cp source can be called by its actual name, probably obtained by some `pwd` somewhere.

From src/Makefile:
install_target: all @$(CHK_DIR_EXISTS) "$(INSTALL_ROOT)/sw_current/lib/" || $(MKDIR) "$(INSTALL_ROOT)/sw_current/lib/" -$(INSTALL_FILE) "../lib/libqt-mt.prl" "$(INSTALL_ROOT)/sw_current/lib/libqt-mt.prl" -$(INSTALL_FILE) "../lib/libqt-mt.la" "$(INSTALL_ROOT)/sw_current/lib/libqt-mt.la" @$(CHK_DIR_EXISTS) "$(INSTALL_ROOT)/sw_current/lib/pkgconfig/" || $(MKDIR) "$(INSTALL_ROOT)/sw_current/lib/pkgconfig/" -$(INSTALL_FILE) "../lib/qt-mt.pc" "$(INSTALL_ROOT)/sw_current/lib/pkgconfig/qt-mt.pc" -$(INSTALL_FILE) "../lib/$(TARGET)" "$(INSTALL_ROOT)/sw_current/lib/$(TARGET)" -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/sw_current/lib/$(TARGET0)"
-$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/sw_current/lib/$(TARGET1)" -$(SYMLINK) "$(TARGET)" "$(INSTALL_ROOT)/sw_current/lib/$(TARGET2)"

This is not OK, because here the cp target contains sw_current which it should not, it should use %p which evaluates to sw.

I can comfirm this strange behaviour, have my /sw symlinked and now qt stops making while installing at the end, the build-dir looking like this (same as above):

# ls -l /sw/src/root-qt3-3.3.3-25
total 0
drwxr-xr-x  2 root  wheel   68 26 Oct 11:11 DEBIAN/
drwxr-xr-x  3 root  wheel  102 26 Oct 11:11 Volumes/
drwxr-xr-x  4 root  wheel  136 26 Oct 11:11 sw/

Andreas

Attachment: signature.asc
Description: OpenPGP digital signature



Reply via email to