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
						
					
					
				
			
		
		
	
	
							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 | 
						|
 | 
						|
 |