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:
Jonah Beckford 2003-02-15 02:04:40 +00:00
commit 27dfb2990c
6 changed files with 177 additions and 6 deletions

View file

@ -739,3 +739,49 @@ pike_cpp_static: $(SRCS)
pike_clean:
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)

View file

@ -41,6 +41,7 @@ skip-ruby = [ -z "@RUBY@" -o -z "@RUBYINCLUDE@" -o -z "@RUBYLIB@" ]
skip-php4 = [ -z "@PHP4@" -o -z "@PHP4INC@" ]
skip-ocaml = [ -z "@OCAMLBIN@" -o -z "@OCAMLINC@" ]
skip-pike = [ -z "@PIKE@" -o -z "@PIKEINCLUDE@" ]
skip-chicken = [ -z "@CHICKENINCLUDE@" -o -z "@CHICKENLIB@" ]
#####################################################################
# Runtime libraries
@ -56,6 +57,7 @@ runtime:
@-$(skip-php4) || (cd Runtime; $(MAKE) php4)
@-$(skip-ocaml) || (cd Runtime; $(MAKE) ocaml)
# @-$(skip-pike) || (cd Runtime; $(MAKE) pike)
@-$(skip-chicken) || (cd Runtime; $(MAKE) chicken)
#####################################################################
# CHECK
@ -85,6 +87,7 @@ check-aliveness:
@$(skip-ocaml) || ./$(TARGET) -ocaml -help
@$(skip-php4) || ./$(TARGET) -php4 -help
# @$(skip-pike) || ./$(TARGET) -pike -help
@$(skip-chicken) || ./$(TARGET) -chicken -help
check-examples: \
check-tcl-examples \
@ -96,7 +99,8 @@ check-examples: \
check-ruby-examples \
check-ocaml-examples \
check-php4-examples \
# check-pike-examples
# check-pike-examples \
check-chicken-examples
check-%-examples:
@passed=true; \
@ -126,7 +130,8 @@ check-test-suite: \
check-ruby-test-suite \
check-ocaml-test-suite \
check-php4-test-suite \
# check-pike-test-suite
# check-pike-test-suite \
check-chicken-test-suite
check-%-test-suite:
@passed=true; \
@ -155,7 +160,8 @@ check-gifplot: \
check-ruby-gifplot \
check-ocaml-gifplot \
check-php4-gifplot \
# check-pike-gifplot
# check-pike-gifplot \
check-chicken-gifplot
check-%-gifplot: gifplot-library
@passed=true; \
@ -280,7 +286,8 @@ install-main:
@echo "Installing $(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:
@echo "Installing the SWIG library"

View file

@ -17,7 +17,8 @@ SWIGLIB = $(top_srcdir)/Lib
RELEASESUFFIX = @release_suffix@
LIBS = libswigpl$(RELEASESUFFIX).la libswigpy$(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
MKINSTDIRS = $(top_srcdir)/Tools/config/mkinstalldirs
@ -32,6 +33,7 @@ all:
-$(MAKE) mzscheme
-$(MAKE) php4
-$(MAKE) ocaml
-$(MAKE) chicken
install:
@echo "Installing runtime libraries"
@ -218,3 +220,22 @@ libswigpike$(RELEASESUFFIX).la:
cat $(srcdir)/$(SWIG_TYPECHECK) $(srcdir)/$(PIKE_RUNTIME) >> libpike.c
$(LIBTOOL) $(CC) -c $(PIKE_INCLUDE) -DSWIG_GLOBAL libpike.c
$(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

View file

@ -41,6 +41,7 @@ swig_SOURCES = CParse/cscanner.c \
Modules/allocate.cxx \
Modules/emit.cxx \
Modules/browser.cxx \
Modules/chicken.cxx \
Modules/contract.cxx \
Modules/guile.cxx \
Modules/java.cxx \

View file

@ -47,6 +47,7 @@ extern "C" {
Language *swig_pike(void);
Language *swig_sexp(void);
Language *swig_xml(void);
Language *swig_chicken(void);
}
struct swig_module {
@ -60,6 +61,7 @@ struct swig_module {
list sorted alphabetically. */
swig_module modules[] = {
{"-chicken", swig_chicken, "CHICKEN"},
{"-guile", swig_guile, "Guile"},
{"-java", swig_java, "Java"},
{"-mzscheme", swig_mzscheme, "Mzscheme"},

View file

@ -24,6 +24,7 @@ AH_TOP([
#define SWIG_PYTHON_RUNTIME "-L" LIBDIR " -lswigpy" RELEASE_SUFFIX
#define SWIG_RUBY_RUNTIME "-L" LIBDIR " -lswigrb" RELEASE_SUFFIX
#define SWIG_TCL_RUNTIME "-L" LIBDIR " -lswigtcl" RELEASE_SUFFIX
#define SWIG_CHICKEN_RUNTIME "-L" LIBDIR " -lswigchicken" RELEASE_SUFFIX
])
dnl Checks for programs.
@ -31,6 +32,8 @@ AC_PROG_CC
AC_PROG_CXX
AC_PROG_YACC
AC_PROG_RANLIB
AC_EXEEXT
AC_OBJEXT
AM_PROG_CC_C_O # Needed for subdir-objects in AUTOMAKE_OPTIONS
AC_CHECK_PROGS(AR, ar aal, ar)
AC_SUBST(AR)
@ -114,7 +117,6 @@ then
*) LDSHARED="ld";;
esac
fi
AC_MSG_RESULT($LDSHARED)
# 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
@ -984,6 +986,89 @@ AC_SUBST(PIKEINCLUDE)
AC_SUBST(PIKECCDLFLAGS)
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
#----------------------------------------------------------------
@ -1022,7 +1107,16 @@ AC_CONFIG_FILES([ \
Runtime/Makefile \
Examples/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/Chicken/full/Makefile \
Examples/GIFPlot/Chicken/simple/Makefile \
Examples/GIFPlot/Lib/Makefile \
])
AC_OUTPUT