[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
different flags for static and shared
From: |
David Byron |
Subject: |
different flags for static and shared |
Date: |
Mon, 29 Jun 2009 15:22:52 -0700 |
Sorry if this is a FAQ. I'm building a library using the pr-msvc-support
branch of libtool so I'm using native MSVC tools. When building a shared
lib I'm doing one of the methods prescribed here:
http://www.gnu.org/software/gnulib/manual/html_node/Exported-Symbols-of-Shar
ed-Libraries.html
Specifically:
#if BUILDING_LIBFOO && HAVE_VISIBILITY
#define LIBFOO_DLL_EXPORTED __attribute__((__visibility__("default")))
#elif BUILDING_LIBFOO && defined _MSC_VER
#define LIBFOO_DLL_EXPORTED __declspec(dllexport)
#elif defined _MSC_VER
#define LIBFOO_DLL_EXPORTED __declspec(dllimport)
#else
#define LIBFOO_DLL_EXPORTED
#endif
Trouble is, this doesn't handle the case where I'm building a static lib
using MS tools. In that case I (think I) want the macro to be empty.
I'm fine to jimmy around the preprocessor logic to use an addition symbol
like LIBFOO_STATIC to have it end up that way, but I don't see a way to
define LIBFOO_STATIC only when compiling the static lib.
In the case where a build directory is configured for static only (e.g.
invoked with --disable-shared) I can add -DLIBFOO_STATIC to one of the
CPPFLAGS variables, but if a build directory is configured for both, I don't
see how to define LIBFOO_STATIC only in the static case.
Am I going about this the right way?
Thanks for your help.
-DB
$ libtool --version
libtool (GNU libtool 1.3107 2009-03-20) 2.2.7a
Written by Gordon Matzigkeit <address@hidden>, 1996
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- different flags for static and shared,
David Byron <=