summaryrefslogtreecommitdiff
path: root/win32/EXTERN.h
diff options
context:
space:
mode:
Diffstat (limited to 'win32/EXTERN.h')
-rw-r--r--win32/EXTERN.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/win32/EXTERN.h b/win32/EXTERN.h
new file mode 100644
index 0000000000..f9dc77c89b
--- /dev/null
+++ b/win32/EXTERN.h
@@ -0,0 +1,47 @@
+/* EXTERN.h
+ *
+ * Copyright (c) 1991-1994, Larry Wall
+ *
+ * You may distribute under the terms of either the GNU General Public
+ * License or the Artistic License, as specified in the README file.
+ *
+ */
+
+/*
+ * EXT designates a global var which is defined in perl.h
+ * dEXT designates a global var which is defined in another
+ * file, so we can't count on finding it in perl.h
+ * (this practice should be avoided).
+ */
+#undef EXT
+#undef dEXT
+#undef EXTCONST
+#undef dEXTCONST
+#if defined(VMS) && !defined(__GNUC__)
+# define EXT globalref
+# define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare
+# define EXTCONST globalref
+# define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
+#elif defined(_MSC_VER) && defined(_WIN32)
+# ifdef PERLDLL
+# define EXT __declspec(dllexport)
+# define dEXT
+# define EXTCONST __declspec(dllexport) const
+# define dEXTCONST const
+# else
+# define EXT __declspec(dllimport)
+# define dEXT
+# define EXTCONST __declspec(dllimport) const
+# define dEXTCONST const
+# endif
+#else
+# define EXT extern
+# define dEXT
+# define EXTCONST extern const
+# define dEXTCONST const
+#endif
+
+#undef INIT
+#define INIT(x)
+
+#undef DOINIT