summaryrefslogtreecommitdiff
path: root/Examples/php/constants
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/php/constants')
-rw-r--r--Examples/php/constants/Makefile24
-rw-r--r--Examples/php/constants/example.i26
-rw-r--r--Examples/php/constants/runme.php28
3 files changed, 78 insertions, 0 deletions
diff --git a/Examples/php/constants/Makefile b/Examples/php/constants/Makefile
new file mode 100644
index 0000000..23e2675
--- /dev/null
+++ b/Examples/php/constants/Makefile
@@ -0,0 +1,24 @@
+TOP = ../..
+SWIG = $(TOP)/../preinst-swig
+SRCS =
+TARGET = example
+INTERFACE = example.i
+LIBS =
+SWIGOPT =
+
+all::
+ $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
+ SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
+ php
+
+static::
+ $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
+ SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
+ php_static
+
+clean::
+ $(MAKE) -f $(TOP)/Makefile php_clean
+ rm -f $(TARGET).php
+
+check: all
+ $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/constants/example.i b/Examples/php/constants/example.i
new file mode 100644
index 0000000..0098a89
--- /dev/null
+++ b/Examples/php/constants/example.i
@@ -0,0 +1,26 @@
+/* File : example.i */
+%module example
+
+/* A few preprocessor macros */
+
+#define ICONST 42
+#define FCONST 2.1828
+#define CCONST 'x'
+#define CCONST2 '\n'
+#define SCONST "Hello World"
+#define SCONST2 "\"Hello World\""
+
+/* This should work just fine */
+#define EXPR ICONST + 3*(FCONST)
+
+/* This shouldn't do anything */
+#define EXTERN extern
+
+/* Neither should this (BAR isn't defined) */
+#define FOO (ICONST + BAR)
+
+/* The following statements also produce constants */
+%constant int iconst = 37;
+%constant double fconst = 3.14;
+
+
diff --git a/Examples/php/constants/runme.php b/Examples/php/constants/runme.php
new file mode 100644
index 0000000..cea0648
--- /dev/null
+++ b/Examples/php/constants/runme.php
@@ -0,0 +1,28 @@
+<?php
+
+require "example.php";
+
+print "ICONST = " . ICONST . " (should be 42)\n";
+print "FCONST = " . FCONST . " (should be 2.1828)\n";
+print "CCONST = " . CCONST . " (should be 'x')\n";
+print "CCONST2 = " . CCONST2 . " (this should be on a new line)\n";
+print "SCONST = " . SCONST . " (should be 'Hello World')\n";
+print "SCONST2 = " . SCONST2 . " (should be '\"Hello World\"')\n";
+print "EXPR = " . EXPR . " (should be 48.5484)\n";
+print "iconst = " . iconst . " (should be 37)\n";
+print "fconst = " . fconst . " (should be 3.14)\n";
+
+if (EXTERN!="EXTERN") {
+ print "EXTERN = " . EXTERN . " (Arg! This shouldn't print anything)\n";
+} else {
+ print "EXTERN defaults to 'EXTERN', it probably isn't defined (good)\n";
+}
+
+if (FOO!="FOO") {
+ print "FOO = " . FOO . "(Arg! This shouldn't print anything)\n";
+} else {
+ print "FOO defaults to 'FOO', it probably isn't defined (good)\n";
+}
+
+
+?>