A quick followup thought: if we add --libdir='${prefix}/%lib' to the % c defaults, then we should introduce a NoSetLibdir command to disable that when necessary.
-- Dave On Nov 18, 2006, at 8:43 AM, David R. Morrison wrote: > Dear fink developers, > > I solicit your comments on the proposals below to (1) change the > storage location for 64bit libraries and formalize this into > policy, and (2) add a new percent expansion to fink, one whose > value would be dependent on some other things. > > The issue is the correct storage location for 64bit libraries. > We've known for some time that 64bit libraries and 64bit > executables are not compatible with 32bit ones, and a decision was > reached last spring to store 64bit libraries in /sw/lib64 > (analogous to some linux distributions). However, it has since > been pointed out by Peter O'Gorman that gcc makes some assumptions > about where 64bit libraries are being stored: either /sw/lib/ppc64 > for powerpc hardware, or /sw/lib/x86_64 for intel hardware. > > Proposal #1 is that we use these storage locations for our 64bit > libraries, and make that fink policy. (There are only two packages > which have adopted the old scheme -- gmp-64bit and openmcl-64bit -- > and we would need to break binary compatibility for these by moving > their shared libs in a upgrade. However, nothing depends on them, > and they are only present in unstable.) > > To make packaging easier on multiple architectures, and in > particular to make it easier to use the fink "variants" idea to > package 64bit libraries and 32bit libraries in the same > architecture, Proposal #2 is to introduce a new percent expansion % > lib which would behave as follows: > 1) If the package does not have Type -64bit, then %lib expands to > lib. > 2) If the package does have Type -64bit, then the expansion of % > lib depends on the architecture: it either expands to lib/ppc64 for > powerpc, or lib/x86_64 for i386. > 3) Possibly, the default value for LDFLAGS should become -L%p/%lib > instead of -L%p/lib. > 4) Possibly, the default contents of %c should be expanded from "-- > prefix=%p" to "--prefix=%p --libdir='${prefix}/%lib' ". > > So, a typical packaging which used this could include the following > lines (explanation afterwards): > > Package: gmp%type_pkg[-64bit] > Type: -64bit (binary) > Depends: (%type_raw[-64bit] = -64bit) 64bit-cpu > NoSetLDFLAGS: true > SetLDFLAGS: -L%p/%lib > ConfigureParams: --libdir='${prefix}/%lib' > SplitOff: << > Package: %N-shlibs > Files: %lib/libgmp.*.dylib > Shlibs: << > %p/%lib/libgmp.3.dylib 8.0.0 %n (>= 4.2.1-1) > << > << > > This fragment of an .info file would be used to build both the gmp > and gmp-64bit packages; would build splitoffs for each; the 64bit > variant depends on the 64bit-cpu virtual package as it should; the > LDFLAGS is reset to the correct location (unless we make that part > of the default); the configure script is fed the correct library > directory (unless we make that part of the default); the shared > library files are correctly moved into the -shlibs splitoff, and > they are correctly documented in the Shlibs field. > > Comments? > > -- Dave > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Fink-devel mailing list Fink-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-devel