aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/liblzma/api/lzma.h31
-rw-r--r--src/liblzma/common/common.h2
2 files changed, 25 insertions, 8 deletions
diff --git a/src/liblzma/api/lzma.h b/src/liblzma/api/lzma.h
index c03a19de..7cab3909 100644
--- a/src/liblzma/api/lzma.h
+++ b/src/liblzma/api/lzma.h
@@ -155,14 +155,31 @@
/*
* Some systems require (or at least recommend) that the functions and
- * function pointers are declared specially in the headers.
+ * function pointers are declared specially in the headers. LZMA_API_IMPORT
+ * is for importing symbols and LZMA_API_CALL is to specify calling
+ * convention.
+ *
+ * By default it is assumed that the application will link dynamically
+ * against liblzma. #define LZMA_API_STATIC in your application if you
+ * want to link against static liblzma. If you don't care about portability
+ * to operating systems like Windows, or at least don't care about linking
+ * against static liblzma on them, don't worry about LZMA_API_STATIC. That
+ * is, most developers will never need to use LZMA_API_STATIC.
*/
-#ifdef _WIN32
-# define LZMA_API_IMPORT __declspec(dllimport)
-# define LZMA_API_CALL __cdecl
-#else
-# define LZMA_API_IMPORT
-# define LZMA_API_CALL
+#ifndef LZMA_API_IMPORT
+# if !defined(LZMA_API_STATIC) && defined(_WIN32)
+# define LZMA_API_IMPORT __declspec(dllimport)
+# else
+# define LZMA_API_IMPORT
+# endif
+#endif
+
+#ifndef LZMA_API_CALL
+# ifdef _WIN32
+# define LZMA_API_CALL __cdecl
+# else
+# define LZMA_API_CALL
+# endif
#endif
#ifndef LZMA_API
diff --git a/src/liblzma/common/common.h b/src/liblzma/common/common.h
index cbb2eb9b..5a5fe775 100644
--- a/src/liblzma/common/common.h
+++ b/src/liblzma/common/common.h
@@ -24,7 +24,7 @@
#include "../../common/mythread.h"
#include "../../common/integer.h"
-#if defined(_WIN32)
+#if !defined(LZMA_API_STATIC) && defined(_WIN32)
# define LZMA_API_EXPORT __declspec(dllexport)
// Don't use ifdef or defined() below.
#elif HAVE_VISIBILITY