diff --git a/Examples/Makefile.in b/Examples/Makefile.in index 5162ba37f..ea4c65654 100644 --- a/Examples/Makefile.in +++ b/Examples/Makefile.in @@ -130,6 +130,7 @@ OBJS = $(SRCS:.c=.@OBJEXT@) $(CXXSRCS:.cxx=.@OBJEXT@) distclean: rm -f Makefile + rm -f d/example.mk rm -f xml/Makefile ################################################################## @@ -1875,7 +1876,7 @@ d_compile: $(SRCDIR_SRCS) # ----------------------------------------------------------------- d_run: - $(RUNTOOL) $(D_RUNME) $(RUNPIPE) + env LD_LIBRARY_PATH=$$PWD $(RUNTOOL) $(D_RUNME) $(RUNPIPE) # ----------------------------------------------------------------- # Version display diff --git a/Examples/d/callback/Makefile b/Examples/d/callback/Makefile index 72edc17a5..ad84231e1 100644 --- a/Examples/d/callback/Makefile +++ b/Examples/d/callback/Makefile @@ -1,27 +1 @@ -ifeq (2,$(D_VERSION)) - WORKING_DIR = d2/ -else - WORKING_DIR = d1/ -endif - -TOP = ../../.. -SWIG = $(TOP)/../preinst-swig -EXTRA_CFLAGS = -I../ ../example.cxx example_wrap.cxx -EXTRA_LDFLAGS = example.o example_wrap.o -TARGET = example_wrap -SWIGOPT = -DSRCS = *.d -DFLAGS = -ofrunme - -check: build - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_run - -build: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d_cpp; \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile - -clean: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_clean +include ../example.mk diff --git a/Examples/d/class/Makefile b/Examples/d/class/Makefile index 72edc17a5..ad84231e1 100644 --- a/Examples/d/class/Makefile +++ b/Examples/d/class/Makefile @@ -1,27 +1 @@ -ifeq (2,$(D_VERSION)) - WORKING_DIR = d2/ -else - WORKING_DIR = d1/ -endif - -TOP = ../../.. -SWIG = $(TOP)/../preinst-swig -EXTRA_CFLAGS = -I../ ../example.cxx example_wrap.cxx -EXTRA_LDFLAGS = example.o example_wrap.o -TARGET = example_wrap -SWIGOPT = -DSRCS = *.d -DFLAGS = -ofrunme - -check: build - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_run - -build: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d_cpp; \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile - -clean: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_clean +include ../example.mk diff --git a/Examples/d/constants/Makefile b/Examples/d/constants/Makefile index 609c7f660..ad84231e1 100644 --- a/Examples/d/constants/Makefile +++ b/Examples/d/constants/Makefile @@ -1,27 +1 @@ -ifeq (2,$(D_VERSION)) - WORKING_DIR = d2/ -else - WORKING_DIR = d1/ -endif - -TOP = ../../.. -SWIG = $(TOP)/../preinst-swig -EXTRA_CFLAGS = -I../ example_wrap.c -EXTRA_LDFLAGS = example_wrap.o -TARGET = example_wrap -SWIGOPT = -DSRCS = *.d -DFLAGS = -ofrunme - -check: build - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_run - -build: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d; \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile - -clean: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_clean +include ../example.mk diff --git a/Examples/d/constants/example.d b/Examples/d/constants/example.d deleted file mode 100644 index 7448d0ad9..000000000 --- a/Examples/d/constants/example.d +++ /dev/null @@ -1,23 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 1.3.41 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -module example; - -static import example_wrap; - -static import tango.stdc.stringz; - -public const int ICONST = 42; -public const double FCONST = 2.1828; -public const char CCONST = 'x'; -public const char CCONST2 = '\n'; -public const char[] SCONST = "Hello World"; -public const char[] SCONST2 = "\"Hello World\""; -public const double EXPR = 42+3*(2.1828); -public const int iconst = 37; -public const double fconst = 3.14; diff --git a/Examples/d/enum/Makefile b/Examples/d/enum/Makefile index 72edc17a5..ad84231e1 100644 --- a/Examples/d/enum/Makefile +++ b/Examples/d/enum/Makefile @@ -1,27 +1 @@ -ifeq (2,$(D_VERSION)) - WORKING_DIR = d2/ -else - WORKING_DIR = d1/ -endif - -TOP = ../../.. -SWIG = $(TOP)/../preinst-swig -EXTRA_CFLAGS = -I../ ../example.cxx example_wrap.cxx -EXTRA_LDFLAGS = example.o example_wrap.o -TARGET = example_wrap -SWIGOPT = -DSRCS = *.d -DFLAGS = -ofrunme - -check: build - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_run - -build: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d_cpp; \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile - -clean: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_clean +include ../example.mk diff --git a/Examples/d/example.mk.in b/Examples/d/example.mk.in new file mode 100644 index 000000000..7d0eb9c9d --- /dev/null +++ b/Examples/d/example.mk.in @@ -0,0 +1,50 @@ +# +# Common Makefile code for building D examples. +# +# We actually need to configure this to gain access to the default D version to +# use when D_VERSION is not set. Using Examples/Makefile.in is not enough, as +# the location of the source files (d1/ or d2/) depends on it. The alternative +# would be to add the functionality specific to Examples/d (as opposed to the +# test suite) directly to Examples/Makefile.in. +# +# This file is supposed to be included from a Makefile in the subdirectory +# corresponding to a specific example. +# + +ifeq (,$(D_VERSION)) + D_VERSION = @DDEFAULTVERSION@ +endif + +ifeq (1,$(D_VERSION)) + VERSION_DIR = d1/ +else + VERSION_DIR = d2/ +endif + +EXAMPLES_TOP = ../../.. +SWIG_TOP = ../../../.. +SWIG = $(SWIG_TOP)/preinst-swig +EXTRA_CFLAGS = +EXTRA_CXXFLAGS = +EXTRA_LDFLAGS = +TARGET = example_wrap +SWIGOPT = -outcurrentdir +DSRCS = *.d +DFLAGS = -ofrunme + +check: build + $(MAKE) -C $(VERSION_DIR) -f $(EXAMPLES_TOP)/Makefile SRCDIR='../$(SRCDIR)' d_run + +build: + mkdir -p $(VERSION_DIR) + if [ -f ../$(SRCDIR)example.cxx ]; then + $(MAKE) -C $(VERSION_DIR) -f $(EXAMPLES_TOP)/Makefile SRCDIR='../$(SRCDIR)' EXTRA_CXXFLAGS='$(EXTRA_CXXFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='example.i' CXXSRCS='example.cxx' d_cpp + elif [ -f ../$(SRCDIR)example.c ]; then + $(MAKE) -C $(VERSION_DIR) -f $(EXAMPLES_TOP)/Makefile SRCDIR='../$(SRCDIR)' EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='example.i' SRCS='example.c' d + else + $(MAKE) -C $(VERSION_DIR) -f $(EXAMPLES_TOP)/Makefile SRCDIR='../$(SRCDIR)' EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='example.i' SRCS='' d + fi + $(MAKE) -f $(EXAMPLES_TOP)/Makefile SRCDIR='../$(SRCDIR)' DSRCS='../$(SRCDIR)$(VERSION_DIR)runme.d $(DSRCS)' DFLAGS='$(DFLAGS)' d_compile + +clean: + $(MAKE) -C $(VERSION_DIR) -f $(EXAMPLES_TOP)/Makefile SRCDIR='../$(SRCDIR)' d_clean diff --git a/Examples/d/extend/Makefile b/Examples/d/extend/Makefile index 72edc17a5..ad84231e1 100644 --- a/Examples/d/extend/Makefile +++ b/Examples/d/extend/Makefile @@ -1,27 +1 @@ -ifeq (2,$(D_VERSION)) - WORKING_DIR = d2/ -else - WORKING_DIR = d1/ -endif - -TOP = ../../.. -SWIG = $(TOP)/../preinst-swig -EXTRA_CFLAGS = -I../ ../example.cxx example_wrap.cxx -EXTRA_LDFLAGS = example.o example_wrap.o -TARGET = example_wrap -SWIGOPT = -DSRCS = *.d -DFLAGS = -ofrunme - -check: build - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_run - -build: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d_cpp; \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile - -clean: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_clean +include ../example.mk diff --git a/Examples/d/funcptr/Makefile b/Examples/d/funcptr/Makefile index 6554c3c73..ad84231e1 100644 --- a/Examples/d/funcptr/Makefile +++ b/Examples/d/funcptr/Makefile @@ -1,27 +1 @@ -ifeq (2,$(D_VERSION)) - WORKING_DIR = d2/ -else - WORKING_DIR = d1/ -endif - -TOP = ../../.. -SWIG = $(TOP)/../preinst-swig -EXTRA_CFLAGS = -I../ ../example.c example_wrap.c -EXTRA_LDFLAGS = example.o example_wrap.o -TARGET = example_wrap -SWIGOPT = -DSRCS = *.d -DFLAGS = -ofrunme - -check: build - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_run - -build: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d; \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile - -clean: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_clean +include ../example.mk diff --git a/Examples/d/simple/Makefile b/Examples/d/simple/Makefile index f5eed3210..ad84231e1 100644 --- a/Examples/d/simple/Makefile +++ b/Examples/d/simple/Makefile @@ -1,27 +1 @@ -ifeq (2,$(D_VERSION)) - WORKING_DIR = d2/ -else - WORKING_DIR = d1/ -endif - -TOP = ../../.. -SWIG = $(TOP)/../preinst-swig -EXTRA_CFLAGS = -I../ ../example.c example_wrap.c -EXTRA_LDFLAGS = example.o example_wrap.o -TARGET = example_wrap -SWIGOPT = -DSRCS = *.d -DFLAGS = -ofrunme - -check: build - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_run - -build: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d; \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile - -clean: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_clean +include ../example.mk diff --git a/Examples/d/variables/Makefile b/Examples/d/variables/Makefile index f5eed3210..ad84231e1 100644 --- a/Examples/d/variables/Makefile +++ b/Examples/d/variables/Makefile @@ -1,27 +1 @@ -ifeq (2,$(D_VERSION)) - WORKING_DIR = d2/ -else - WORKING_DIR = d1/ -endif - -TOP = ../../.. -SWIG = $(TOP)/../preinst-swig -EXTRA_CFLAGS = -I../ ../example.c example_wrap.c -EXTRA_LDFLAGS = example.o example_wrap.o -TARGET = example_wrap -SWIGOPT = -DSRCS = *.d -DFLAGS = -ofrunme - -check: build - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_run - -build: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d; \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile - -clean: - cd $(WORKING_DIR); \ - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' d_clean +include ../example.mk diff --git a/configure.ac b/configure.ac index 22d66d1ef..b05933527 100644 --- a/configure.ac +++ b/configure.ac @@ -2675,6 +2675,7 @@ AC_CONFIG_FILES([ Makefile swig.spec Examples/Makefile + Examples/d/example.mk Examples/xml/Makefile Examples/test-suite/errors/Makefile Examples/test-suite/chicken/Makefile