* Proper DLL symbol exporting under Win32.
git-svn-id: svn://svn.zoy.org/elk/trunk@162 55e467fa-43c5-0310-a8a2-de718669efc6
This commit is contained in:
parent
809443fb06
commit
5f31f6ae27
35
configure.ac
35
configure.ac
|
@ -37,11 +37,18 @@ AC_SUBST(STDINT_HEADER)
|
||||||
# type of system.
|
# type of system.
|
||||||
AC_DEFINE_UNQUOTED(SYSTEMTYPE, ["${target_os}"], [Our operating system])
|
AC_DEFINE_UNQUOTED(SYSTEMTYPE, ["${target_os}"], [Our operating system])
|
||||||
|
|
||||||
|
MATH_LIBS="-lm"
|
||||||
case "${target_os}" in
|
case "${target_os}" in
|
||||||
*hpux*)
|
*hpux*)
|
||||||
AC_DEFINE(ARRAY_BROKEN, 1, [Define if a-=1000; a[1000] doesn't work])
|
AC_DEFINE(ARRAY_BROKEN, 1, [Define if a-=1000; a[1000] doesn't work])
|
||||||
;;
|
;;
|
||||||
|
*mingw32*)
|
||||||
|
ELK_CFLAGS="${ELK_CFLAGS} -DELK_BUILD_DLL"
|
||||||
|
ELK_LDFLAGS="${ELK_LDFLAGS} -no-undefined"
|
||||||
|
MATH_LIBS=""
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
ELK_LIBS="${ELK_LIBS} ${MATH_LIBS}"
|
||||||
|
|
||||||
# Does the system support the vprintf library function? If not,
|
# Does the system support the vprintf library function? If not,
|
||||||
# availability of the (non-portable) _doprnt function is assumed.
|
# availability of the (non-portable) _doprnt function is assumed.
|
||||||
|
@ -190,6 +197,13 @@ if test "${ac_cv_my_can_load_lib}" = "no"; then
|
||||||
ac_cv_my_can_load_lib=yes])
|
ac_cv_my_can_load_lib=yes])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Win32 style
|
||||||
|
if test "${ac_cv_my_can_load_lib}" = "no"; then
|
||||||
|
AC_CHECK_LIB(kernel32, main,
|
||||||
|
[ELK_LIBS="${ELK_LIBS} -lkernel32"
|
||||||
|
ac_cv_my_can_load_lib=yes])
|
||||||
|
fi
|
||||||
|
|
||||||
AC_CHECK_HEADERS(a.out.h)
|
AC_CHECK_HEADERS(a.out.h)
|
||||||
|
|
||||||
# Only test for dlopen() if the others didn't work
|
# Only test for dlopen() if the others didn't work
|
||||||
|
@ -369,7 +383,7 @@ AC_DEFINE(ANSI_CPP, 1, [FIXME HARD])
|
||||||
|
|
||||||
# The UNIX extension likes to know which of the following system calls,
|
# The UNIX extension likes to know which of the following system calls,
|
||||||
# library functions, and include files are supported by the system.
|
# library functions, and include files are supported by the system.
|
||||||
AC_CHECK_HEADERS(utime.h)
|
AC_CHECK_HEADERS(utime.h sys/wait.h)
|
||||||
AC_CHECK_FUNCS(waitpid wait3 wait4 vfork uname gethostname gettimeofday ftime)
|
AC_CHECK_FUNCS(waitpid wait3 wait4 vfork uname gethostname gettimeofday ftime)
|
||||||
AC_CHECK_FUNCS(mktemp tmpnam tempnam getcwd getwd rename regcomp)
|
AC_CHECK_FUNCS(mktemp tmpnam tempnam getcwd getwd rename regcomp)
|
||||||
|
|
||||||
|
@ -450,12 +464,17 @@ AM_CONDITIONAL(HAVE_X11, test "${ac_cv_my_have_x11}" = "yes")
|
||||||
AC_SUBST(X_CFLAGS)
|
AC_SUBST(X_CFLAGS)
|
||||||
AC_SUBST(X_LIBS)
|
AC_SUBST(X_LIBS)
|
||||||
|
|
||||||
|
AC_CHECK_LIB(Xmu, XmuDrawLogo,
|
||||||
|
[xmu_libraries="-lXmu"],
|
||||||
|
[xmu_libraries=""],
|
||||||
|
[[-lXt -lSM -lICE -lXext -lX11 -L${x_libraries}]])
|
||||||
|
|
||||||
AC_CHECK_LIB(Xaw, XawTextSearch, [
|
AC_CHECK_LIB(Xaw, XawTextSearch, [
|
||||||
ac_cv_my_have_xaw=yes
|
ac_cv_my_have_xaw=yes
|
||||||
XAW_CFLAGS="-I${x_includes}"
|
XAW_CFLAGS="-I${x_includes}"
|
||||||
XAW_LIBS="-L${x_libraries} -lXaw -lXmu -lXt -lSM -lICE -lXext -lX11"
|
XAW_LIBS="-L${x_libraries} -lXaw ${xmu_libraries} -lXt -lSM -lICE -lXext -lX11"
|
||||||
], [ac_cv_my_have_xaw=no],
|
], [ac_cv_my_have_xaw=no],
|
||||||
[[-lXmu -lXt -lSM -lICE -lXext -lX11 -L${x_libraries}]])
|
[[${xmu_libraries} -lXt -lSM -lICE -lXext -lX11 -L${x_libraries}]])
|
||||||
AM_CONDITIONAL(HAVE_XAW, test "${ac_cv_my_have_xaw}" = "yes")
|
AM_CONDITIONAL(HAVE_XAW, test "${ac_cv_my_have_xaw}" = "yes")
|
||||||
AC_SUBST(XAW_CFLAGS)
|
AC_SUBST(XAW_CFLAGS)
|
||||||
AC_SUBST(XAW_LIBS)
|
AC_SUBST(XAW_LIBS)
|
||||||
|
@ -463,17 +482,19 @@ AC_SUBST(XAW_LIBS)
|
||||||
AC_CHECK_LIB(Xm, XmStringConcat, [
|
AC_CHECK_LIB(Xm, XmStringConcat, [
|
||||||
ac_cv_my_have_motif=yes
|
ac_cv_my_have_motif=yes
|
||||||
MOTIF_CFLAGS="-I${x_includes} -I/usr/include/Xm"
|
MOTIF_CFLAGS="-I${x_includes} -I/usr/include/Xm"
|
||||||
MOTIF_LIBS="-L${x_libraries} -lXm -lXmu -lXt -lSM -lICE -lXext -lX11"
|
MOTIF_LIBS="-L${x_libraries} -lXm ${xmu_libraries} -lXt -lSM -lICE -lXext -lX11"
|
||||||
], [ac_cv_my_have_motif=no],
|
], [ac_cv_my_have_motif=no],
|
||||||
[[-lXmu -lXt -lSM -lICE -lXext -lX11 -L${x_libraries}]])
|
[[${xmu_libraries} -lXt -lSM -lICE -lXext -lX11 -L${x_libraries}]])
|
||||||
AM_CONDITIONAL(HAVE_MOTIF, test "${ac_cv_my_have_motif}" = "yes")
|
AM_CONDITIONAL(HAVE_MOTIF, test "${ac_cv_my_have_motif}" = "yes")
|
||||||
AC_SUBST(MOTIF_CFLAGS)
|
AC_SUBST(MOTIF_CFLAGS)
|
||||||
AC_SUBST(MOTIF_LIBS)
|
AC_SUBST(MOTIF_LIBS)
|
||||||
|
|
||||||
dnl Export variables
|
|
||||||
INCLUDES="${INCLUDES} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
|
INCLUDES="${INCLUDES} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
|
||||||
ELK_LIBS="${ELK_LIBS} -lm"
|
|
||||||
AC_SUBST(INCLUDES)
|
AC_SUBST(INCLUDES)
|
||||||
|
|
||||||
|
dnl Export variables
|
||||||
|
AC_SUBST(ELK_CFLAGS)
|
||||||
|
AC_SUBST(ELK_LDFLAGS)
|
||||||
AC_SUBST(ELK_LIBS)
|
AC_SUBST(ELK_LIBS)
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
|
|
|
@ -442,7 +442,12 @@ extern void String_Ungetc P_((Object, register int));
|
||||||
|
|
||||||
/* Symbols, variables, frequently used Scheme objects
|
/* Symbols, variables, frequently used Scheme objects
|
||||||
*/
|
*/
|
||||||
extern Object Null, True, False, Void, Newline, Eof;
|
extern_c Object elk_import Null;
|
||||||
|
extern_c Object elk_import True;
|
||||||
|
extern_c Object elk_import False;
|
||||||
|
extern_c Object elk_import Void;
|
||||||
|
extern_c Object elk_import Newline;
|
||||||
|
extern_c Object elk_import Eof;
|
||||||
extern Object Intern P_((const char*));
|
extern Object Intern P_((const char*));
|
||||||
extern Object CI_Intern P_((const char*));
|
extern Object CI_Intern P_((const char*));
|
||||||
extern Object P_Oblist P_((void));
|
extern Object P_Oblist P_((void));
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
* THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
|
* THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern Object False2;
|
extern_c Object elk_import False2;
|
||||||
|
|
||||||
#define Nullp(x) (TYPE(x) == T_Null)
|
#define Nullp(x) (TYPE(x) == T_Null)
|
||||||
#define Truep(x) (!EQ(x,False) && !EQ(x,False2))
|
#define Truep(x) (!EQ(x,False) && !EQ(x,False2))
|
||||||
|
|
|
@ -48,6 +48,27 @@
|
||||||
# define elk_attribute(att) /* */
|
# define elk_attribute(att) /* */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Properly export Win32 symbols */
|
||||||
|
#if (defined(_WIN32) || defined(__CYGWIN__)) && \
|
||||||
|
!(defined(ELK_BUILD_DLL) || defined(ELK_STATIC))
|
||||||
|
# define elk_import __declspec(dllimport)
|
||||||
|
#else
|
||||||
|
# define elk_import /* */
|
||||||
|
#endif
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
# define extern_c extern "C"
|
||||||
|
#else
|
||||||
|
# define extern_c /* */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Directory separator */
|
||||||
|
#ifdef WIN32
|
||||||
|
# define SEPARATOR_CHAR '\\'
|
||||||
|
# define SEPARATOR_STRING "\\"
|
||||||
|
#else
|
||||||
|
# define SEPARATOR_CHAR '/'
|
||||||
|
# define SEPARATOR_STRING "/"
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Arithmetic shift right for compilers that don't sign extend:
|
/* Arithmetic shift right for compilers that don't sign extend:
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -14,51 +14,51 @@ pkglib_LTLIBRARIES = \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
bitstring_la_SOURCES = bitstring.c
|
bitstring_la_SOURCES = bitstring.c
|
||||||
bitstring_la_LDFLAGS = -module -avoid-version
|
bitstring_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
bitstring_la_LIBADD = $(top_builddir)/src/libelk.la
|
bitstring_la_LIBADD = $(top_builddir)/src/libelk.la
|
||||||
|
|
||||||
elk_eval_la_SOURCES = elk-eval.c
|
elk_eval_la_SOURCES = elk-eval.c
|
||||||
elk_eval_la_LDFLAGS = -module -avoid-version
|
elk_eval_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
elk_eval_la_LIBADD = $(top_builddir)/src/libelk.la
|
elk_eval_la_LIBADD = $(top_builddir)/src/libelk.la
|
||||||
|
|
||||||
hack_la_SOURCES = hack.c
|
hack_la_SOURCES = hack.c
|
||||||
hack_la_LDFLAGS = -module -avoid-version
|
hack_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
hack_la_LIBADD = $(top_builddir)/src/libelk.la
|
hack_la_LIBADD = $(top_builddir)/src/libelk.la
|
||||||
|
|
||||||
regexp_la_SOURCES = regexp.c
|
regexp_la_SOURCES = regexp.c
|
||||||
regexp_la_LDFLAGS = -module -avoid-version
|
regexp_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
regexp_la_LIBADD = $(top_builddir)/src/libelk.la
|
regexp_la_LIBADD = $(top_builddir)/src/libelk.la
|
||||||
|
|
||||||
debug_la_SOURCES = debug.c
|
debug_la_SOURCES = debug.c
|
||||||
debug_la_LDFLAGS = -module -avoid-version
|
debug_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
debug_la_LIBADD = $(top_builddir)/src/libelk.la
|
debug_la_LIBADD = $(top_builddir)/src/libelk.la
|
||||||
|
|
||||||
if HAVE_GDBM
|
if HAVE_GDBM
|
||||||
gdbm_la = gdbm.la
|
gdbm_la = gdbm.la
|
||||||
endif
|
endif
|
||||||
gdbm_la_SOURCES = gdbm.c
|
gdbm_la_SOURCES = gdbm.c
|
||||||
gdbm_la_LDFLAGS = -module -avoid-version
|
gdbm_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
gdbm_la_LIBADD = $(top_builddir)/src/libelk.la -lgdbm
|
gdbm_la_LIBADD = $(top_builddir)/src/libelk.la -lgdbm
|
||||||
|
|
||||||
if HAVE_MONITOR
|
if HAVE_MONITOR
|
||||||
monitor_la = monitor.la
|
monitor_la = monitor.la
|
||||||
endif
|
endif
|
||||||
monitor_la_SOURCES = monitor.c
|
monitor_la_SOURCES = monitor.c
|
||||||
monitor_la_LDFLAGS = -module -avoid-version
|
monitor_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
monitor_la_LIBADD = $(top_builddir)/src/libelk.la
|
monitor_la_LIBADD = $(top_builddir)/src/libelk.la
|
||||||
|
|
||||||
record_la_SOURCES = record.c
|
record_la_SOURCES = record.c
|
||||||
record_la_LDFLAGS = -module -avoid-version
|
record_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
record_la_LIBADD = $(top_builddir)/src/libelk.la
|
record_la_LIBADD = $(top_builddir)/src/libelk.la
|
||||||
|
|
||||||
struct_la_SOURCES = struct.c
|
struct_la_SOURCES = struct.c
|
||||||
struct_la_LDFLAGS = -module -avoid-version
|
struct_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
struct_la_LIBADD = $(top_builddir)/src/libelk.la
|
struct_la_LIBADD = $(top_builddir)/src/libelk.la
|
||||||
|
|
||||||
if HAVE_CXX
|
if HAVE_CXX
|
||||||
newhandler_la = newhandler.la
|
newhandler_la = newhandler.la
|
||||||
endif
|
endif
|
||||||
newhandler_la_SOURCES = newhandler.cpp
|
newhandler_la_SOURCES = newhandler.cpp
|
||||||
newhandler_la_LDFLAGS = -module -avoid-version
|
newhandler_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
newhandler_la_LIBADD = $(top_builddir)/src/libelk.la
|
newhandler_la_LIBADD = $(top_builddir)/src/libelk.la
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
NULL =
|
NULL =
|
||||||
|
|
||||||
lib_LTLIBRARIES = libelk.la
|
lib_LTLIBRARIES = libelk.la
|
||||||
libelk_la_CFLAGS = -I/usr/include/libelf
|
libelk_la_CFLAGS = @ELK_CFLAGS@ -I/usr/include/libelf
|
||||||
libelk_la_LDFLAGS =
|
libelk_la_LDFLAGS = @ELK_LDFLAGS@
|
||||||
libelk_la_LIBADD = @ELK_LIBS@
|
libelk_la_LIBADD = @ELK_LIBS@
|
||||||
libelk_la_SOURCES = \
|
libelk_la_SOURCES = \
|
||||||
autoload.c \
|
autoload.c \
|
||||||
|
|
Loading…
Reference in New Issue