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

Reply via email to