Add support for go tool used in Go 1.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12923 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
eb5130814d
commit
911ee91de1
3 changed files with 39 additions and 24 deletions
|
|
@ -1169,19 +1169,22 @@ r_clean:
|
||||||
|
|
||||||
GO = @GO@
|
GO = @GO@
|
||||||
GOGCC = @GOGCC@
|
GOGCC = @GOGCC@
|
||||||
|
GO1 = @GO1@
|
||||||
|
GOC = @GOC@
|
||||||
|
|
||||||
GOSWIGARG = `if $(GOGCC) ; then echo -gccgo; fi`
|
GOSWIGARG = `if $(GOGCC) ; then echo -gccgo; fi`
|
||||||
GOCOMPILEARG = `if $(GOGCC) ; then echo -c -g; fi`
|
GOCOMPILEARG = `if $(GOGCC) ; then echo -c -g; elif $(GO1) ; then echo tool $(GOC:c=g) ; fi`
|
||||||
|
|
||||||
GOSRCS = $(INTERFACE:.i=.go)
|
GOSRCS = $(INTERFACE:.i=.go)
|
||||||
GOCSRCS = $(INTERFACE:.i=_gc.c)
|
GOCSRCS = $(INTERFACE:.i=_gc.c)
|
||||||
|
|
||||||
GOC = $(GO:g=c)
|
GOLD = $(GOC:c=l)
|
||||||
GOLD = $(GO:g=l)
|
GOTOOL = `if $(GO1) ; then echo go tool; fi`
|
||||||
|
GOPACK = `if $(GO1) ; then echo go tool pack; else echo gopack; fi`
|
||||||
|
|
||||||
GOPACKAGE = $(INTERFACE:.i=.a)
|
GOPACKAGE = $(INTERFACE:.i=.a)
|
||||||
|
|
||||||
GOOBJEXT = $(GO:g=)
|
GOOBJEXT = $(GOC:c=)
|
||||||
GOGCOBJS = $(GOSRCS:.go=.$(GOOBJEXT))
|
GOGCOBJS = $(GOSRCS:.go=.$(GOOBJEXT))
|
||||||
GOGCCOBJS = $(GOSRCS:.go=.@OBJEXT@)
|
GOGCCOBJS = $(GOSRCS:.go=.@OBJEXT@)
|
||||||
|
|
||||||
|
|
@ -1193,10 +1196,10 @@ go: $(SRCS)
|
||||||
$(SWIG) -go $(GOSWIGARG) $(SWIGOPT) $(INTERFACEPATH)
|
$(SWIG) -go $(GOSWIGARG) $(SWIGOPT) $(INTERFACEPATH)
|
||||||
$(CC) -g -c $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES)
|
$(CC) -g -c $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES)
|
||||||
$(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
|
$(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
|
||||||
$(COMPILETOOL) $(GO) -I . $(GOCOMPILEARG) $(GOSRCS)
|
$(COMPILETOOL) $(GO) $(GOCOMPILEARG) -I . $(GOSRCS)
|
||||||
if ! $(GOGCC) ; then \
|
if ! $(GOGCC) ; then \
|
||||||
$(COMPILETOOL) $(GOC) -I $${GOROOT}/pkg/$${GOOS}_$${GOARCH} $(GOCSRCS) && \
|
$(COMPILETOOL) $(GOTOOL) $(GOC) -I $${GOROOT}/pkg/$${GOOS}_$${GOARCH} $(GOCSRCS) && \
|
||||||
$(COMPILETOOL) gopack grc $(GOPACKAGE) $(GOGCOBJS) $(GOCSRCS:.c=.$(GOOBJEXT)); \
|
$(COMPILETOOL) $(GOPACK) grc $(GOPACKAGE) $(GOGCOBJS) $(GOCSRCS:.c=.$(GOOBJEXT)); \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ----------------------------------------------------------------
|
# ----------------------------------------------------------------
|
||||||
|
|
@ -1207,10 +1210,10 @@ go_cpp: $(SRCS)
|
||||||
$(SWIG) -go -c++ $(GOSWIGARG) $(SWIGOPT) $(INTERFACEPATH)
|
$(SWIG) -go -c++ $(GOSWIGARG) $(SWIGOPT) $(INTERFACEPATH)
|
||||||
$(CXX) -g -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES)
|
$(CXX) -g -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES)
|
||||||
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
|
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
|
||||||
$(COMPILETOOL) $(GO) -I . $(GOCOMPILEARG) $(GOSRCS)
|
$(COMPILETOOL) $(GO) $(GOCOMPILEARG) -I . $(GOSRCS)
|
||||||
if ! $(GOGCC) ; then \
|
if ! $(GOGCC) ; then \
|
||||||
$(COMPILETOOL) $(GOC) -I $${GOROOT}/pkg/$${GOOS}_$${GOARCH} $(GOCSRCS) && \
|
$(COMPILETOOL) $(GOTOOL) $(GOC) -I $${GOROOT}/pkg/$${GOOS}_$${GOARCH} $(GOCSRCS) && \
|
||||||
$(COMPILETOOL) gopack grc $(GOPACKAGE) $(GOGCOBJS) $(GOCSRCS:.c=.$(GOOBJEXT)); \
|
$(COMPILETOOL) $(GOPACK) grc $(GOPACKAGE) $(GOGCOBJS) $(GOCSRCS:.c=.$(GOOBJEXT)); \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
|
|
@ -1222,7 +1225,7 @@ go_run: runme.go
|
||||||
if $(GOGCC) ; then \
|
if $(GOGCC) ; then \
|
||||||
$(COMPILETOOL) $(GO) -o runme runme.@OBJEXT@ $(GOGCCOBJS) $(LIBPREFIX)$(TARGET)$(SO); \
|
$(COMPILETOOL) $(GO) -o runme runme.@OBJEXT@ $(GOGCCOBJS) $(LIBPREFIX)$(TARGET)$(SO); \
|
||||||
else \
|
else \
|
||||||
$(COMPILETOOL) $(GOLD) -r $${GOROOT}/pkg/$${GOOS}_$${GOARCH}:. -o runme runme.$(GOOBJEXT); \
|
$(COMPILETOOL) $(GOTOOL) $(GOLD) -r $${GOROOT}/pkg/$${GOOS}_$${GOARCH}:. -o runme runme.$(GOOBJEXT); \
|
||||||
fi
|
fi
|
||||||
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./runme
|
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./runme
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,17 @@
|
||||||
|
|
||||||
LANGUAGE = go
|
LANGUAGE = go
|
||||||
GO = @GO@
|
GO = @GO@
|
||||||
GOGCC = false
|
GOGCC = @GOGCC@
|
||||||
|
GO1 = @GO1@
|
||||||
|
GOC = @GOC@
|
||||||
SCRIPTSUFFIX = _runme.go
|
SCRIPTSUFFIX = _runme.go
|
||||||
|
|
||||||
GOCOMPILEARG = `if $(GOGCC) ; then echo -c -g; fi`
|
GOCOMPILEARG = `if $(GOGCC) ; then echo -c -g; elif $(GO1) ; then echo tool $(GOC:c=g) ; fi`
|
||||||
GOC = $(GO:g=c)
|
GOLD = $(GOC:c=l)
|
||||||
GOLD = $(GO:g=l)
|
GOTOOL = `if $(GO1) ; then echo go tool; fi`
|
||||||
|
GOPACK = `if $(GO1) ; then echo go tool pack; else echo gopack; fi`
|
||||||
|
|
||||||
GOOBJEXT = $(GO:g=)
|
GOOBJEXT = $(GOC:c=)
|
||||||
|
|
||||||
SO = @SO@
|
SO = @SO@
|
||||||
|
|
||||||
|
|
@ -53,23 +56,23 @@ multi_import.multicpptest:
|
||||||
# Runs the testcase.
|
# Runs the testcase.
|
||||||
run_testcase = \
|
run_testcase = \
|
||||||
if test -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); then \
|
if test -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); then \
|
||||||
$(COMPILETOOL) $(GO) -I . $(GOCOMPILEARG) $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) && \
|
$(COMPILETOOL) $(GO) $(GOCOMPILEARG) -I . $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) && \
|
||||||
if $(GOGCC) ; then \
|
if $(GOGCC) ; then \
|
||||||
$(COMPILETOOL) $(GO) -o $*_runme $(SCRIPTPREFIX)$*_runme.@OBJEXT@ $*.@OBJEXT@ $*$(SO); \
|
$(COMPILETOOL) $(GO) -o $*_runme $(SCRIPTPREFIX)$*_runme.@OBJEXT@ $*.@OBJEXT@ $*$(SO); \
|
||||||
else \
|
else \
|
||||||
$(COMPILETOOL) $(GOLD) -L . -r $${GOROOT}/pkg/$${GOOS}_$${GOARCH}:. -o $*_runme $(SCRIPTPREFIX)$*_runme.$(GOOBJEXT); \
|
$(COMPILETOOL) $(GOTOOL) $(GOLD) -L . -r $${GOROOT}/pkg/$${GOOS}_$${GOARCH}:. -o $*_runme $(SCRIPTPREFIX)$*_runme.$(GOOBJEXT); \
|
||||||
fi && \
|
fi && \
|
||||||
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./$*_runme; \
|
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./$*_runme; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
run_multi_testcase = \
|
run_multi_testcase = \
|
||||||
if test -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); then \
|
if test -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); then \
|
||||||
$(COMPILETOOL) $(GO) -I . $(GOCOMPILEARG) $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) && \
|
$(COMPILETOOL) $(GO) $(GOCOMPILEARG) -I . $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) && \
|
||||||
if $(GOGCC) ; then \
|
if $(GOGCC) ; then \
|
||||||
files=`cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list`; \
|
files=`cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list`; \
|
||||||
$(COMPILETOOL) $(GO) -o $*_runme $(SCRIPTPREFIX)$*_runme.@OBJEXT@ `for f in $$files; do echo $$f.@OBJEXT@ $$f$(SO); done`; \
|
$(COMPILETOOL) $(GO) -o $*_runme $(SCRIPTPREFIX)$*_runme.@OBJEXT@ `for f in $$files; do echo $$f.@OBJEXT@ $$f$(SO); done`; \
|
||||||
else \
|
else \
|
||||||
$(COMPILETOOL) $(GOLD) -L . -r $${GOROOT}/pkg/$${GOOS}_$${GOARCH}:. -o $*_runme $(SCRIPTPREFIX)$*_runme.$(GOOBJEXT); \
|
$(COMPILETOOL) $(GOTOOL) $(GOLD) -L . -r $${GOROOT}/pkg/$${GOOS}_$${GOARCH}:. -o $*_runme $(SCRIPTPREFIX)$*_runme.$(GOOBJEXT); \
|
||||||
fi && \
|
fi && \
|
||||||
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./$*_runme; \
|
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./$*_runme; \
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
17
configure.in
17
configure.in
|
|
@ -2058,24 +2058,31 @@ AS_HELP_STRING([--with-go=path], [Set location of Go compiler]),[GOBIN="$withval
|
||||||
if test x"${GOBIN}" = xno -o x"${with_alllang}" = xno ; then
|
if test x"${GOBIN}" = xno -o x"${with_alllang}" = xno ; then
|
||||||
AC_MSG_NOTICE([Disabling Go])
|
AC_MSG_NOTICE([Disabling Go])
|
||||||
GO=
|
GO=
|
||||||
|
GOC=
|
||||||
|
GO1=false
|
||||||
GOGCC=false
|
GOGCC=false
|
||||||
else
|
else
|
||||||
|
|
||||||
if test "x$GOBIN" = xyes; then
|
if test "x$GOBIN" = xyes; then
|
||||||
AC_CHECK_PROGS(GO, 6g 8g gccgo)
|
AC_CHECK_PROGS(GO, go 6g 8g gccgo)
|
||||||
else
|
else
|
||||||
GO="$GOBIN"
|
GO="$GOBIN"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -n "$GO" ; then
|
|
||||||
GOGCC=false
|
GOGCC=false
|
||||||
|
GO1=false
|
||||||
|
if test -n "$GO" ; then
|
||||||
if $GO --help 2>/dev/null | grep gccgo >/dev/null 2>&1 ; then
|
if $GO --help 2>/dev/null | grep gccgo >/dev/null 2>&1 ; then
|
||||||
GOGCC=true
|
GOGCC=true
|
||||||
|
elif test "`echo $GO | sed -e 's|.*/||'`" = "go"; then
|
||||||
|
GO1=true
|
||||||
|
GOC=$(sh -c "$(go env) && echo \$GOCHAR")c
|
||||||
else
|
else
|
||||||
|
GOC=`echo $GO | sed -e 's/g/c/'`
|
||||||
AC_MSG_CHECKING([whether Go ($GO) version is too old])
|
AC_MSG_CHECKING([whether Go ($GO) version is too old])
|
||||||
go_version=`$GO -V | sed -e 's/.*version.* \([[0-9]]*\).*/\1/'`
|
go_version=`$GO -V 2>/dev/null | sed -e 's/.*version.* \([[0-9]]*\).*/\1/'`
|
||||||
go_min_version=7077
|
go_min_version=7077
|
||||||
if test "$go_version" -lt $go_min_version; then
|
if test "$go_version" != "" -a "$go_version" -lt $go_min_version; then
|
||||||
AC_MSG_RESULT([yes - minimum version is $go_min_version])
|
AC_MSG_RESULT([yes - minimum version is $go_min_version])
|
||||||
GO=
|
GO=
|
||||||
else
|
else
|
||||||
|
|
@ -2087,6 +2094,8 @@ fi
|
||||||
|
|
||||||
AC_SUBST(GOGCC)
|
AC_SUBST(GOGCC)
|
||||||
AC_SUBST(GO)
|
AC_SUBST(GO)
|
||||||
|
AC_SUBST(GOC)
|
||||||
|
AC_SUBST(GO1)
|
||||||
|
|
||||||
#----------------------------------------------------------------
|
#----------------------------------------------------------------
|
||||||
# Look for D
|
# Look for D
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue