* 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.
 | 
			
		||||
AC_DEFINE_UNQUOTED(SYSTEMTYPE, ["${target_os}"], [Our operating system])
 | 
			
		||||
 | 
			
		||||
MATH_LIBS="-lm"
 | 
			
		||||
case "${target_os}" in
 | 
			
		||||
  *hpux*)
 | 
			
		||||
    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
 | 
			
		||||
ELK_LIBS="${ELK_LIBS} ${MATH_LIBS}"
 | 
			
		||||
 | 
			
		||||
# Does the system support the vprintf library function?  If not,
 | 
			
		||||
# 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])
 | 
			
		||||
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)
 | 
			
		||||
 | 
			
		||||
# 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,
 | 
			
		||||
# 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(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_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_cv_my_have_xaw=yes
 | 
			
		||||
  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],
 | 
			
		||||
   [[-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")
 | 
			
		||||
AC_SUBST(XAW_CFLAGS)
 | 
			
		||||
AC_SUBST(XAW_LIBS)
 | 
			
		||||
| 
						 | 
				
			
			@ -463,17 +482,19 @@ AC_SUBST(XAW_LIBS)
 | 
			
		|||
AC_CHECK_LIB(Xm, XmStringConcat, [
 | 
			
		||||
  ac_cv_my_have_motif=yes
 | 
			
		||||
  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],
 | 
			
		||||
   [[-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")
 | 
			
		||||
AC_SUBST(MOTIF_CFLAGS)
 | 
			
		||||
AC_SUBST(MOTIF_LIBS)
 | 
			
		||||
 | 
			
		||||
dnl  Export variables
 | 
			
		||||
INCLUDES="${INCLUDES} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
 | 
			
		||||
ELK_LIBS="${ELK_LIBS} -lm"
 | 
			
		||||
AC_SUBST(INCLUDES)
 | 
			
		||||
 | 
			
		||||
dnl  Export variables
 | 
			
		||||
AC_SUBST(ELK_CFLAGS)
 | 
			
		||||
AC_SUBST(ELK_LDFLAGS)
 | 
			
		||||
AC_SUBST(ELK_LIBS)
 | 
			
		||||
 | 
			
		||||
dnl
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -442,7 +442,12 @@ extern void String_Ungetc P_((Object, register int));
 | 
			
		|||
 | 
			
		||||
/* 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 CI_Intern P_((const char*));
 | 
			
		||||
extern Object P_Oblist P_((void));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,7 +28,7 @@
 | 
			
		|||
 * 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 Truep(x)    (!EQ(x,False) && !EQ(x,False2))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,6 +48,27 @@
 | 
			
		|||
#  define elk_attribute(att) /* */
 | 
			
		||||
#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:
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,51 +14,51 @@ pkglib_LTLIBRARIES = \
 | 
			
		|||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
if HAVE_GDBM
 | 
			
		||||
gdbm_la = gdbm.la
 | 
			
		||||
endif
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
if HAVE_MONITOR
 | 
			
		||||
monitor_la = monitor.la
 | 
			
		||||
endif
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
if HAVE_CXX
 | 
			
		||||
newhandler_la = newhandler.la
 | 
			
		||||
endif
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,8 @@
 | 
			
		|||
NULL = 
 | 
			
		||||
 | 
			
		||||
lib_LTLIBRARIES = libelk.la
 | 
			
		||||
libelk_la_CFLAGS = -I/usr/include/libelf
 | 
			
		||||
libelk_la_LDFLAGS = 
 | 
			
		||||
libelk_la_CFLAGS = @ELK_CFLAGS@ -I/usr/include/libelf
 | 
			
		||||
libelk_la_LDFLAGS = @ELK_LDFLAGS@
 | 
			
		||||
libelk_la_LIBADD = @ELK_LIBS@
 | 
			
		||||
libelk_la_SOURCES = \
 | 
			
		||||
	autoload.c \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue