You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

129 lines
3.5 KiB

From 7688bb4fea24463c92e9c4870acc08495a4c77cb Mon Sep 17 00:00:00 2001
From: David Allsopp <david.allsopp@metastack.com>
Date: Wed, 10 Jan 2018 15:20:46 +0000
Subject: [PATCH] Provide findlib-install target
Allows installing the entire library using ocamlfind.
---
Makefile | 10 +++++++++-
src/META | 17 -----------------
src/META.in | 19 +++++++++++++++++++
src/Makefile | 17 +++++++++++++++--
4 files changed, 43 insertions(+), 20 deletions(-)
delete mode 100644 src/META
create mode 100644 src/META.in
diff --git a/Makefile b/Makefile
index 6a5d08f..b40e588 100644
--- a/Makefile
+++ b/Makefile
@@ -14,8 +14,16 @@ install:
$(MAKE) -C src install
$(MAKE) -C toplevel install
+findlib-install:
+ $(MAKE) -C src findlib-install
+ $(MAKE) -C toplevel install
+
uninstall:
$(MAKE) -C src uninstall
$(MAKE) -C toplevel uninstall
-.PHONY: all test clean install uninstall
+findlib-uninstall:
+ $(MAKE) -C src findlib-uninstall
+ $(MAKE) -C toplevel uninstall
+
+.PHONY: all test clean install uninstall findlib-install findlib-uninstall
diff --git a/src/META b/src/META
deleted file mode 100644
index 66ac170..0000000
--- a/src/META
+++ /dev/null
@@ -1,17 +0,0 @@
-# This META is the one provided by findlib when the "num" library was
-# part of the core OCaml distribution. For backward compatibility,
-# it installs into OCaml's standard library directory, not in a subdirectory
-
-requires = "num.core"
-requires(toploop) = "num.core,num-top"
-version = "1.0"
-description = "Arbitrary-precision rational arithmetic"
-package "core" (
- directory = "^"
- version = "1.0"
- browse_interfaces = ""
- archive(byte) = "nums.cma"
- archive(native) = "nums.cmxa"
- plugin(byte) = "nums.cma"
- plugin(native) = "nums.cmxs"
-)
diff --git a/src/META.in b/src/META.in
new file mode 100644
index 0000000..b5678b7
--- /dev/null
+++ b/src/META.in
@@ -0,0 +1,19 @@
+# This META is the one provided by findlib when the "num" library was
+# part of the core OCaml distribution. For backward compatibility,
+# it is installed into OCaml's standard library directory. If the
+# directory line below is removed, then it's installed in a
+# subdirectory, as normal for a findlib package.
+
+requires = "num.core"
+requires(toploop) = "num.core,num-top"
+version = "1.0"
+description = "Arbitrary-precision rational arithmetic"
+package "core" (
+ directory = "^"
+ version = "1.0"
+ browse_interfaces = ""
+ archive(byte) = "nums.cma"
+ archive(native) = "nums.cmxa"
+ plugin(byte) = "nums.cma"
+ plugin(native) = "nums.cmxs"
+)
diff --git a/src/Makefile b/src/Makefile
index 97dc074..ff271fe 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -80,21 +80,34 @@ endif
ifeq "$(NATDYNLINK)" "true"
TOINSTALL+=nums.cmxs
endif
+ifeq "$(SUPPORTS_SHARED_LIBRARIES)" "true"
TOINSTALL_STUBS=dllnums.$(SO)
+else
+TOINSTALL_STUBS=
+endif
install:
+ cp META.in META
$(OCAMLFIND) install num META
+ rm -f META
$(INSTALL_DATA) $(TOINSTALL) $(STDLIBDIR)
ifeq "$(SUPPORTS_SHARED_LIBRARIES)" "true"
$(INSTALL_DLL) $(TOINSTALL_STUBS) $(STDLIBDIR)/stublibs
endif
-uninstall:
+findlib-install:
+ grep -Fv '^' META.in > META
+ $(OCAMLFIND) install num META $(TOINSTALL) $(TOINSTALL_STUBS)
+ rm -f META
+
+findlib-uninstall:
+ $(OCAMLFIND) remove num
+
+uninstall: findlib-uninstall
cd $(STDLIBDIR) && rm -f $(TOINSTALL)
ifeq "$(SUPPORTS_SHARED_LIBRARIES)" "true"
cd $(STDLIBDIR)/stublibs && rm -f $(TOINSTALL_STUBS)
endif
- $(OCAMLFIND) remove num
clean:
rm -f *.cm[ioxta] *.cmx[as] *.cmti *.$(O) *.$(A) *.$(SO)
--
2.14.1