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:
|
||||
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-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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 \
|
||||
|
|
|
|||
|
|
@ -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"},
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue