On Sun, Apr 25, 2010 at 04:56:48PM +0200, Martin Costabel wrote: > Jack Howarth wrote: >> On Sun, Apr 25, 2010 at 09:46:51AM +0200, Martin Costabel wrote: >>> Jack Howarth wrote: >>> [] >>>> What I am considering is to add a gcc4X-bin >>>> split-off to all of the gcc4X packages which >>>> will contain all of the %/bin symlinks currently >>>> provided by the main gcc4X package. >>> Why do we neeed *any* of these executables directly in %p/bin? >>> They could as well live in some subdirectory of %p/lib, and if you >>> want to use them, you modify PATH correspondingly. >> >> Ease of use? Users already have to adapt to the using >> a different compiler name in some cases and now they >> have to invoke a new path as well? > > In many cases, you don't even have to change PATH. Just use the full > name of the executable. > > No sane person will remember for longer than 24 hours that 'gcc-4' is > Fink's gcc version 4.2.4 if gcc42 is installed or version 4.4.2 if gcc44 > is installed, whereas 'gcc-4.2' is Apple's gcc version 4.2.1 and > 'gcc-4.0' is Apple's gcc version 4.0.1, even if it is invoked as > '/sw/bin/gcc-4.0'. > > So in any case you will have to look it up before using it either > manually or in a script or package. And I would claim that when you need > to look it up anyway before using it, it is only marginally more > complicated to use '%p/lib/gcc-4.4/bin/gcc' than 'gcc-4'. > > -- > Martin >
Martin, This is getting close to rational... --- gcc46-x86_64.info.current 2010-04-24 19:50:20.000000000 -0400 +++ gcc46-x86_64.info 2010-04-25 12:13:45.000000000 -0400 @@ -13,14 +13,14 @@ Architecture: x86_64 NoSetCPPFLAGS: True NoSetLDFLAGS: True -Conflicts: gcc4, gcc42, gcc43, gcc44, gcc45 -Replaces: gcc4, gcc42, gcc43, gcc44, gcc45 +Conflicts: gcc42, gcc43, gcc44, gcc45 +Replaces: gcc42, gcc43, gcc44, gcc45 Depends: gmp-shlibs (>= 4.3.1-1000), libgmpxx-shlibs (>= 4.3.1-1000), libmpfr1-shlibs (>= 2.4.1-1), %N-shlibs (>= %v-%r), libiconv, libgettext8-shlibs, ppl-shlibs (>= 0.10.2-1), cloog-shlibs (>= 0.15.9-1), libmpc2-shlibs (>= 0.8-1), xcode (>= 3.1.2) BuildDepends: gmp (>= 4.3.1-1000), libmpfr1 (>= 2.4.1-1), libiconv-dev, gettext-tools, libgettext8-dev, ppl (>= 0.10.2-1), cloog (>= 0.15.9-1), libmpc2 (>= 0.8-1), xcode (>= 3.1.2), fink (>= 0.27.2) ConfigureParams: << --prefix=%p/lib/gcc4.6 --mandir=%p/share/man --infodir=%p/share/info --enable-languages=c,c++,fortran,objc,obj-c++,java \ --with-gmp=%p --with-libiconv-prefix=%p --with-ppl=%p --with-cloog=%p --with-mpc=%p --with-system-zlib \ - --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib + --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --program-suffix=-fsf-4.6 << CompileScript: << #!/bin/bash -ev @@ -44,30 +44,37 @@ cd ../darwin_objdir make install DESTDIR=%d mkdir -p %i/bin - ln -s %p/lib/gcc4.6/bin/gfortran %i/bin/gfortran - ln -s %p/lib/gcc4.6/bin/gcc %i/bin/gcc-4 - ln -s %p/lib/gcc4.6/bin/g++ %i/bin/g++-4 - ln -s %p/lib/gcc4.6/bin/c++ %i/bin/c++-4 - ln -s %p/lib/gcc4.6/bin/cpp %i/bin/cpp-4 - ln -s %p/lib/gcc4.6/bin/gcov %i/bin/gcov-4 - ln -s %p/lib/gcc4.6/bin/gcj %i/bin/gcj - ln -s %p/lib/gcc4.6/bin/gcj-dbtool %i/bin/gcj-dbtool - ln -s %p/lib/gcc4.6/bin/gcjh %i/bin/gcjh - ln -s %p/lib/gcc4.6/bin/gij %i/bin/gij - ln -s %p/lib/gcc4.6/bin/gjnih %i/bin/gjnih - ln -s %p/lib/gcc4.6/bin/grmiregistry %i/bin/grmiregistry - ln -s %p/lib/gcc4.6/bin/grmic %i/bin/grmic - ln -s %p/lib/gcc4.6/bin/jcf-dump %i/bin/jcf-dump - ln -s %p/lib/gcc4.6/bin/jv-convert %i/bin/jv-convert - ln -s %p/lib/gcc4.6/bin/jv-scan %i/bin/jv-scan - mv %i/share/info/cpp.info %i/share/info/cpp-4.info - mv %i/share/info/gcc.info %i/share/info/gcc-4.info - mv %i/share/man/man1/cpp.1 %i/share/man/man1/cpp-4.1 - mv %i/share/man/man1/g++.1 %i/share/man/man1/g++-4.1 - mv %i/share/man/man1/gcc.1 %i/share/man/man1/gcc-4.1 - mv %i/share/man/man1/gcov.1 %i/share/man/man1/gcov-4.1 + + binfiles="gcc g++ c++ cpp gcov" + for binfile in $binfiles ; do + ln -s %p/lib/gcc4.6/bin/$binfile-fsf-4.6 %i/lib/gcc4.6/bin/$binfile-4 + ln -s %p/lib/gcc4.6/bin/$binfile-fsf-4.6 %i/bin/$binfile-4 + done + + binfiles="gfortran gcj gcj-dbtool gcjh gij gjnih grmiregistry grmic jcf-dump jv-convert jv-scan" + for binfile in $binfiles ; do + ln -s %p/lib/gcc4.6/bin/$binfile-fsf-4.6 %i/lib/gcc4.6/bin/$binfile + ln -s %p/lib/gcc4.6/bin/$binfile-fsf-4.6 %i/bin/$binfile + done + + man1files="aot-compile cpp-4 g++-4 gappletviewer gc-analyze gcc-4 gcj-dbtool gcj gcjh gcov-4 gfortran gij gjar gjarsigner gjavah gjdoc gkeytool gnative2ascii gorbd grmic grmid grmiregistry gserialver gtnameserv jcf-dump jv-convert rebuild-gcj-db" + for man1file in $man1files ; do + mv %i/lib/gcc4.6/share/man/man1/$man1file.1 %i/lib/gcc4.6/share/man/man1/$man1file-fsf-4.6.1 + done + + man7files="fsf-funding gfdl gpl" + for man7file in $man7files ; do + mv %i/lib/gcc4.6/share/man/man1/$man7file.7 %i/lib/gcc4.6/share/man/man1/$man7file-fsf-4.6.7 + done + + infofiles="cpp cppinternals gcc gccinstall gccint gcj gfortran" + for infofile in $infofiles ; do + mv %i/share/info/$infofile.info %i/share/info/$infofile-fsf-4.6.info + done + # Surrender ffi related man pages to libffi package. rm %i/share/man/man3/ffi.3 %i/share/man/man3/ffi_call.3 %i/share/man/man3/ffi_prep_cif.3 + cp %b/gcc/config/darwin-sections.def %i/lib/gcc4.6/lib/gcc/%m-apple-darwin${darwinvers}/4.6.0/plugin/include/config # remove build path from .la files perl -pi -e "s, \-L[^ ']*/%n-%v-%r/darwin_objdir/[^ ']*,,g" `find %i/lib/gcc4.6/lib -name '*.la'` @@ -127,9 +134,33 @@ %p/lib/gcc4.6/lib/i386/gcj-4.6.0-12/libjvm.dylib 0.0.0 %n (>= 4.1-1) 32 << << +SplitOff2: << + Package: %N-bin + Conflicts: gcc42 (<= 4.2.4-1002), gcc43 (<= 4.3.4-1000), gcc44 (<= 4.4.2-1000), gcc45 (<= 4.5.0-1000), gcc42-bin (>> 4.2.4-1002), gcc43-bin (>> 4.3.4-1000), gcc44-bin (>> 4.4.2-1000), gcc45-bin (>> 4.5.0-1000) + Replaces: gcc42 (<= 4.2.4-1002), gcc43 (<= 4.3.4-1000), gcc44 (<= 4.4.2-1000), gcc45 (<= 4.5.0-1000), gcc42-bin (>> 4.2.4-1002), gcc43-bin (>> 4.3.4-1000), gcc44-bin (>> 4.4.2-1000), gcc45-bin (>> 4.5.0-1000) + Depends: %N (= %v-%r), %N-shlibs (= %v-%r) + Files: << + bin/gcc-4 + bin/g++-4 + bin/c++-4 + bin/cpp-4 + bin/gcov-4 + bin/gfortran + bin/gcj + bin/gcj-dbtool + bin/gcjh + bin/gij + bin/gjnih + bin/grmiregistry + bin/grmic + bin/jcf-dump + bin/jv-convert + bin/jv-scan + << +<< License: GPL Description: GNU Compiler Collection Version 4.6 -InfoDocs: cpp-4.info cppinternals.info gcc-4.info gccinstall.info gccint.info gcj.info gfortran.info +InfoDocs: cpp-fsf-4.6.info cppinternals-fsf-4.6.info gcc-fsf-4.6.info gccinstall-fsf-4.6.info gccint-fsf-4.6.info gcj-fsf-4.6.info gfortran-fsf-4.6.info DescDetail: << GCC, the GNU Compiler Collection, includes front ends for C, C++, Objective-C, Objective-C++, Fortran, Java, and Ada. The gcc4X programs are all generated with a -fsf-4.X suffix and the previous filenames are generated with symlinks. Those overlapping filenames (between gcc4X packages) are stored in gcc4X-bin and the info/man pages are all accessed via the -fsf-4.X suffixed names. How does that look? Jack ------------------------------------------------------------------------------ _______________________________________________ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel Subscription management: https://lists.sourceforge.net/lists/listinfo/fink-devel