diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 0000000..18bad73 --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,10 @@ +.PHONY: clean-c_binding c_binding + +all: c_binding +clean: clean-c_binding + +c_binding: + $(MAKE) -C $@ + +clean-c_binding: + $(MAKE) -C $(subst clean-,,$@) clean diff --git a/tests/c_binding/Makefile b/tests/c_binding/Makefile new file mode 100644 index 0000000..10db7b2 --- /dev/null +++ b/tests/c_binding/Makefile @@ -0,0 +1,13 @@ +.PHONY: pi + +all: calc.out + echo '3.141592653589793' | cmp - calc.out + +calc.out: calc + ./calc 'pi' | tee calc.out + +calc: calc.c calc.pl + swipl-ld -o calc calc.c calc.pl + +clean: + rm -f calc calc.out diff --git a/tests/c_binding/calc.c b/tests/c_binding/calc.c new file mode 100644 index 0000000..27390b9 --- /dev/null +++ b/tests/c_binding/calc.c @@ -0,0 +1,46 @@ +#include +#include + +#define MAXLINE 1024 + +int +main(int argc, char **argv) +{ char expression[MAXLINE]; + char *e = expression; + char *program = argv[0]; + char *plav[2]; + int n; + + /* combine all the arguments in a single string */ + + for(n=1; n