[gccsdk] Autobuilder library packaging

Theo Markettos theo at markettos.org.uk
Sun Nov 29 15:15:21 PST 2015

Can someone explain the difference between the three library packaging
streams?  I've been trying to work out what's happening with DeskLib, and
I'm a bit confused.

There are three archives made:

I had assumed that autobuilder_packages/.../*.zip was for publication of RISC OS
builds that are destined for PackMan installation - ie should be RISC OS
applications containing files suitable for use by a compiler on RISC OS, ie
suffix swapping (h/foo).

I'd assumed that autobuilder_libraries was for downstream consumption by the
autobuilder - ie you can untar autobuilder_libraries/*.tar in your
GCCSDK_INSTALL_ENV to allow the cross compiler to use that library.

It seems that autobuilder_libraries/*.zip are getting suffix swapped, but
autobuilder_packages/**/*.zip are not. But autobuilder_libraries/*.zip are
not being packaged, they're just collections of header and library files.
So if users install the autobuilder_packages/**/*.zip then they have files
in RISC OS called include.foo/h which GCC won't find.

I can understand the need for two library packages, but three?
just says 'Libraries: to be added'

Where is the right place to put suffix swapping so that combinations work
out?  The Desklib setvars just says:

ab_package() {

  ab_create_app DeskLib Apps/Library desklib

  rsync -av --exclude='*/.svn*' ../\!DLUser $A/..
  rsync -av --exclude='*/.svn*' ../\!DeskLib $A/..
  rsync -av --exclude='*/.svn*' ../Examples $A/../\!DeskLib

  $AB_HOME/add-riscpkg -name DeskLib -unixlib

Which looks pretty uncontroversial to me.  I haven't looked at RISC OS
packages of other libraries, but imagine they're similarly affected.

I can figure some things out from the code, but was wondering what the
philosophy was supposed to be, so I don't end up breaking other things.


More information about the gcc mailing list