Re: [K3d-development] problems rebuilding on solaris
Brought to you by:
barche
From: Timothy M. S. <ts...@k-...> - 2004-02-28 17:13:27
|
Riccardo wrote: > I checked CVS again on solaris, set optimization flags and redid a > bootstrap and configure. > I did not make clean since compilation of the whole k3d is slow. I only > issued "make" and I get: You may want to look into installing ccache, see http://ccache.samba.org. Using it eliminates needless re-compiles. With ccache in place, I can do "make clean; make" on my top-level K-3D directory, and the entire thing rebuilds in about a minute. > rm -fr .libs/libk3dsdk.la .libs/libk3dsdk.lai .libs/libk3dsdk.lax > .libs/libk3dsdk.so .libs/libk3dsdk.so.0 .libs/libk3dsdk.so.0.0.0 > .libs/libk3dsdk.so.0.0.0T > rm: Unable to remove directory .libs/libk3dsdk.lax/libfilesystempp.a: > Permission denied > rm: Unable to remove directory .libs/libk3dsdk.lax: File exists > rm -fr .libs/libk3dsdk.lax > I wonder why this is happening? I always build as user and then install > using sudo. > Could it be possible that when issuing "sudo make install" further files > are created or modified after issuing only "make" that prevent a new > build as a normal user? > > I could try issuing make as superuser using sudo, but I wanted to report > this problem. We are building shared libraries here (lots of them) and surprising as it may seem, shared libraries differ radically from platform-to-platform in terms of how they are deployed (the differences between shared libraries on GNU/Linux and DLLs on Windoze are actually just the tip of the iceberg). That's libtool's reason for being - to abstract away differences between building libraries on different platforms. I don't know anything about the special requirements of shared libraries on Solaris, so I don't know where these .lax directories are coming from or what they're for, but this is not unexpected behavior in the main. A couple of solutions come to mind: * Use ccache, and do a "make clean" as superuser before you build. * Use "make DESTDIR=<staging area> install" to install K-3D to a staging area where your normal user account has write access. That will allow the installation process to do its thing and create the .lax stuff, but as a normal user. Then, as superuser do a straight cp to move everything from the staging area to its real destination. Cheers, Tim |