dwww Home | Show directory contents | Find package

#######################################################################
# Makefile for Go test-suite
#######################################################################

LANGUAGE        = go
GO              = @GO@
GOGCC           = @GOGCC@
GCCGO           = @GCCGO@
GOVERSIONOPTION = @GOVERSIONOPTION@
host            = @host@
SCRIPTSUFFIX    = _runme.go

SO = @SO@

HAVE_CXX11   = @HAVE_CXX11@
HAVE_CXX14   = @HAVE_CXX14@
HAVE_CXX17   = @HAVE_CXX17@
HAVE_CXX20   = @HAVE_CXX20@
srcdir         = @srcdir@
top_srcdir     = @top_srcdir@
top_builddir   = @top_builddir@
abs_top_srcdir = @abs_top_srcdir@

CPP_TEST_CASES = \
        go_inout \
        go_director_inout

MULTI_CPP_TEST_CASES = \
        go_subdir_import

include $(srcdir)/../common.mk

INCLUDES = -I$(abs_top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)

.SUFFIXES: .cpptest .ctest .multicpptest

# Rules for the different types of tests
%.cpptest:
        $(setup)
        +$(swig_and_compile_cpp)
        $(run_testcase_cpp)

%.ctest:
        $(setup)
        +$(swig_and_compile_c)
        $(run_testcase)

