#-------------------------------------------------------------------------------
ifeq ($(NATIVE), 1)
OC = ocamlopt
- OCFLAGS = -compact
+ OCFLAGS =
MKLIB = ocamlmklib
MKLIBFLAGS = -custom
+ IFEXT = cmi
OBJEXT = cmx
LIBEXT = cmxa
OLDFLAGS = -compact -ccopt -dead_strip
OCFLAGS =
MKLIB = ocamlmklib
MKLIBFLAGS =
+ IFEXT = cmi
OBJEXT = cmo
LIBEXT = cma
OLDFLAGS = -dllpath .
# 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 $^
--- /dev/null
+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