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?
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 should not be hard to fix, I think:
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
Just leave out the first line if there are no SUBDIRS, no? And the same for uninstall. Now, however, make has made a symbolic link to /usr/local/bin/wine for each of EXES, which seems right, so they can be run from where they were built, so the next line makes a copy of the 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 thought perhaps I had misled winemaker into thinking it was making a dll, but I did tell it quite clearly --console:
winemaker --nosource-fix --console --nogenerated-specs --single-target toj2 wlp
Also, you will need a proper 'install' program. In full-fledged autoconf setups they have an install-sh script because they don't trust the system tool. I felt it was not worth the overhead in winemaker as the install procedure is very likely to need customization anyway.
True. As long as ./configure works, it is not to onerous to fix a few lines of Makefile.in. Indeed, that is how I installed the version of toj2 I am sending this with. I think, though, the subdirs line could be conditional, and maybe libdir for bindir is a mistake. I don't want to make things more difficult for those who are doing truly hairy and difficult tasks with winemaker just to make everything perfectly smooth for my little app. I can't think of a case where you would want to install EXES into bindir, either, instead of somethng like:
install:: for i in $(EXES); do cd $(bindir) && $(RM) -f $$i && $(LN_S) wine $$i; done for i in $(EXES:%=%.so) $(DLLS); do $(INSTALL_PROGRAM) $$i $(bindir); done
Well, let me know what you find.
Winemaker is a terrific help, and thank you for it.
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ $live{free} || die "";
Lawson
panic: detected rogue system administrator!! ---cut here