On Fri, 12 Oct 2001 lawson_whitney@juno.com wrote:
On Fri, 12 Oct 2001, Francois Gouget wrote:
Hmm, I never really tested "make install". It's something that was in the original makefile I started from and that I mostly kept around.
How are Winelib programs meant to be installed, then? Am I missing something obvious?
I don't have Wine installed on my system. I just have Wine CVS source trees here and there. So when I compile a foo Winelib application I get a symbolic link to: /home/fgouget/wine/wine. I think it would be wrong to 'install' this foo application in /usr/local/bin and have it be a symlink to '/home/fgouget/wine/wine'! This is why install copies foo so that what you get is a copy of the wine executable.
OTOH it could be argued that since if Wine is not installed on the system, then it is impossible to install a Winelib application: the Wine libraries and dlls would all be missing anyway. Conversely, if you do have Wine installed on the system, then you should compile your Winelib application against that Wine and then installing the Winelib application as a symlink to '/usr/local/bin/wine' may not be so bad.
I believe that Alexandre's position is that Winelib applications should not be symlinks but scripts that call wine. This would have the nice effect of fixing all these issues. It would also create an opportunity to set PATH, LD_LIBRARY_PATH, WINEPREFIX and whatever other environment variable may need to be set/overriden.
Now, on to the more specific bugs that you have found.
Should work though. Make sure that it is not copying the symbolic links but creates real files in the $prefix/bin directory...
for i in ; do (cd $i; make install) || exit 1; done /bin/sh: -c: line 1: syntax error near unexpected token `;' /bin/sh: -c: line 1: `for i in ; do (cd $i; make install) || exit 1; done' make: *** [install] Error 2
This could also affect all other for loops. I have a solution for this.
install:: for i in $(SUBDIRS); do (cd $$i; $(MAKE) install) || exit 1; done for i in $(EXES); do $(INSTALL_PROGRAM) $$i $(bindir); done for i in $(EXES:%=%.so) $(DLLS); do $(INSTALL_PROGRAM) $$i $(libdir); done
[...]
wine executable in the name of each executable, and we install the .so file in libdir. AFAICT, wine will be looking for it in bindir. I
That was a mistake.
Ok, I am sending a patch to wine-patches fixing all this.
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ Nouvelle version : les anciens bogues ont été remplacés par de nouveaux.