]> git.mdlowis.com Git - archive/tide-ocaml.git/commitdiff
added top-level module for tide library
authorMichael D. Lowis <mike.lowis@gentex.com>
Mon, 28 Aug 2017 19:40:16 +0000 (15:40 -0400)
committerMichael D. Lowis <mike.lowis@gentex.com>
Mon, 28 Aug 2017 19:40:16 +0000 (15:40 -0400)
.gitignore
Makefile
deps.mk [new file with mode: 0644]
edit.ml [new file with mode: 0644]
lib/tide.ml [new file with mode: 0644]
lib/tide.mli [new file with mode: 0644]
tide.ml [deleted file]

index dfd218eb1bce365354e0f3c21f74cd74d18138b1..ac738f190dd5ad26d7ce4588ae6d42110b844b66 100644 (file)
@@ -5,3 +5,4 @@
 *.cmxa
 *.cmi
 *.a
+edit
index dffd7984d8eec6791c4aaadc3c2ac92a1b028edb..3858c0698ca733974a8138d3821212e047d24c46 100644 (file)
--- 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 (file)
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 (file)
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 (file)
index 0000000..4818284
--- /dev/null
@@ -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 (file)
index 0000000..d3d5554
--- /dev/null
@@ -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 (file)
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"