summaryrefslogtreecommitdiffstats
path: root/libvirt/Makefile.in
diff options
context:
space:
mode:
Diffstat (limited to 'libvirt/Makefile.in')
-rwxr-xr-x[-rw-r--r--]libvirt/Makefile.in77
1 files changed, 64 insertions, 13 deletions
diff --git a/libvirt/Makefile.in b/libvirt/Makefile.in
index 8eb2f93..53b25b0 100644..100755
--- a/libvirt/Makefile.in
+++ b/libvirt/Makefile.in
@@ -15,37 +15,88 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-CFLAGS := @CFLAGS@ \
+WIN32 = @WIN32@
+
+CFLAGS = @CFLAGS@ \
-I.. \
- -I$(shell ocamlc -where) \
- -Wall -Werror \
- -fPIC \
- -g
-LDFLAGS := @LDFLAGS@
+ -I"$(shell ocamlc -where)" \
+ @DEBUG@ @WARNINGS@ @CFLAGS_FPIC@
+LDFLAGS = @LDFLAGS@
+# -L"$(shell ocamlc -where)"
+
+OCAMLC = @OCAMLC@
+OCAMLOPT = @OCAMLOPT@
+OCAMLFIND = @OCAMLFIND@
+OCAMLMKLIB = @OCAMLMKLIB@
+ifneq ($(OCAMLFIND),)
OCAMLCPACKAGES := -package unix
OCAMLCFLAGS := -g
OCAMLCLIBS := -linkpkg
+else
+OCAMLCINCS :=
+OCAMLCFLAGS := -g
+OCAMLCLIBS := unix.cma
+endif
-OCAMLOPTPACKAGES := $(OCAMLCPACKAGES)
OCAMLOPTFLAGS :=
+ifneq ($(OCAMLFIND),)
+OCAMLOPTPACKAGES := $(OCAMLCPACKAGES)
OCAMLOPTLIBS := $(OCAMLCLIBS)
+else
+OCAMLOPTINCS := $(OCAMLCINCS)
+OCAMLOPTLIBS := unix.cmxa
+endif
export LIBRARY_PATH=.
export LD_LIBRARY_PATH=.
-BYTE_TARGETS := libvirt.cma
-OPT_TARGETS := libvirt.cmxa
+BYTE_TARGETS := mllibvirt.cma
+OPT_TARGETS := mllibvirt.cmxa
all: $(BYTE_TARGETS)
opt: $(OPT_TARGETS)
-libvirt.cma: libvirt_c.o libvirt.cmo libvirt_version.cmo
- ocamlmklib -o mllibvirt $^ $(LDFLAGS) -lvirt
+COBJS := libvirt.cmo libvirt_version.cmo
+OPTOBJS := libvirt.cmx libvirt_version.cmx
+
+ifneq ($(OCAMLMKLIB),)
+# Good, we can just use ocamlmklib
+mllibvirt.cma: libvirt_c.o $(COBJS)
+ $(OCAMLMKLIB) -o mllibvirt $^ $(LDFLAGS) -lvirt
+
+mllibvirt.cmxa: libvirt_c.o $(OPTOBJS)
+ $(OCAMLMKLIB) -o mllibvirt $^ $(LDFLAGS) -lvirt
+
+else
+ifeq ($(WIN32),yes)
+# Ugh, MinGW doesn't have ocamlmklib. This technique is copied from the
+# example in OCaml distribution, otherlibs/win32unix/Makefile.nt
+
+mllibvirt.cma: dllmllibvirt.dll libmllibvirt.a $(COBJS)
+ $(OCAMLC) -a -linkall -o $@ $(COBJS) \
+ -dllib -lmllibvirt -cclib -lmllibvirt -cclib "$(LDFLAGS) -lvirt"
+
+mllibvirt.cmxa: libmllibvirt.a $(OPTOBJS)
+ $(OCAMLOPT) -a -linkall -o $@ $(OPTOBJS) \
+ -cclib -lmllibvirt -cclib "$(LDFLAGS) -lvirt"
+
+dllmllibvirt.dll: libvirt_c.o
+ $(CC) -shared -o $@ $^ \
+ $(LDFLAGS) "$(shell ocamlc -where)"/ocamlrun.a -lvirt
+
+libmllibvirt.a: libvirt_c.o
+ ar rc $@ $^
+ ranlib $@
-libvirt.cmxa: libvirt_c.o libvirt.cmx libvirt_version.cmx
- ocamlmklib -o mllibvirt $^ $(LDFLAGS) -lvirt
+else
+# Don't know how to build a library on this platform.
+$(BYTE_TARGETS) $(OPT_TARGETS):
+ echo "Error: ocamlmklib missing, and no known way to build libraries on this platform"
+ exit 1
+endif
+endif
libvirt.cmo: libvirt.cmi
libvirt.cmi: libvirt.mli