www.digitalmars.com         C & C++   DMDScript  

D.gnu - What makes a GDC package ?

What should go in a binary package for GDC ?
(seems to be some demand recently, for such)

I'll give some examples from my gdcmac builds:
+ powerpc-apple-darwin6 (Mac OS X 10.2)
- i386-apple-darwin6 (TODO)
+ powerpc-apple-darwin7 (Mac OS X 10.3)
- i386-apple-darwin7 (TODO)
+ powerpc-apple-darwin8 (Mac OS X 10.4)
- i686-apple-darwin8 (TODO)


Currently I have two versions, depending on
whether using the system compilers - or if
bundling a custom copy of GCC and G++ as well.

The bundled copy is easiest, for that I just
did a --prefix=/opt/gdc and a "make install".
(since else it would conflict with system GCC)

It's also like a factor 10 or so bigger, though...


For the "dependent" version, here's a file list:
   bin/gdc
   bin/gdmd
   include/d/3.3.6/crc32.d
? include/d/3.3.6/etc/c/recls/*.h
? include/d/3.3.6/etc/c/stlsoft/*.h
? include/d/3.3.6/etc/c/zlib/*.h
   include/d/3.3.6/etc/gamma.d
   include/d/3.3.6/gcc/*
   include/d/3.3.6/gcstats.d
   include/d/3.3.6/object.d
   include/d/3.3.6/powerpc-apple-darwin6/*
   include/d/3.3.6/std/*
   lib/gcc/powerpc-apple-darwin6/3.3.6/cc1d
? lib/gcc/powerpc-apple-darwin6/3.3.6/crt2.o
? lib/gcc/powerpc-apple-darwin6/3.3.6/libgcc.a
   lib/libgphobos.a
   lib/libgphobos.spec
   share/man/man1/gdc.1.gz
   share/man/man1/gdmd.1.gz
? share/man/man7/fsf-funding.7.gz
? share/man/man7/gfdl.7.gz
? share/man/man7/gpl.7.gz

Similar list for "powerpc-apple-darwin7",
and probably for other targets as well ?
(for example: "i386-redhat-linux", etc.)

For "powerpc-apple-darwin8", I skipped
the: crt2.o, libgcc.a and "man7" pages.
(and it uses the 4.0.1 version instead)

For their earlier compilers, Apple patched
their crt2.o and libgcc.a stuff to go into:
/usr/lib/gcc/darwin/3.3/ instead. I didn't.


Q:
Did I forget something ? Or did I include too much ?
(usually, the above list goes into: /usr directory)

Should the etc/c headers, for C, be in the package ?
(know we argued this before, ended up leaving it in)


Will remove some of the cruft from my old gdc RPM,
and post a version similar to the packages above...
Probably just the source package, though, for now.
Otherwise one needs one "gdc" RPM for every distro ?

Could always make for one for a vanilla /opt/gdc
installation, and build it with some older glibc ?
But the idea behind the packages above is that you
already *have* a GCC, and just need the GDC front-end.

(I know that Apple's versions of GCC are pretty weird,
which is another reason I want to use *their* gcc/g++)

--anders


PS. For DMD, the D import modules ended up in:
     /usr/lib/phobos instead of /usr/include/d
     (has to be set in the /etc/dmd.conf anyway)
     But that's a *good* thing, since that means
     that they won't be conflicting with eachother.
Dec 06 2005