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

Reply via email to