mirror of
https://github.com/reactos/reactos.git
synced 2025-04-21 12:40:33 +00:00
Reapply some Win32 specific magic to properly build a Windows DLL of libjpeg. (Samuel Serapion)
svn path=/trunk/; revision=48038
This commit is contained in:
parent
89324d2493
commit
f4769202d7
2 changed files with 121 additions and 2 deletions
|
@ -191,14 +191,63 @@ typedef unsigned int JDIMENSION;
|
||||||
* or code profilers that require it.
|
* or code profilers that require it.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
# if defined(ALL_STATIC)
|
||||||
|
# if defined(JPEG_DLL)
|
||||||
|
# undef JPEG_DLL
|
||||||
|
# endif
|
||||||
|
# if !defined(JPEG_STATIC)
|
||||||
|
# define JPEG_STATIC
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# if defined(JPEG_DLL)
|
||||||
|
# if defined(JPEG_STATIC)
|
||||||
|
# undef JPEG_STATIC
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# if defined(JPEG_DLL)
|
||||||
|
/* building a DLL */
|
||||||
|
# define JPEG_IMPEXP __declspec(dllexport)
|
||||||
|
# elif defined(JPEG_STATIC)
|
||||||
|
/* building or linking to a static library */
|
||||||
|
# define JPEG_IMPEXP
|
||||||
|
# else
|
||||||
|
/* linking to the DLL */
|
||||||
|
# define JPEG_IMPEXP __declspec(dllimport)
|
||||||
|
# endif
|
||||||
|
# if !defined(JPEG_API)
|
||||||
|
# define JPEG_API __cdecl
|
||||||
|
# endif
|
||||||
|
/* The only remaining magic that is necessary for cygwin */
|
||||||
|
#elif defined(__CYGWIN__)
|
||||||
|
# if !defined(JPEG_IMPEXP)
|
||||||
|
# define JPEG_IMPEXP
|
||||||
|
# endif
|
||||||
|
# if !defined(JPEG_API)
|
||||||
|
# define JPEG_API __cdecl
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Ensure our magic doesn't hurt other platforms */
|
||||||
|
#if !defined(JPEG_IMPEXP)
|
||||||
|
# define JPEG_IMPEXP
|
||||||
|
#endif
|
||||||
|
#if !defined(JPEG_API)
|
||||||
|
# define JPEG_API
|
||||||
|
#endif
|
||||||
|
|
||||||
/* a function called through method pointers: */
|
/* a function called through method pointers: */
|
||||||
#define METHODDEF(type) static type
|
#define METHODDEF(type) static type
|
||||||
/* a function used only in its module: */
|
/* a function used only in its module: */
|
||||||
#define LOCAL(type) static type
|
#define LOCAL(type) static type
|
||||||
/* a function referenced thru EXTERNs: */
|
/* a function referenced thru EXTERNs: */
|
||||||
#define GLOBAL(type) type
|
#define GLOBAL(type) type JPEG_API
|
||||||
/* a reference to a GLOBAL function: */
|
/* a reference to a GLOBAL function: */
|
||||||
#define EXTERN(type) extern type
|
#ifndef EXTERN
|
||||||
|
# define EXTERN(type) extern JPEG_IMPEXP type JPEG_API
|
||||||
|
/* a reference to a "GLOBAL" function exported by sourcefiles of utility progs */
|
||||||
|
#endif /* EXTERN */
|
||||||
|
#define EXTERN_1(type) extern type JPEG_API
|
||||||
|
|
||||||
|
|
||||||
/* This macro is used to declare a "method", that is, a function pointer.
|
/* This macro is used to declare a "method", that is, a function pointer.
|
||||||
|
|
70
reactos/include/reactos/libs/libjpeg/rosdiff.patch
Normal file
70
reactos/include/reactos/libs/libjpeg/rosdiff.patch
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
Index: libs/libjpeg/jmorecfg.h
|
||||||
|
===================================================================
|
||||||
|
--- libs/libjpeg/jmorecfg.h (revision 48026)
|
||||||
|
+++ libs/libjpeg/jmorecfg.h (working copy)
|
||||||
|
@@ -191,14 +191,63 @@
|
||||||
|
* or code profilers that require it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
+#ifdef _WIN32
|
||||||
|
+# if defined(ALL_STATIC)
|
||||||
|
+# if defined(JPEG_DLL)
|
||||||
|
+# undef JPEG_DLL
|
||||||
|
+# endif
|
||||||
|
+# if !defined(JPEG_STATIC)
|
||||||
|
+# define JPEG_STATIC
|
||||||
|
+# endif
|
||||||
|
+# endif
|
||||||
|
+# if defined(JPEG_DLL)
|
||||||
|
+# if defined(JPEG_STATIC)
|
||||||
|
+# undef JPEG_STATIC
|
||||||
|
+# endif
|
||||||
|
+# endif
|
||||||
|
+# if defined(JPEG_DLL)
|
||||||
|
+/* building a DLL */
|
||||||
|
+# define JPEG_IMPEXP __declspec(dllexport)
|
||||||
|
+# elif defined(JPEG_STATIC)
|
||||||
|
+/* building or linking to a static library */
|
||||||
|
+# define JPEG_IMPEXP
|
||||||
|
+# else
|
||||||
|
+/* linking to the DLL */
|
||||||
|
+# define JPEG_IMPEXP __declspec(dllimport)
|
||||||
|
+# endif
|
||||||
|
+# if !defined(JPEG_API)
|
||||||
|
+# define JPEG_API __cdecl
|
||||||
|
+# endif
|
||||||
|
+/* The only remaining magic that is necessary for cygwin */
|
||||||
|
+#elif defined(__CYGWIN__)
|
||||||
|
+# if !defined(JPEG_IMPEXP)
|
||||||
|
+# define JPEG_IMPEXP
|
||||||
|
+# endif
|
||||||
|
+# if !defined(JPEG_API)
|
||||||
|
+# define JPEG_API __cdecl
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+/* Ensure our magic doesn't hurt other platforms */
|
||||||
|
+#if !defined(JPEG_IMPEXP)
|
||||||
|
+# define JPEG_IMPEXP
|
||||||
|
+#endif
|
||||||
|
+#if !defined(JPEG_API)
|
||||||
|
+# define JPEG_API
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* a function called through method pointers: */
|
||||||
|
#define METHODDEF(type) static type
|
||||||
|
/* a function used only in its module: */
|
||||||
|
#define LOCAL(type) static type
|
||||||
|
/* a function referenced thru EXTERNs: */
|
||||||
|
-#define GLOBAL(type) type
|
||||||
|
+#define GLOBAL(type) type JPEG_API
|
||||||
|
/* a reference to a GLOBAL function: */
|
||||||
|
-#define EXTERN(type) extern type
|
||||||
|
+#ifndef EXTERN
|
||||||
|
+# define EXTERN(type) extern JPEG_IMPEXP type JPEG_API
|
||||||
|
+/* a reference to a "GLOBAL" function exported by sourcefiles of utility progs */
|
||||||
|
+#endif /* EXTERN */
|
||||||
|
+#define EXTERN_1(type) extern type JPEG_API
|
||||||
|
|
||||||
|
|
||||||
|
/* This macro is used to declare a "method", that is, a function pointer.
|
Loading…
Reference in a new issue