Merge pull request #1393 from ZackerySpytz/OCaml-examples
[OCaml] Fix some of the OCaml examples
This commit is contained in:
commit
4e4bb54fe7
21 changed files with 83 additions and 86 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -164,8 +164,8 @@ Examples/test-suite/ocaml/*.cm*
|
||||||
Examples/test-suite/ocaml/runme
|
Examples/test-suite/ocaml/runme
|
||||||
!Examples/test-suite/ocaml/*runme.ml
|
!Examples/test-suite/ocaml/*runme.ml
|
||||||
Examples/ocaml/**/example.ml*
|
Examples/ocaml/**/example.ml*
|
||||||
Examples/ocaml/**/example
|
Examples/ocaml/**/runme
|
||||||
Examples/ocaml/**/example_top
|
Examples/ocaml/**/runme_top
|
||||||
Examples/ocaml/**/*.cm*
|
Examples/ocaml/**/*.cm*
|
||||||
Examples/ocaml/**/swig.ml*
|
Examples/ocaml/**/swig.ml*
|
||||||
Examples/ocaml/**/swigp4.ml
|
Examples/ocaml/**/swigp4.ml
|
||||||
|
|
|
||||||
|
|
@ -919,7 +919,7 @@ ocaml_static: $(SRCDIR_SRCS)
|
||||||
$(OCC) -g -c $(INTERFACE:%.i=%.mli)
|
$(OCC) -g -c $(INTERFACE:%.i=%.mli)
|
||||||
$(OCC) -w -U -g -c $(INTERFACE:%.i=%.ml)
|
$(OCC) -w -U -g -c $(INTERFACE:%.i=%.ml)
|
||||||
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
||||||
$(NOLINK) || $(OCC) -g -ccopt -g -cclib -g -custom -o $(TARGET) swig.cmo $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)"
|
$(NOLINK) || $(OCC) -g -ccopt -g -cclib -g -custom -o $(RUNME) swig.cmo $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)"
|
||||||
|
|
||||||
ocaml_dynamic: $(SRCDIR_SRCS)
|
ocaml_dynamic: $(SRCDIR_SRCS)
|
||||||
$(OCAMLCORE)
|
$(OCAMLCORE)
|
||||||
|
|
@ -931,7 +931,7 @@ ocaml_dynamic: $(SRCDIR_SRCS)
|
||||||
rm $(INTERFACE:%.i=%.mli)
|
rm $(INTERFACE:%.i=%.mli)
|
||||||
$(OCAMLFIND) $(OCC) -g -c -package dl $(INTERFACE:%.i=%.ml)
|
$(OCAMLFIND) $(OCC) -g -c -package dl $(INTERFACE:%.i=%.ml)
|
||||||
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
||||||
$(NOLINK) || $(OCAMLFIND) $(OCC) -g -ccopt -g -cclib -g -custom -o $(TARGET) swig.cmo -package dl -linkpkg $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo)
|
$(NOLINK) || $(OCAMLFIND) $(OCC) -g -ccopt -g -cclib -g -custom -o $(RUNME) swig.cmo -package dl -linkpkg $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo)
|
||||||
|
|
||||||
ocaml_static_toplevel: $(SRCDIR_SRCS)
|
ocaml_static_toplevel: $(SRCDIR_SRCS)
|
||||||
$(OCAMLCORE)
|
$(OCAMLCORE)
|
||||||
|
|
@ -940,7 +940,7 @@ ocaml_static_toplevel: $(SRCDIR_SRCS)
|
||||||
$(OCC) -g -c $(INTERFACE:%.i=%.mli)
|
$(OCC) -g -c $(INTERFACE:%.i=%.mli)
|
||||||
$(OCC) -w -U -g -c $(INTERFACE:%.i=%.ml)
|
$(OCC) -w -U -g -c $(INTERFACE:%.i=%.ml)
|
||||||
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
||||||
$(NOLINK) || $(OCAMLMKTOP) swig.cmo -I $(OCAMLP4WHERE) camlp4o.cma swigp4.cmo -g -ccopt -g -cclib -g -custom -o $(TARGET)_top $(INTERFACE:%.i=%.cmo) $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)"
|
$(NOLINK) || $(OCAMLMKTOP) swig.cmo -I $(OCAMLP4WHERE) camlp4o.cma swigp4.cmo -g -ccopt -g -cclib -g -custom -o $(RUNME)_top $(INTERFACE:%.i=%.cmo) $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)"
|
||||||
|
|
||||||
ocaml_static_cpp: $(SRCDIR_SRCS)
|
ocaml_static_cpp: $(SRCDIR_SRCS)
|
||||||
$(OCAMLCORE)
|
$(OCAMLCORE)
|
||||||
|
|
@ -950,7 +950,7 @@ ocaml_static_cpp: $(SRCDIR_SRCS)
|
||||||
$(OCC) -g -c $(INTERFACE:%.i=%.mli)
|
$(OCC) -g -c $(INTERFACE:%.i=%.mli)
|
||||||
$(OCC) -w -U -g -c $(INTERFACE:%.i=%.ml)
|
$(OCC) -w -U -g -c $(INTERFACE:%.i=%.ml)
|
||||||
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
||||||
$(NOLINK) || $(OCC) -g -ccopt -g -cclib -g -custom -o $(TARGET) swig.cmo $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)" -cc '$(CXX) -Wno-write-strings'
|
$(NOLINK) || $(OCC) -g -ccopt -g -cclib -g -custom -o $(RUNME) swig.cmo $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)" -cc '$(CXX) -Wno-write-strings'
|
||||||
|
|
||||||
ocaml_static_cpp_toplevel: $(SRCDIR_SRCS)
|
ocaml_static_cpp_toplevel: $(SRCDIR_SRCS)
|
||||||
$(OCAMLCORE)
|
$(OCAMLCORE)
|
||||||
|
|
@ -960,7 +960,7 @@ ocaml_static_cpp_toplevel: $(SRCDIR_SRCS)
|
||||||
$(OCC) -g -c $(INTERFACE:%.i=%.mli)
|
$(OCC) -g -c $(INTERFACE:%.i=%.mli)
|
||||||
$(OCC) -w -U -g -c $(INTERFACE:%.i=%.ml)
|
$(OCC) -w -U -g -c $(INTERFACE:%.i=%.ml)
|
||||||
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
||||||
$(NOLINK) || $(OCAMLMKTOP) swig.cmo -I $(OCAMLP4WHERE) dynlink.cma camlp4o.cma swigp4.cmo -g -ccopt -g -cclib -g -custom -o $(TARGET)_top $(INTERFACE:%.i=%.cmo) $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)" -cc '$(CXX) -Wno-write-strings'
|
$(NOLINK) || $(OCAMLMKTOP) swig.cmo -I $(OCAMLP4WHERE) dynlink.cma camlp4o.cma swigp4.cmo -g -ccopt -g -cclib -g -custom -o $(RUNME)_top $(INTERFACE:%.i=%.cmo) $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)" -cc '$(CXX) -Wno-write-strings'
|
||||||
|
|
||||||
ocaml_dynamic_cpp: $(SRCDIR_SRCS)
|
ocaml_dynamic_cpp: $(SRCDIR_SRCS)
|
||||||
$(OCAMLCORE)
|
$(OCAMLCORE)
|
||||||
|
|
@ -973,14 +973,14 @@ ocaml_dynamic_cpp: $(SRCDIR_SRCS)
|
||||||
rm $(INTERFACE:%.i=%.mli)
|
rm $(INTERFACE:%.i=%.mli)
|
||||||
$(OCAMLFIND) $(OCC) -g -c -package dl $(INTERFACE:%.i=%.ml)
|
$(OCAMLFIND) $(OCC) -g -c -package dl $(INTERFACE:%.i=%.ml)
|
||||||
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
test -z "$(PROGFILE)" || $(OCC) -o $(PROGFILE:%.ml=%) $(OCAMLPP) -c $(SRCDIR)$(PROGFILE)
|
||||||
$(NOLINK) || $(OCAMLFIND) swig.cmo $(OCC) -cclib -export-dynamic -g -ccopt -g -cclib -g -custom -o $(TARGET) -package dl -linkpkg $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) -cc '$(CXX) -Wno-write-strings'
|
$(NOLINK) || $(OCAMLFIND) swig.cmo $(OCC) -cclib -export-dynamic -g -ccopt -g -cclib -g -custom -o $(RUNME) -package dl -linkpkg $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) -cc '$(CXX) -Wno-write-strings'
|
||||||
|
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
# Run ocaml example
|
# Run ocaml example
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
|
|
||||||
ocaml_run:
|
ocaml_run:
|
||||||
$(RUNTOOL) ./$(TARGET) $(RUNPIPE)
|
$(RUNTOOL) ./$(RUNME) $(RUNPIPE)
|
||||||
|
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
# Version display
|
# Version display
|
||||||
|
|
@ -994,7 +994,7 @@ ocaml_version:
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
|
|
||||||
ocaml_clean:
|
ocaml_clean:
|
||||||
rm -f *_wrap* *~ .~* *.cmo *.cmi $(MLFILE) $(MLFILE)i swig.mli swig.cmi swig.ml swig.cmo swigp4.ml swigp4.cmo
|
rm -f *_wrap* *~ .~* *.cmo *.cmi *.mli $(TARGET).ml $(RUNME) $(RUNME)_top swig.ml swigp4.ml
|
||||||
rm -f core @EXTRA_CLEAN@
|
rm -f core @EXTRA_CLEAN@
|
||||||
rm -f *.@OBJEXT@ *@SO@
|
rm -f *.@OBJEXT@ *@SO@
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@ SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
|
||||||
SRCS = example.c
|
SRCS = example.c
|
||||||
TARGET = example
|
TARGET = example
|
||||||
INTERFACE = example.i
|
INTERFACE = example.i
|
||||||
MLFILE = example.ml
|
PROGFILE = runme.ml
|
||||||
PROGFILE = example_prog.ml
|
|
||||||
OBJS = example.o
|
OBJS = example.o
|
||||||
|
|
||||||
check: build
|
check: build
|
||||||
|
|
@ -16,16 +15,16 @@ build: static
|
||||||
static:
|
static:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static_cpp
|
ocaml_static_cpp
|
||||||
|
|
||||||
dynamic:
|
dynamic:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_dynamic_cpp
|
ocaml_dynamic_cpp
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' MLFILE='$(MLFILE)' ocaml_clean
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' TARGET='$(TARGET)' ocaml_clean
|
||||||
|
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
(* example_prog.ml *)
|
|
||||||
|
|
||||||
open Swig
|
|
||||||
open Example
|
|
||||||
|
|
||||||
exception BadReturn
|
|
||||||
|
|
||||||
let _ = if Array.length Sys.argv < 3 then
|
|
||||||
begin
|
|
||||||
print_endline
|
|
||||||
("Usage: " ^ Sys.argv.(0) ^ " n1 n2\n" ^
|
|
||||||
" Displays the least factors of the numbers that have the same\n" ^
|
|
||||||
" relationship, 16 12 -> 4 3\n") ;
|
|
||||||
exit 0
|
|
||||||
end
|
|
||||||
|
|
||||||
let x = int_of_string Sys.argv.(1)
|
|
||||||
let y = int_of_string Sys.argv.(2)
|
|
||||||
let (xf,yf) = match _factor '((x to int),(y to int)) with
|
|
||||||
C_list [ C_int a ; C_int b ] -> a,b
|
|
||||||
| _ -> raise BadReturn
|
|
||||||
let _ = print_endline
|
|
||||||
("Factorization of " ^ (string_of_int x) ^
|
|
||||||
" and " ^ (string_of_int y) ^
|
|
||||||
" is " ^ (string_of_int xf) ^
|
|
||||||
" and " ^ (string_of_int yf))
|
|
||||||
17
Examples/ocaml/argout_ref/runme.ml
Normal file
17
Examples/ocaml/argout_ref/runme.ml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
(* runme.ml *)
|
||||||
|
|
||||||
|
open Swig
|
||||||
|
open Example
|
||||||
|
|
||||||
|
exception BadReturn
|
||||||
|
|
||||||
|
let x = if Array.length Sys.argv > 1 then int_of_string Sys.argv.(1) else 16
|
||||||
|
let y = if Array.length Sys.argv > 2 then int_of_string Sys.argv.(2) else 12
|
||||||
|
let (xf,yf) = match _factor '((x to int),(y to int)) with
|
||||||
|
C_list [ C_int a ; C_int b ] -> a,b
|
||||||
|
| _ -> raise BadReturn
|
||||||
|
let _ = print_endline
|
||||||
|
("Factorization of " ^ (string_of_int x) ^
|
||||||
|
" and " ^ (string_of_int y) ^
|
||||||
|
" is " ^ (string_of_int xf) ^
|
||||||
|
" and " ^ (string_of_int yf))
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# see top-level Makefile.in
|
# see top-level Makefile.in
|
||||||
simple
|
simple
|
||||||
std_string
|
#std_string
|
||||||
std_vector
|
std_vector
|
||||||
stl
|
stl
|
||||||
argout_ref
|
argout_ref
|
||||||
|
|
@ -8,3 +8,4 @@ shapes
|
||||||
contract
|
contract
|
||||||
scoped_enum
|
scoped_enum
|
||||||
string_from_ptr
|
string_from_ptr
|
||||||
|
strings_test
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@ SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
|
||||||
SRCS =
|
SRCS =
|
||||||
TARGET = example
|
TARGET = example
|
||||||
INTERFACE = example.i
|
INTERFACE = example.i
|
||||||
MLFILE = example.ml
|
PROGFILE = runme.ml
|
||||||
PROGFILE = example_prog.ml
|
|
||||||
OBJS =
|
OBJS =
|
||||||
|
|
||||||
check: build
|
check: build
|
||||||
|
|
@ -16,23 +15,23 @@ build: static
|
||||||
dynamic:
|
dynamic:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_dynamic
|
ocaml_dynamic
|
||||||
|
|
||||||
static:
|
static:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static
|
ocaml_static
|
||||||
|
|
||||||
toplevel:
|
toplevel:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static_toplevel
|
ocaml_static_toplevel
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' MLFILE='$(MLFILE)' ocaml_clean
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' TARGET='$(TARGET)' ocaml_clean
|
||||||
|
|
|
||||||
|
|
@ -4,4 +4,9 @@ open Example
|
||||||
let _ = print_endline "This won't throw."
|
let _ = print_endline "This won't throw."
|
||||||
let _ = Printf.printf "Cos 1.0 is %f\n" (_cos '(1.0) as float)
|
let _ = Printf.printf "Cos 1.0 is %f\n" (_cos '(1.0) as float)
|
||||||
let _ = print_endline "This will throw."
|
let _ = print_endline "This will throw."
|
||||||
let _ = Printf.printf "Cos 5.0 is %f\n" (_cos '(5.0) as float)
|
let _ =
|
||||||
|
try
|
||||||
|
Printf.printf "Cos 5.0 is %f\n" (_cos '(5.0) as float)
|
||||||
|
with Failure s ->
|
||||||
|
print_endline s ;
|
||||||
|
print_endline "Exception thrown."
|
||||||
|
|
@ -4,8 +4,7 @@ SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
|
||||||
SRCS =
|
SRCS =
|
||||||
TARGET = example
|
TARGET = example
|
||||||
INTERFACE = example.i
|
INTERFACE = example.i
|
||||||
MLFILE = example.ml
|
PROGFILE = runme.ml
|
||||||
PROGFILE = example_prog.ml
|
|
||||||
OBJS =
|
OBJS =
|
||||||
|
|
||||||
check: build
|
check: build
|
||||||
|
|
@ -16,23 +15,23 @@ build: static
|
||||||
dynamic:
|
dynamic:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_dynamic_cpp
|
ocaml_dynamic_cpp
|
||||||
|
|
||||||
static:
|
static:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static_cpp
|
ocaml_static_cpp
|
||||||
|
|
||||||
toplevel:
|
toplevel:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static_cpp_toplevel
|
ocaml_static_cpp_toplevel
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' MLFILE='$(MLFILE)' ocaml_clean
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' TARGET='$(TARGET)' ocaml_clean
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
open Swig
|
|
||||||
open Example
|
|
||||||
|
|
||||||
let _ = _f (match Sys.argv.(1) with "Tag1" -> ``Tag1 | _ -> ``Tag2)
|
|
||||||
5
Examples/ocaml/scoped_enum/runme.ml
Normal file
5
Examples/ocaml/scoped_enum/runme.ml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
open Swig
|
||||||
|
open Example
|
||||||
|
|
||||||
|
let arg = if Array.length Sys.argv > 1 then Sys.argv.(1) else "Tag1"
|
||||||
|
let _ = _f (match arg with "Tag1" -> ``Tag1 | _ -> ``Tag2)
|
||||||
|
|
@ -5,8 +5,7 @@ SWIGOPT =
|
||||||
SRCS = example.c
|
SRCS = example.c
|
||||||
TARGET = example
|
TARGET = example
|
||||||
INTERFACE = example.i
|
INTERFACE = example.i
|
||||||
MLFILE = example.ml
|
PROGFILE = runme.ml
|
||||||
PROGFILE = example_prog.ml
|
|
||||||
OBJS = example.o
|
OBJS = example.o
|
||||||
|
|
||||||
check: build
|
check: build
|
||||||
|
|
@ -18,22 +17,22 @@ static:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static_cpp
|
ocaml_static_cpp
|
||||||
|
|
||||||
static_top:
|
static_top:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static_cpp_toplevel
|
ocaml_static_cpp_toplevel
|
||||||
|
|
||||||
dynamic:
|
dynamic:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)'
|
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)'
|
||||||
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_dynamic_cpp
|
ocaml_dynamic_cpp
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' MLFILE='$(MLFILE)' ocaml_clean
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' TARGET='$(TARGET)' ocaml_clean
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
(* example_prog.ml *)
|
(* runme.ml *)
|
||||||
|
|
||||||
open Swig ;;
|
open Swig ;;
|
||||||
open Example ;;
|
open Example ;;
|
||||||
|
|
@ -4,8 +4,7 @@ SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
|
||||||
SRCS = example.c
|
SRCS = example.c
|
||||||
TARGET = example
|
TARGET = example
|
||||||
INTERFACE = example.i
|
INTERFACE = example.i
|
||||||
MLFILE = example.ml
|
PROGFILE = runme.ml
|
||||||
PROGFILE = example_prog.ml
|
|
||||||
OBJS = example.o
|
OBJS = example.o
|
||||||
|
|
||||||
check: build
|
check: build
|
||||||
|
|
@ -16,23 +15,23 @@ build: static
|
||||||
dynamic:
|
dynamic:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_dynamic
|
ocaml_dynamic
|
||||||
|
|
||||||
static:
|
static:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static
|
ocaml_static
|
||||||
|
|
||||||
toplevel:
|
toplevel:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
|
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static_toplevel
|
ocaml_static_toplevel
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' MLFILE='$(MLFILE)' ocaml_clean
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' TARGET='$(TARGET)' ocaml_clean
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
(* example_prog.ml *)
|
(* runme.ml *)
|
||||||
|
|
||||||
open Swig
|
open Swig
|
||||||
open Example
|
open Example
|
||||||
|
|
@ -14,7 +14,7 @@ let print_DoubleVector v =
|
||||||
(fun v i ->
|
(fun v i ->
|
||||||
print_float ((v '[i to int]) as float) ;
|
print_float ((v '[i to int]) as float) ;
|
||||||
print_string " ") ;
|
print_string " ") ;
|
||||||
print_endline
|
print_endline ""
|
||||||
end
|
end
|
||||||
|
|
||||||
(* Call average with a Ocaml array... *)
|
(* Call average with a Ocaml array... *)
|
||||||
|
|
@ -27,7 +27,7 @@ let rec fill_dv v x =
|
||||||
fill_dv v (x *. x)
|
fill_dv v (x *. x)
|
||||||
end
|
end
|
||||||
let _ = fill_dv v 0.999
|
let _ = fill_dv v 0.999
|
||||||
let _ = print_DoubleVector v ; print_endline ""
|
let _ = print_DoubleVector v
|
||||||
let u = new_IntVector '()
|
let u = new_IntVector '()
|
||||||
let _ = for i = 1 to 4 do
|
let _ = for i = 1 to 4 do
|
||||||
u -> push_back ((i to int))
|
u -> push_back ((i to int))
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,8 @@ SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
|
||||||
SWIGOPT = -c++
|
SWIGOPT = -c++
|
||||||
SRCS =
|
SRCS =
|
||||||
TARGET = example
|
TARGET = example
|
||||||
INTERFACE = foolib.i
|
INTERFACE = example.i
|
||||||
MLFILE = foolib.ml
|
PROGFILE = runme.ml
|
||||||
PROGFILE = example_prog.ml
|
|
||||||
OBJS =
|
OBJS =
|
||||||
|
|
||||||
check: build
|
check: build
|
||||||
|
|
@ -18,22 +17,22 @@ static:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static_cpp
|
ocaml_static_cpp
|
||||||
|
|
||||||
static_top:
|
static_top:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||||
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_static_cpp_toplevel
|
ocaml_static_cpp_toplevel
|
||||||
|
|
||||||
dynamic:
|
dynamic:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)'
|
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)'
|
||||||
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
|
||||||
ocaml_dynamic_cpp
|
ocaml_dynamic_cpp
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' MLFILE='$(MLFILE)' ocaml_clean
|
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' TARGET='$(TARGET)' ocaml_clean
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
%module foolib
|
%module example
|
||||||
%{
|
%{
|
||||||
static int foo( char **buf ) {
|
static int foo( char **buf ) {
|
||||||
*buf = "string from c";
|
*buf = "string from c";
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
(* foo_program.ml -- the program using foolib *)
|
|
||||||
|
|
||||||
open Swig (* Give access to the swig library *)
|
open Swig (* Give access to the swig library *)
|
||||||
open Foolib (* This is the name of your swig output *)
|
open Example (* This is the name of your swig output *)
|
||||||
|
|
||||||
let results = _foo '() (* Function names are prefixed with _ in order to make
|
let results = _foo '() (* Function names are prefixed with _ in order to make
|
||||||
them lex as identifiers in ocaml. Consider that
|
them lex as identifiers in ocaml. Consider that
|
||||||
|
|
@ -11,4 +11,5 @@ using std::string;
|
||||||
#include "example.h"
|
#include "example.h"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
%include "std_string.i"
|
||||||
%include example.h
|
%include example.h
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ default_constructor \
|
||||||
director_binary_string \
|
director_binary_string \
|
||||||
director_enum \
|
director_enum \
|
||||||
director_exception \
|
director_exception \
|
||||||
|
director_exception_nothrow \
|
||||||
director_ignore \
|
director_ignore \
|
||||||
director_nested \
|
director_nested \
|
||||||
director_pass_by_value \
|
director_pass_by_value \
|
||||||
|
|
@ -30,6 +31,7 @@ director_redefined \
|
||||||
director_string \
|
director_string \
|
||||||
director_using \
|
director_using \
|
||||||
enum_thorough \
|
enum_thorough \
|
||||||
|
li_windows \
|
||||||
member_pointer_const \
|
member_pointer_const \
|
||||||
minherit \
|
minherit \
|
||||||
nested_directors \
|
nested_directors \
|
||||||
|
|
@ -86,6 +88,10 @@ include $(srcdir)/../common.mk
|
||||||
# Clean
|
# Clean
|
||||||
%.clean:
|
%.clean:
|
||||||
@rm -f $*.ml $*.mli;
|
@rm -f $*.ml $*.mli;
|
||||||
|
@if test $(srcdir) != .; then rm -f $(ml_runme); fi
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' ocaml_clean
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' ocaml_clean
|
||||||
|
rm -f clientdata_prop_a.ml clientdata_prop_b.ml import_stl_a.ml import_stl_b.ml
|
||||||
|
rm -f imports_a.ml imports_b.ml mod_a.ml mod_b.ml multi_import_a.ml
|
||||||
|
rm -f multi_import_b.ml packageoption_a.ml packageoption_b.ml packageoption_c.ml
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue