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
signature.asc
Description: OpenPGP digital signature