Add CHICKEN code to the things that need to be built.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4317 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
c8a9fc8adb
commit
27dfb2990c
6 changed files with 177 additions and 6 deletions
|
|
@ -739,3 +739,49 @@ pike_cpp_static: $(SRCS)
|
||||||
pike_clean:
|
pike_clean:
|
||||||
rm -f *.@OBJEXT@ *$(SO) *_wrap* *~ .~* core mypike@EXEEXT@
|
rm -f *.@OBJEXT@ *$(SO) *_wrap* *~ .~* core mypike@EXEEXT@
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# Compile a CHICKEN Scheme file to C.
|
||||||
|
#
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
|
||||||
|
CHICKEN_LIBOPTS = @CHICKENLIB@ $(SYSLIBS)
|
||||||
|
CHICKEN_CFLAGS = @CHICKENOPTS@
|
||||||
|
CHICKENOPTS = -optimize-level 3 -quiet
|
||||||
|
|
||||||
|
chicken: $(INTERFACE)
|
||||||
|
@CHICKEN@ $(INTERFACE) $(CHICKENOPTS) -explicit-use \
|
||||||
|
-output-file $(TARGET)
|
||||||
|
|
||||||
|
chicken_c:
|
||||||
|
$(SWIG) -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACE)
|
||||||
|
|
||||||
|
chicken_cpp:
|
||||||
|
$(SWIG) -c++ -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACE)
|
||||||
|
|
||||||
|
chicken_csi:
|
||||||
|
cd @CHICKENHOME@ && \
|
||||||
|
@CHICKEN@ @CHICKENHOME@/src/csi.scm $(CHICKENOPTS) \
|
||||||
|
-include-path @CHICKENHOME@/src \
|
||||||
|
-postlude "(##csi#run)" \
|
||||||
|
-prologue @CHICKENHOME@/src/build.scm \
|
||||||
|
-prelude "(declare (uses posix $(INTERFACE)))" \
|
||||||
|
-output-file $(PWD)/$(TARGET)
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# Build statically linked CHICKEN interpreter
|
||||||
|
#
|
||||||
|
# These should only be used in conjunction with the %include embed.i
|
||||||
|
# library file
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
|
||||||
|
chicken_static: $(SRCS)
|
||||||
|
$(CC) $(CFLAGS) $(CHICKEN_CFLAGS) $(ISRCS) $(SRCS) $(INCLUDE) \
|
||||||
|
$(CHICKEN_INCLUDE) $(LIBS) $(CHICKEN_LIBOPTS) \
|
||||||
|
-o $(TARGET)
|
||||||
|
|
||||||
|
chicken_cpp_static: $(SRCS)
|
||||||
|
$(CXX) $(CFLAGS) $(CHICKEN_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) \
|
||||||
|
$(INCLUDE) \
|
||||||
|
$(CHICKEN_INCLUDE) $(LIBS) $(CHICKEN_LIBOPTS) \
|
||||||
|
-o $(TARGET)
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ skip-ruby = [ -z "@RUBY@" -o -z "@RUBYINCLUDE@" -o -z "@RUBYLIB@" ]
|
||||||
skip-php4 = [ -z "@PHP4@" -o -z "@PHP4INC@" ]
|
skip-php4 = [ -z "@PHP4@" -o -z "@PHP4INC@" ]
|
||||||
skip-ocaml = [ -z "@OCAMLBIN@" -o -z "@OCAMLINC@" ]
|
skip-ocaml = [ -z "@OCAMLBIN@" -o -z "@OCAMLINC@" ]
|
||||||
skip-pike = [ -z "@PIKE@" -o -z "@PIKEINCLUDE@" ]
|
skip-pike = [ -z "@PIKE@" -o -z "@PIKEINCLUDE@" ]
|
||||||
|
skip-chicken = [ -z "@CHICKENINCLUDE@" -o -z "@CHICKENLIB@" ]
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
# Runtime libraries
|
# Runtime libraries
|
||||||
|
|
@ -56,6 +57,7 @@ runtime:
|
||||||
@-$(skip-php4) || (cd Runtime; $(MAKE) php4)
|
@-$(skip-php4) || (cd Runtime; $(MAKE) php4)
|
||||||
@-$(skip-ocaml) || (cd Runtime; $(MAKE) ocaml)
|
@-$(skip-ocaml) || (cd Runtime; $(MAKE) ocaml)
|
||||||
# @-$(skip-pike) || (cd Runtime; $(MAKE) pike)
|
# @-$(skip-pike) || (cd Runtime; $(MAKE) pike)
|
||||||
|
@-$(skip-chicken) || (cd Runtime; $(MAKE) chicken)
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
# CHECK
|
# CHECK
|
||||||
|
|
@ -85,6 +87,7 @@ check-aliveness:
|
||||||
@$(skip-ocaml) || ./$(TARGET) -ocaml -help
|
@$(skip-ocaml) || ./$(TARGET) -ocaml -help
|
||||||
@$(skip-php4) || ./$(TARGET) -php4 -help
|
@$(skip-php4) || ./$(TARGET) -php4 -help
|
||||||
# @$(skip-pike) || ./$(TARGET) -pike -help
|
# @$(skip-pike) || ./$(TARGET) -pike -help
|
||||||
|
@$(skip-chicken) || ./$(TARGET) -chicken -help
|
||||||
|
|
||||||
check-examples: \
|
check-examples: \
|
||||||
check-tcl-examples \
|
check-tcl-examples \
|
||||||
|
|
@ -96,7 +99,8 @@ check-examples: \
|
||||||
check-ruby-examples \
|
check-ruby-examples \
|
||||||
check-ocaml-examples \
|
check-ocaml-examples \
|
||||||
check-php4-examples \
|
check-php4-examples \
|
||||||
# check-pike-examples
|
# check-pike-examples \
|
||||||
|
check-chicken-examples
|
||||||
|
|
||||||
check-%-examples:
|
check-%-examples:
|
||||||
@passed=true; \
|
@passed=true; \
|
||||||
|
|
@ -126,7 +130,8 @@ check-test-suite: \
|
||||||
check-ruby-test-suite \
|
check-ruby-test-suite \
|
||||||
check-ocaml-test-suite \
|
check-ocaml-test-suite \
|
||||||
check-php4-test-suite \
|
check-php4-test-suite \
|
||||||
# check-pike-test-suite
|
# check-pike-test-suite \
|
||||||
|
check-chicken-test-suite
|
||||||
|
|
||||||
check-%-test-suite:
|
check-%-test-suite:
|
||||||
@passed=true; \
|
@passed=true; \
|
||||||
|
|
@ -155,7 +160,8 @@ check-gifplot: \
|
||||||
check-ruby-gifplot \
|
check-ruby-gifplot \
|
||||||
check-ocaml-gifplot \
|
check-ocaml-gifplot \
|
||||||
check-php4-gifplot \
|
check-php4-gifplot \
|
||||||
# check-pike-gifplot
|
# check-pike-gifplot \
|
||||||
|
check-chicken-gifplot
|
||||||
|
|
||||||
check-%-gifplot: gifplot-library
|
check-%-gifplot: gifplot-library
|
||||||
@passed=true; \
|
@passed=true; \
|
||||||
|
|
@ -280,7 +286,8 @@ install-main:
|
||||||
@echo "Installing $(BIN_DIR)/$(TARGET)"
|
@echo "Installing $(BIN_DIR)/$(TARGET)"
|
||||||
@$(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(BIN_DIR)/$(TARGET)
|
@$(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(BIN_DIR)/$(TARGET)
|
||||||
|
|
||||||
lib-languages = tcl perl5 python guile java mzscheme ruby php4 ocaml pike
|
lib-languages = tcl perl5 python guile java mzscheme ruby php4 ocaml \
|
||||||
|
pike chicken
|
||||||
|
|
||||||
install-lib:
|
install-lib:
|
||||||
@echo "Installing the SWIG library"
|
@echo "Installing the SWIG library"
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,8 @@ SWIGLIB = $(top_srcdir)/Lib
|
||||||
RELEASESUFFIX = @release_suffix@
|
RELEASESUFFIX = @release_suffix@
|
||||||
LIBS = libswigpl$(RELEASESUFFIX).la libswigpy$(RELEASESUFFIX).la \
|
LIBS = libswigpl$(RELEASESUFFIX).la libswigpy$(RELEASESUFFIX).la \
|
||||||
libswigtcl8$(RELEASESUFFIX).la libswigrb$(RELEASESUFFIX).la \
|
libswigtcl8$(RELEASESUFFIX).la libswigrb$(RELEASESUFFIX).la \
|
||||||
libswigguile$(RELEASESUFFIX).la libswigocaml$(RELEASESUFFIX).la
|
libswigguile$(RELEASESUFFIX).la libswigocaml$(RELEASESUFFIX).la \
|
||||||
|
libswigchicken$(RELEASESUFFIX).la
|
||||||
LIB_DIR = $(exec_prefix)/lib
|
LIB_DIR = $(exec_prefix)/lib
|
||||||
|
|
||||||
MKINSTDIRS = $(top_srcdir)/Tools/config/mkinstalldirs
|
MKINSTDIRS = $(top_srcdir)/Tools/config/mkinstalldirs
|
||||||
|
|
@ -32,6 +33,7 @@ all:
|
||||||
-$(MAKE) mzscheme
|
-$(MAKE) mzscheme
|
||||||
-$(MAKE) php4
|
-$(MAKE) php4
|
||||||
-$(MAKE) ocaml
|
-$(MAKE) ocaml
|
||||||
|
-$(MAKE) chicken
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@echo "Installing runtime libraries"
|
@echo "Installing runtime libraries"
|
||||||
|
|
@ -218,3 +220,22 @@ libswigpike$(RELEASESUFFIX).la:
|
||||||
cat $(srcdir)/$(SWIG_TYPECHECK) $(srcdir)/$(PIKE_RUNTIME) >> libpike.c
|
cat $(srcdir)/$(SWIG_TYPECHECK) $(srcdir)/$(PIKE_RUNTIME) >> libpike.c
|
||||||
$(LIBTOOL) $(CC) -c $(PIKE_INCLUDE) -DSWIG_GLOBAL libpike.c
|
$(LIBTOOL) $(CC) -c $(PIKE_INCLUDE) -DSWIG_GLOBAL libpike.c
|
||||||
$(LIBTOOL) $(CC) -o libswigpike$(RELEASESUFFIX).la libpike.lo -rpath $(LIB_DIR) -avoid-version
|
$(LIBTOOL) $(CC) -o libswigpike$(RELEASESUFFIX).la libpike.lo -rpath $(LIB_DIR) -avoid-version
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
# CHICKEN run-time library
|
||||||
|
# ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
CHICKENOPTS = @CHICKENOPTS@
|
||||||
|
CHICKEN_RUNTIME = $(SWIGLIB)/chicken/chickenrun.swg
|
||||||
|
|
||||||
|
# CHICKEN shared
|
||||||
|
|
||||||
|
chicken: libswigchicken$(RELEASESUFFIX).la
|
||||||
|
|
||||||
|
libswigchicken$(RELEASESUFFIX).la: $(CHICKEN_RUNTIME)
|
||||||
|
rm -f libchicken.c
|
||||||
|
echo '#include "chicken.h"' >> libchicken.c
|
||||||
|
cat $(srcdir)/$(SWIG_TYPECHECK) $(srcdir)/$(CHICKEN_RUNTIME) >> libchicken.c
|
||||||
|
$(LIBTOOL) $(CC) -c $(CHICKENOPTS) -DSWIG_GLOBAL libchicken.c
|
||||||
|
$(LIBTOOL) $(CC) -o libswigchicken$(RELEASESUFFIX).la libchicken.lo -rpath $(LIB_DIR) -avoid-version
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ swig_SOURCES = CParse/cscanner.c \
|
||||||
Modules/allocate.cxx \
|
Modules/allocate.cxx \
|
||||||
Modules/emit.cxx \
|
Modules/emit.cxx \
|
||||||
Modules/browser.cxx \
|
Modules/browser.cxx \
|
||||||
|
Modules/chicken.cxx \
|
||||||
Modules/contract.cxx \
|
Modules/contract.cxx \
|
||||||
Modules/guile.cxx \
|
Modules/guile.cxx \
|
||||||
Modules/java.cxx \
|
Modules/java.cxx \
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@ extern "C" {
|
||||||
Language *swig_pike(void);
|
Language *swig_pike(void);
|
||||||
Language *swig_sexp(void);
|
Language *swig_sexp(void);
|
||||||
Language *swig_xml(void);
|
Language *swig_xml(void);
|
||||||
|
Language *swig_chicken(void);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct swig_module {
|
struct swig_module {
|
||||||
|
|
@ -60,6 +61,7 @@ struct swig_module {
|
||||||
list sorted alphabetically. */
|
list sorted alphabetically. */
|
||||||
|
|
||||||
swig_module modules[] = {
|
swig_module modules[] = {
|
||||||
|
{"-chicken", swig_chicken, "CHICKEN"},
|
||||||
{"-guile", swig_guile, "Guile"},
|
{"-guile", swig_guile, "Guile"},
|
||||||
{"-java", swig_java, "Java"},
|
{"-java", swig_java, "Java"},
|
||||||
{"-mzscheme", swig_mzscheme, "Mzscheme"},
|
{"-mzscheme", swig_mzscheme, "Mzscheme"},
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ AH_TOP([
|
||||||
#define SWIG_PYTHON_RUNTIME "-L" LIBDIR " -lswigpy" RELEASE_SUFFIX
|
#define SWIG_PYTHON_RUNTIME "-L" LIBDIR " -lswigpy" RELEASE_SUFFIX
|
||||||
#define SWIG_RUBY_RUNTIME "-L" LIBDIR " -lswigrb" RELEASE_SUFFIX
|
#define SWIG_RUBY_RUNTIME "-L" LIBDIR " -lswigrb" RELEASE_SUFFIX
|
||||||
#define SWIG_TCL_RUNTIME "-L" LIBDIR " -lswigtcl" RELEASE_SUFFIX
|
#define SWIG_TCL_RUNTIME "-L" LIBDIR " -lswigtcl" RELEASE_SUFFIX
|
||||||
|
#define SWIG_CHICKEN_RUNTIME "-L" LIBDIR " -lswigchicken" RELEASE_SUFFIX
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl Checks for programs.
|
dnl Checks for programs.
|
||||||
|
|
@ -31,6 +32,8 @@ AC_PROG_CC
|
||||||
AC_PROG_CXX
|
AC_PROG_CXX
|
||||||
AC_PROG_YACC
|
AC_PROG_YACC
|
||||||
AC_PROG_RANLIB
|
AC_PROG_RANLIB
|
||||||
|
AC_EXEEXT
|
||||||
|
AC_OBJEXT
|
||||||
AM_PROG_CC_C_O # Needed for subdir-objects in AUTOMAKE_OPTIONS
|
AM_PROG_CC_C_O # Needed for subdir-objects in AUTOMAKE_OPTIONS
|
||||||
AC_CHECK_PROGS(AR, ar aal, ar)
|
AC_CHECK_PROGS(AR, ar aal, ar)
|
||||||
AC_SUBST(AR)
|
AC_SUBST(AR)
|
||||||
|
|
@ -114,7 +117,6 @@ then
|
||||||
*) LDSHARED="ld";;
|
*) LDSHARED="ld";;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_MSG_RESULT($LDSHARED)
|
AC_MSG_RESULT($LDSHARED)
|
||||||
# CXXSHARED is the ld *command* used to create C++ shared library
|
# CXXSHARED is the ld *command* used to create C++ shared library
|
||||||
# -- "ld" on SunOS 4.x.x, "ld -G" on SunOS 5.x, "ld -shared" on IRIX 5
|
# -- "ld" on SunOS 4.x.x, "ld -G" on SunOS 5.x, "ld -shared" on IRIX 5
|
||||||
|
|
@ -984,6 +986,89 @@ AC_SUBST(PIKEINCLUDE)
|
||||||
AC_SUBST(PIKECCDLFLAGS)
|
AC_SUBST(PIKECCDLFLAGS)
|
||||||
AC_SUBST(PIKEDYNAMICLINKING)
|
AC_SUBST(PIKEDYNAMICLINKING)
|
||||||
|
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
# Look for CHICKEN
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
|
||||||
|
CHICKEN=
|
||||||
|
CHICKEN_CONFIG=
|
||||||
|
CHICKENHOME=
|
||||||
|
CHICKENOPTS=
|
||||||
|
CHICKENLIB=
|
||||||
|
|
||||||
|
|
||||||
|
AC_ARG_WITH(chicken,[ --with-chicken=path Set location of CHICKEN executable],[ CHICKEN="$withval"], [CHICKEN=])
|
||||||
|
|
||||||
|
if test -z "$CHICKEN"; then
|
||||||
|
AC_CHECK_PROGS(CHICKEN, chicken)
|
||||||
|
else
|
||||||
|
CHICKEN="$CHICKEN"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_ARG_WITH(chickcfg,[ --with-chickencfg=path Set location of chicken-config],[ CHICKEN_CONFIG="$withval"], [CHICKEN_CONFIG=])
|
||||||
|
|
||||||
|
if test -z "$CHICKEN_CONFIG"; then
|
||||||
|
AC_CHECK_PROGS(CHICKEN_CONFIG, chicken-config)
|
||||||
|
else
|
||||||
|
CHICKEN_CONFIG="$CHICKEN_CONFIG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$CHICKEN_CONFIG" ; then
|
||||||
|
|
||||||
|
AC_ARG_WITH(chickhme,[ --with-chickenhome=path Set location of CHICKEN home directory],[
|
||||||
|
CHICKENHOME="$withval"], [CHICKENHOME=])
|
||||||
|
AC_ARG_WITH(chickopt,[ --with-chickenopts=path Set compiler options for CHICKEN generated code],[
|
||||||
|
CHICKENOPTS="$withval"], [CHICKENOPTS=])
|
||||||
|
AC_ARG_WITH(chicklib,[ --with-chickenlib=path Set linker options for CHICKEN generated code],[
|
||||||
|
CHICKENLIB="$withval"], [CHICKENLIB=])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for CHICKEN home directory)
|
||||||
|
dirs="$CHICKENHOME `chicken-config -home | sed s/CHICKEN_HOME=//`"
|
||||||
|
for i in $dirs ; do
|
||||||
|
if test -d $i; then
|
||||||
|
AC_MSG_RESULT($i)
|
||||||
|
CHICKENHOME="$i"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test -z "$CHICKENHOME"; then
|
||||||
|
AC_MSG_RESULT(not found)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for compiler options for CHICKEN generated code)
|
||||||
|
if test -z "$CHICKENOPTS"; then
|
||||||
|
CHICKENOPTS="`chicken-config -cflags`"
|
||||||
|
else
|
||||||
|
CHICKENOPTS="`chicken-config -cflags` $CHICKENOPTS"
|
||||||
|
fi
|
||||||
|
if test -z "$CHICKENOPTS"; then
|
||||||
|
AC_MSG_RESULT(not found)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT($CHICKENOPTS)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for linker options for CHICKEN generated code)
|
||||||
|
dirs="$CHICKENLIB `chicken-config -libs -extra-libs | sed s/-L//g`"
|
||||||
|
for i in $dirs ; do
|
||||||
|
if test -r $i/libchicken.a; then
|
||||||
|
AC_MSG_RESULT(libraries found in $i)
|
||||||
|
CHICKENLIB="$CHICKENLIB `chicken-config -libs`"
|
||||||
|
CHICKENLIB="$CHICKENLIB `chicken-config -extra-libs`"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test -z "$CHICKENLIB"; then
|
||||||
|
AC_MSG_RESULT(not found)
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi # have CHICKEN_CONFIG
|
||||||
|
|
||||||
|
AC_SUBST(CHICKEN)
|
||||||
|
AC_SUBST(CHICKEN_CONFIG)
|
||||||
|
AC_SUBST(CHICKENHOME)
|
||||||
|
AC_SUBST(CHICKENOPTS)
|
||||||
|
AC_SUBST(CHICKENLIB)
|
||||||
|
|
||||||
#----------------------------------------------------------------
|
#----------------------------------------------------------------
|
||||||
# Miscellaneous
|
# Miscellaneous
|
||||||
#----------------------------------------------------------------
|
#----------------------------------------------------------------
|
||||||
|
|
@ -1022,7 +1107,16 @@ AC_CONFIG_FILES([ \
|
||||||
Runtime/Makefile \
|
Runtime/Makefile \
|
||||||
Examples/Makefile \
|
Examples/Makefile \
|
||||||
Examples/guile/Makefile \
|
Examples/guile/Makefile \
|
||||||
|
Examples/chicken/class/Makefile \
|
||||||
|
Examples/chicken/constants/Makefile \
|
||||||
|
Examples/chicken/simple/Makefile \
|
||||||
|
Examples/chicken/multimap/Makefile \
|
||||||
|
Examples/chicken/overload/Makefile \
|
||||||
|
Examples/chicken/vtk/Makefile \
|
||||||
|
Examples/chicken/zlib/Makefile \
|
||||||
Examples/GIFPlot/Makefile \
|
Examples/GIFPlot/Makefile \
|
||||||
|
Examples/GIFPlot/Chicken/full/Makefile \
|
||||||
|
Examples/GIFPlot/Chicken/simple/Makefile \
|
||||||
Examples/GIFPlot/Lib/Makefile \
|
Examples/GIFPlot/Lib/Makefile \
|
||||||
])
|
])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue