At 12:51 22/12/2005 +0000, you wrote:
Guys,

I'd like to revive this patch which I posted a while back, but has needed bringing up to date due to subsequent changes.

It has a few key intentions:

 * Makes libparrot.so a 'first class citizen'
* Allows the installed version of parrot and its utilities to be either shared or static * The decision to build libparrot.[a/so] is a configure step which can be overridden by hints and --ask (should a command-line option work? I couldn't make this work)

Some comments:

* Although a Configuration step, the type of build can be altered manually by changing the LIBPARROT target in the Makefile. * I use rpath for the devel targets to find the shared library; not sure how portable this is (we can have a configure test for this, and if it isn't supported, suggest that they set LD_LIBRARY_PATH manually) * Some make targets have been changed, added or removed; e.g. Removed: shared/static/world_shared/parrot_utils_shared. Added: installable

At the moment libparrot.so doesn't sit nicely and although some work was done to make parrot build with a shared library for the debian build, it isn't as general as it could be.

I'd initially appreciate some feedback, and particularly reports of breakage.

* I know that the debian automatic build will have broken because I am currently dropping the version number
   (I shall incorporate this, but in a more general manner)
* I have only tried this on Linux, but no Windows builds (I've changed the files, but may have overlooked important changes)

* I'm going to check 'make install' -- it needs updating to distribute the installable utilities and check that things work in both configurations.

All tests (as far as I can see) pass with shared and static on Linux.

OK with static on Win32 + gcc (MinGW).

Shared on Win32, always the same linking problem with parrot_get_config_string()
(see https://rt.perl.org/rt3/Ticket/Display.html?id=37303)

g++ -shared   -o blib\lib\libparrot.dll ...

trunk/src/global_setup.c:34: undefined reference to `parrot_get_config_string'
collect2: ld returned 1 exit status
make: *** [blib\lib\libparrot.dll]

But for me, this patch is a good first step.

François.

Cheers,

Nick


Reply via email to