Francois Gouget fgouget at
Fri Oct 12 17:44:41 CDT 2001

On Fri, 12 Oct 2001 lawson_whitney at 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

> 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 $( $(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 at
   Nouvelle version : les anciens bogues ont été remplacés par de nouveaux.

More information about the wine-devel mailing list