%.multicpptest:
        $(setup)
        $(go_multicpp_setup)
        +for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list` ; do \
          $(call swig_and_compile_cpp_helper,$${f},'$(SWIGOPT)') GOMOD="$*"; \
        done
        $(run_multi_testcase)

li_windows.cpptest:
        # Does not work because go build won't build li_windows.go,
        # because file names with "windows" are only built on Windows.

go_subdir_import.multicpptest:
        $(setup)
        $(go_multicpp_setup)
        mkdir -p testdir/go_subdir_import 2>/dev/null || true
        mkdir -p gopath/go_subdir_import/src/testdir/go_subdir_import 2>/dev/null || true
        $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
        SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
        LIBS='$(LIBS)' INTERFACEPATH='$(SRCDIR)$(INTERFACEDIR)go_subdir_import_b.i' \
        INCLUDES='$(INCLUDES)' SWIGOPT='$(SWIGOPT) -outdir .' NOLINK=true \
        TARGET='$(TARGETPREFIX)go_subdir_import_b$(TARGETSUFFIX)' INTERFACEDIR='$(INTERFACEDIR)' \
        INTERFACE='testdir/go_subdir_import/go_subdir_import_b.i' \
        GOMOD="go_subdir_import" \
        $(LANGUAGE)$(VARIANT)_cpp;
        +for f in testdir/go_subdir_import/go_subdir_import_c go_subdir_import_a ; do \
          $(call swig_and_compile_cpp_helper,$${f},'$(SWIGOPT)') GOMOD="go_subdir_import"; \
        done
        $(run_multi_testcase)

go_multicpp_setup = \
        mkdir -p gopath/$*/src 2>/dev/null || true; \
        if ! test -d gopath/$*/src/swigtests; then \
          (cd gopath/$*/src && ln -s . swigtests); \
        fi

# Runs the testcase.
run_testcase = \
        if test -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); then \
          GOPATH=`pwd`/gopath/; \
          export GOPATH; \
          CGO_CPPFLAGS="$(CPPFLAGS) $(INCLUDES) -I `cd $(SRCDIR) && pwd` -I `pwd`"; \
          export CGO_CPPFLAGS; \
          CGO_CFLAGS="$(CFLAGS)"; \
          export CGO_CFLAGS; \
          CGO_CXXFLAGS="$(CXXFLAGS)"; \
          export CGO_CXXFLAGS; \
          CGO_LDFLAGS="$(LDFLAGS) -lm"; \
          export CGO_LDFLAGS; \
          mkdir gopath/src/swigtests 2>/dev/null || true; \
          mkdir gopath/src/swigtests/$* 2>/dev/null || true; \
          cp gopath/src/$*/* gopath/src/swigtests/$*/; \
          mkdir gopath/src/$*/runme 2>/dev/null || true; \
          cp $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) gopath/src/$*/runme/runme.go; \
          (cd gopath/src/$*/runme && $(COMPILETOOL) $(GO) build `if $(GOGCC); then echo -compiler=gccgo; fi` -o runme runme.go); \
          cp gopath/src/$*/runme/runme $*_runme; \
          env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./$*_runme; \
        fi

run_testcase_cpp = \
        if test -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); then \
          GOPATH=`pwd`/gopath/; \
          export GOPATH; \
          CGO_CPPFLAGS="$(CPPFLAGS) $(INCLUDES) -I `cd $(SRCDIR) && pwd` -I `pwd`"; \
          export CGO_CPPFLAGS; \
          CGO_CFLAGS="$(CFLAGS)"; \
          export CGO_CFLAGS; \
          CGO_CXXFLAGS="$(CXXFLAGS)"; \
          export CGO_CXXFLAGS; \
          CGO_LDFLAGS="$(LDFLAGS) -lm"; \
          export CGO_LDFLAGS; \
          mkdir gopath/src/swigtests 2>/dev/null || true; \
          mkdir gopath/src/swigtests/$* 2>/dev/null || true; \
          cp gopath/src/$*/* gopath/src/swigtests/$*/; \
          mkdir gopath/src/$*/runme 2>/dev/null || true; \
          cp $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) gopath/src/$*/runme/runme.go; \
          (cd gopath/src/$*/runme && $(COMPILETOOL) $(GO) build `if $(GOGCC); then echo -compiler=gccgo; fi` -o runme runme.go); \
          cp gopath/src/$*/runme/runme $*_runme; \
          env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./$*_runme; \
        fi

run_multi_testcase = \
        if test -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); then \
          files=`cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list`; \
          mkdir gopath/$*/src/$* 2>/dev/null || true; \
          cp $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) gopath/$*/src/$*; \
          GOPATH="`pwd`/gopath/$*"; \
          export GOPATH; \
          CGO_CPPFLAGS="$(CPPFLAGS) $(INCLUDES) `for f in $$files; do echo -I ../$$f; done`"; \
          export CGO_CPPFLAGS; \
          CGO_CFLAGS="$(CFLAGS)"; \
          export CGO_CFLAGS; \
          CGO_CXXFLAGS="$(CXXFLAGS)"; \
          export CGO_CXXFLAGS; \
          CGO_LDFLAGS="$(LDFLAGS) -lm"; \
          export CGO_LDFLAGS; \
          (cd gopath/$*/src/$* && \
            $(GO) build `if $(GOGCC); then echo -compiler=gccgo; fi` -o ../../../../$*_runme) && \
          env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./$*_runme; \
        fi

%.clean:
        @rm -rf $*.go $*_gc.c $*_wrap.* $*_runme $*.gox $*.a

clean:
        $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' go_clean
        rm -f clientdata_prop_a.go clientdata_prop_a.gox
        rm -f clientdata_prop_b.go clientdata_prop_b.gox
        rm -f import_stl_a.go import_stl_a.gox
        rm -f import_stl_b.go import_stl_b.gox
        rm -f imports_a.go imports_a.gox imports_b.go imports_b.gox
        rm -f mod_a.go mod_a.gox mod_b.go mod_b.gox
        rm -f multi_import_a.go multi_import_a.gox
        rm -f multi_import_b.go multi_import_b.gox
        rm -f multi_import_d.go multi_import_d.gox
        rm -f packageoption_a.go packageoption_a.gox
        rm -f packageoption_b.go packageoption_b.gox
        rm -f packageoption_c.go packageoption_c.gox
        rm -f template_typedef_cplx2.go template_typedef_cplx2.gox
        rm -rf go_subdir_import_a.go go_subdir_import_a.gox testdir
        rm -rf gopath

Generated by dwww version 1.15 on Tue Jul 2 00:37:33 CEST 2024.