On Thu, 13 May 2004 17:23:18 -0700, Jeff Clites wrote:
>> xxx_STATIC_BUILD cflags and ldflags to build static parrot
> We should make it clear that we are talking about building a static lib
> (to distinguish from what the next macro is intended for)--so how
> about:
> xxx_STATIC_LIB_BUILD or xxx_LIB_STATIC_BUILD
> (I'm worried that xxx_STATIC_BUILD by itself isn't clear.)
xxx_LIB_STATIC_BUILD is fine with me.
>> xxx_STATIC_USE cflags and ldflags to use static parrot
> How about: xxx_STATIC_LINK
I was more thinking along the line of "building the library" (..._BUILD)
and "using the library" (..._USE).
>> PARROT_STATIC_NAME full, platform dependent name of static parrot lib
> How about: LIBPARROT_STATIC
Agreed.
>> - When building / using a shared parrot the compiler macro
>> PARROT_LIB_DYNAMIC will be defined, for static PARROT_LIB_STATIC
>
> What will these be used for? Traditionally, there aren't compile-time
> difference when building a static v. dynamic library, I believe. Maybe
> this is not the case for Windows?
Dan has already read my thoughts on that, and posted them.
>> - When building parrot the compiler macro PARROT_LIB_EXPORTS will be
>> defined, when using parrot PARROT_LIB_IMPORTS
> Again, for what use?
> I'm not against these last 2 sets of macros--just wondering what the
> intended use is.
It's used to let the compiler know that the mentioned symbols are
exported/imported. The two macros will probably only be used to get the
PARROT_API macro, for those platforms that use it, right. Eg, Microsoft
uses "__declspec(dllimport) void someFunction()" to let the compiler know
that someFunction should be imported from a DLL. Maybe other compilers
have a similar kludge.
So, here's the new complete list of things. Hope you like it.
Makefile
CFLAGS_COMMON common compiler flags
LDFLAGS_COMMON common linker flags
CFLAGS_LIB_STATIC_BUILD cflags to build static parrot
LDFLAGS_LIB_STATIC_BUILD lflags to build static parrot
CFLAGS_LIB_STATIC_USE cflags to use static parrot
LDFLAGS_LIB_STATIC_USE lflags to use static parrot
LIBPARROT_STATIC full, platform dependent name of static parrot
lib
CFLAGS_LIB_DYNAMIC_BUILD cflags to build dynamic parrot
LDFLAGS_LIB_DYNAMIC_BUILD lflags to build dynamic parrot
CFLAGS_LIB_DYNAMIC_USE cflags to use dynamic parrot
LDFLAGS_LIB_DYNAMIC_USE lflags to use dynamic parrot
LIBPARROT_DYNAMIC full, platform dependent name of dynamic parrot
lib
C
PARROT_LIB_STATIC compiling for static parrot
PARROT_LIB_DYNAMIC compiling for dynamic parrot
PARROT_LIB_EXPORTS export parrot symbols (compiling parrot lib)
PARROT_LIB_IMPORT import parrot symbols (using parrot lib)
PARROT_API declare as API
Ron