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