summaryrefslogtreecommitdiff
path: root/Examples/d/example.mk.in
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/d/example.mk.in')
-rw-r--r--Examples/d/example.mk.in59
1 files changed, 59 insertions, 0 deletions
diff --git a/Examples/d/example.mk.in b/Examples/d/example.mk.in
new file mode 100644
index 000000000..a1d9a85fc
--- /dev/null
+++ b/Examples/d/example.mk.in
@@ -0,0 +1,59 @@
+#
+# 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
+DFLAGS = -ofrunme
+
+ifeq (,$(SRCDIR))
+DSRCS = *.d
+else
+DSRCS = *.d $(addprefix ../$(SRCDIR)$(VERSION_DIR),runme.d)
+endif
+
+
+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) -C $(VERSION_DIR) -f $(EXAMPLES_TOP)/Makefile SRCDIR='../$(SRCDIR)' DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile
+
+clean:
+ if [ -d $(VERSION_DIR) ]; then \
+ $(MAKE) -C $(VERSION_DIR) -f $(EXAMPLES_TOP)/Makefile SRCDIR='../$(SRCDIR)' d_clean; \
+ fi
+ test -f $(VERSION_DIR)runme.d || rm -rf $(VERSION_DIR) # Only delete dir if out of source