From 640c14e03243d0ee9b714e82fe4de385fd2f9e7b Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Mon, 28 Aug 2017 15:40:16 -0400 Subject: [PATCH] added top-level module for tide library --- .gitignore | 1 + Makefile | 31 ++++++++++++++++++++++++------- deps.mk | 7 +++++++ edit.ml | 7 +++++++ lib/tide.ml | 5 +++++ lib/tide.mli | 2 ++ tide.ml | 6 ------ 7 files changed, 46 insertions(+), 13 deletions(-) create mode 100644 deps.mk create mode 100644 edit.ml create mode 100644 lib/tide.ml create mode 100644 lib/tide.mli delete mode 100644 tide.ml diff --git a/.gitignore b/.gitignore index dfd218e..ac738f1 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ *.cmxa *.cmi *.a +edit diff --git a/Makefile b/Makefile index dffd798..3858c06 100644 --- a/Makefile +++ b/Makefile @@ -2,9 +2,10 @@ #------------------------------------------------------------------------------- ifeq ($(NATIVE), 1) OC = ocamlopt - OCFLAGS = -compact + OCFLAGS = MKLIB = ocamlmklib MKLIBFLAGS = -custom + IFEXT = cmi OBJEXT = cmx LIBEXT = cmxa OLDFLAGS = -compact -ccopt -dead_strip @@ -13,6 +14,7 @@ else OCFLAGS = MKLIB = ocamlmklib MKLIBFLAGS = + IFEXT = cmi OBJEXT = cmo LIBEXT = cma OLDFLAGS = -dllpath . @@ -20,27 +22,42 @@ endif # Target Definitions #------------------------------------------------------------------------------- +LIBOBJS = \ + lib/tide.$(OBJEXT) \ + lib/env.$(OBJEXT) \ + lib/env_prims.o + .PHONY: all clean -all: tide +all: edit clean: $(RM) tide *.cm* *.o *.a *.so $(RM) tide lib/*.cm* lib/*.o -env.$(LIBEXT): lib/env.$(OBJEXT) lib/env_prims.o -tide: env.$(LIBEXT) tide.$(OBJEXT) +# Executable targets +edit: tide.$(LIBEXT) edit.$(OBJEXT) + +# Library targets +tide.$(LIBEXT): $(LIBOBJS) +lib/tide.$(OBJEXT): lib/tide.$(IFEXT) + +-include deps.mk # Implicit Rule Definitions #------------------------------------------------------------------------------- %: $(OC) $(OLDFLAGS) -o $@ $^ -I . -I lib -%.$(LIBEXT): - $(MKLIB) $(MKLIBFLAGS) $(OCFLAGS) -o $* -oc $* $^ +%.$(IFEXT): %.mli + $(OC) $(OCFLAGS) -c -o $@ $< -I . -I lib %.$(OBJEXT): %.ml - $(OC) $(OCFLAGS) -c -o $@ $^ -I lib + $(OC) $(OCFLAGS) -c -o $@ $< -I . -I lib + +%.$(LIBEXT): + ocamldep *.ml* lib/*.ml* > deps.mk + $(MKLIB) $(MKLIBFLAGS) $(OCFLAGS) -o $* -oc $* $^ %.o: %.c $(OC) $(OCFLAGS) -c $^ diff --git a/deps.mk b/deps.mk new file mode 100644 index 0000000..049ddd5 --- /dev/null +++ b/deps.mk @@ -0,0 +1,7 @@ +edit.cmo : +edit.cmx : +lib/env.cmo : +lib/env.cmx : +lib/tide.cmo : lib/tide.cmi +lib/tide.cmx : lib/tide.cmi +lib/tide.cmi : diff --git a/edit.ml b/edit.ml new file mode 100644 index 0000000..e3cac86 --- /dev/null +++ b/edit.ml @@ -0,0 +1,7 @@ +open Tide + +let () = + let server = Tide.start_server () in + for i = 1 to (Array.length Sys.argv) - 1 do + Tide.edit_file server Sys.argv.(i) + done diff --git a/lib/tide.ml b/lib/tide.ml new file mode 100644 index 0000000..4818284 --- /dev/null +++ b/lib/tide.ml @@ -0,0 +1,5 @@ +let start_server () = 42 + +let edit_file server file = () + +let foo = "foo" diff --git a/lib/tide.mli b/lib/tide.mli new file mode 100644 index 0000000..d3d5554 --- /dev/null +++ b/lib/tide.mli @@ -0,0 +1,2 @@ +val start_server : unit -> int +val edit_file : int -> string -> unit diff --git a/tide.ml b/tide.ml deleted file mode 100644 index 9aa5e5c..0000000 --- a/tide.ml +++ /dev/null @@ -1,6 +0,0 @@ -open Env - -let () = - let foo = Env.set "foo" "bar" in - let bar = Env.get "foo" in - print_string "foo\n" -- 2.49.0