add -fPIC option to the C compiler, required in f31
[vsys.git] / Makefile
index d05d91f..ef54e53 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,13 @@
-all: vsys 
+#
+# $Id: Makefile 16196 2009-12-15 20:36:21Z thierry $
+# $URL: https://svn.planet-lab.org/svn/vsys/branches/0.9/Makefile $
+#
+
+# OCAML_OLD is set to non-empty if str.cmxa needs to be passed twice to the loader
+OCAML_RELEASE := $(shell ocaml -version)
+OCAML_OLD := $(strip $(findstring version 3.09,$(OCAML_RELEASE)) $(findstring version 3.10,$(OCAML_RELEASE)))
+
+all: vsys docs
 
 include .dep
 
@@ -25,23 +34,29 @@ include .dep
 
 docs: *.ml
        ocamldoc -d . -html -o docs *.ml
-       mv *.html *.css docs
+       mkdir -p docs;mv *.html *.css docs
 
 ocaml_inotify-0.4/inotify.cmxa:
        $(MAKE) -C ocaml_inotify-0.4 && cp -f ocaml_inotify-0.4/inotify_stubs.o ./
 
-vsys: ocaml_inotify-0.4/inotify.cmxa globals.cmx fdwatcher.cmx dirwatcher.cmx fifowatcher.cmx frontend.cmx backend.cmx main.cmx docs
-       ocamlopt -I ocaml_inotify-0.4 str.cmxa unix.cmxa inotify.cmxa globals.cmx fdwatcher.cmx dirwatcher.cmx fifowatcher.cmx frontend.cmx backend.cmx str.cmxa main.cmx -o vsys
+splice_stub.o: splice_stub.c
+       gcc -c -I /usr/lib/ocaml -I /usr/lib64/ocaml splice_stub.c -o splice_stub.o -fPIC
+
+vsys: ocaml_inotify-0.4/inotify.cmxa globals.cmx fdwatcher.cmx conffile.cmx splice_stub.o splice.cmx dirwatcher.cmx fifowatcher.cmx frontend.cmx unixsocketwatcher.cmx backend.cmx main.cmx 
+ifneq "$(OCAML_OLD)" ""
+       ocamlopt -I ocaml_inotify-0.4 str.cmxa unix.cmxa inotify.cmxa globals.cmx fdwatcher.cmx dirwatcher.cmx splice.cmx splice_stub.o directfifowatcher.cmx unixsocketwatcher.cmx  frontend.cmx backend.cmx str.cmxa conffile.cmx main.cmx -o vsys
+else
+       ocamlopt -I ocaml_inotify-0.4 str.cmxa unix.cmxa inotify.cmxa globals.cmx fdwatcher.cmx dirwatcher.cmx splice.cmx splice_stub.o directfifowatcher.cmx unixsocketwatcher.cmx  frontend.cmx backend.cmx conffile.cmx main.cmx -o vsys
+endif
 
-vsys.b: inotify.cma inotify.cmi globals.ml fdwatcher.ml dirwatcher.ml fifowatcher.ml frontend.ml backend.ml main.ml
-       ocamlc -g str.cma unix.cma inotify.cma globals.cmo fdwatcher.cmo dirwatcher.cmo fifowatcher.cmo frontend.cmo backend.cmo str.cma main.cmo -o vsys.b
+vsys.b: ocaml_inotify-0.4/inotify.cma inotify.cmi globals.ml fdwatcher.ml dirwatcher.ml directfifowatcher.ml frontend.ml backend.ml main.ml
+       ocamlc -g str.cma unix.cma ocaml_inotify-0.4/inotify.cma globals.cmo fdwatcher.cmo dirwatcher.cmo directfifowatcher.cmo frontend.cmo backend.cmo str.cma conffile.cmo main.cmo -o vsys.b
 
 install: vsys
-       cp vsys /usr/bin
-       cp vsys.b /usr/bin
-       cp vsys-initscript /etc/init.d/vsys 
+       cp vsys $(INSTALL_DIR)/usr/bin
+       cp vsys-initscript $(INSTALL_DIR)/etc/init.d/vsys 
 
-dep:
+.dep:
        ocamldep *.ml > .dep
 
 clean: