[packages/ocaml-idl] - added ocaml_opt patch - rel 9

baggins baggins at pld-linux.org
Mon Apr 6 13:37:53 CEST 2015


commit ff869cfca462f4fc80944caf71d350f9cb7d5bc7
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Mon Apr 6 11:37:32 2015 +0000

    - added ocaml_opt patch
    - rel 9

 no-opt.patch   | 18 ++++++++++++++++++
 ocaml-idl.spec | 33 ++++++++++++++++++++++++++++++---
 2 files changed, 48 insertions(+), 3 deletions(-)
---
diff --git a/ocaml-idl.spec b/ocaml-idl.spec
index 9c049e6..59262e2 100644
--- a/ocaml-idl.spec
+++ b/ocaml-idl.spec
@@ -1,15 +1,25 @@
+#
+# Conditional build:
+%bcond_without	ocaml_opt	# skip building native optimized binaries (bytecode is always built)
+
+%ifarch x32
+# not yet available on x32 (ocaml 4.02.1), remove when upstream will support it
+%undefine	with_ocaml_opt
+%endif
+
 %define		ocaml_ver	1:3.09.2
 Summary:	CamlIDL is a stub code generator and COM binding for Objective Caml
 Summary(pl.UTF-8):	Wiązania IDL dla OCamla
 Name:		ocaml-idl
 Version:	1.05
-Release:	8
+Release:	9
 License:	QPL v1.0 (compiler), LGPL v2 (library)
 Group:		Libraries
 Source0:	http://caml.inria.fr/distrib/bazar-ocaml/camlidl-%{version}.tar.gz
 # Source0-md5:	4cfb863bc3cbdc1af2502042c45cc675
 Source1:	http://caml.inria.fr/distrib/bazar-ocaml/camlidl-%{version}.doc.html.tar.gz
 # Source1-md5:	b7c7dad3ba62ddcc0f687bdebe295126
+Patch0:		no-opt.patch
 URL:		http://caml.inria.fr/pub/old_caml_site/camlidl/
 BuildRequires:	ocaml >= %{ocaml_ver}
 Obsoletes:	ocaml-camlidl < 1.05-3
@@ -69,6 +79,7 @@ tej biblioteki.
 
 %prep
 %setup -q -a 1 -n camlidl-%{version}
+%patch0 -p1
 
 ln -s Makefile.unix config/Makefile
 
@@ -78,9 +89,22 @@ ln -s Makefile.unix config/Makefile
 # chokes.
 
 %build
-%{__make} -j1 \
+%{__make} -j1 -C compiler \
+	CPP="%{__cc} -E -x c" \
+	CFLAGS="%{rpmcflags} -fPIC"
+
+%{__make} -j1 -C lib com.cma %{?with_ocaml_opt:com.cmxa} \
+	CPP="%{__cc} -E -x c" \
+	CFLAGS="%{rpmcflags} -fPIC"
+
+%{__make} -j1 -C runtime \
+	CPP="%{__cc} -E -x c" \
+	CFLAGS="%{rpmcflags} -fPIC"
+
+%{__make} -j1 -C tools \
 	CPP="%{__cc} -E -x c" \
 	CFLAGS="%{rpmcflags} -fPIC"
+
 ocamlmklib -o com lib/*.cm[xo] runtime/*.o
 
 %install
@@ -89,11 +113,12 @@ install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/ocaml/idl,%{_includedir}/caml}
 ln -sf ../../include/caml $RPM_BUILD_ROOT%{_libdir}/ocaml/caml
 
 %{__make} install \
+	%{!?with_ocaml_opt:NATIVELIB=""} \
 	BINDIR=$RPM_BUILD_ROOT%{_bindir} \
 	OCAMLLIB=$RPM_BUILD_ROOT%{_libdir}/ocaml
 
 # fix install to subdir
-mv $RPM_BUILD_ROOT%{_libdir}/ocaml/{*.{cm[ix],cma,cmxa,a},idl}
+mv $RPM_BUILD_ROOT%{_libdir}/ocaml/{*.{cm[ix],cma%{?with_ocaml_opt:,cmxa,a}},idl}
 
 install -d $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs
 install -p dll*.so $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs
@@ -126,7 +151,9 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/camlidl
 %dir %{_libdir}/ocaml/idl
 %{_libdir}/ocaml/idl/*.cm[ixa]*
+%if %{with ocaml_opt}
 %{_libdir}/ocaml/idl/*.a
+%endif
 %{_libdir}/ocaml/site-lib/camlidl
 %{_libdir}/ocaml/caml
 %{_includedir}/caml/camlidlruntime.h
diff --git a/no-opt.patch b/no-opt.patch
new file mode 100644
index 0000000..d8d68cd
--- /dev/null
+++ b/no-opt.patch
@@ -0,0 +1,18 @@
+--- camlidl-1.05/lib/Makefile~	2002-04-22 11:50:47.000000000 +0000
++++ camlidl-1.05/lib/Makefile	2015-04-06 11:32:04.970899900 +0000
+@@ -28,8 +28,13 @@
+ $(NATIVELIB): $(NATIVEOBJS)
+ 	$(OCAMLOPT) -a -o $(NATIVELIB) $(NATIVEOBJS)
+ 
+-install:
+-	cp $(INTERFACES) $(BYTELIB) $(NATIVELIB) $(NATIVELIB:.cmxa=.$(LIBEXT)) $(OCAMLLIB)
++install: install-byte $(NATIVELIB:install-opt)
++
++install-byte:
++	cp $(INTERFACES) $(BYTELIB) $(OCAMLLIB)
++
++install-opt:
++	cp $(NATIVELIB) $(NATIVELIB:.cmxa=.$(LIBEXT))
+ 	cd $(OCAMLLIB); $(RANLIB) $(NATIVELIB:.cmxa=.$(LIBEXT))
+ 
+ .SUFFIXES: .mli .ml .cmi .cmo .cmx
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/ocaml-idl.git/commitdiff/ff869cfca462f4fc80944caf71d350f9cb7d5bc7



More information about the pld-cvs-commit mailing list