megaman recipe #277

Merged
merged 1 commit into from Apr 5, 2016
Jump to file or symbol
Failed to load files and symbols.
+62 −0
Diff settings

Always

Just for now

View
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# On OSX, we need to ensure we're using conda's gcc/g++
+# This is because flann (one of the build dependencies) uses OpenMP
+if [[ `uname` == Darwin ]]; then

This comment has been minimized.

@jakirkham

jakirkham Apr 5, 2016

Member

Ah! Sorry. Missed the note.

Yes, we must use gcc. There has been some brief discussion about taking a newer clang system compiler for OS X (that has OpenMP support) and compiling it on an old OS X (Apple provides the source code) so that we can remain compatible on old systems, but supply the latest features. A similar strategy is already being pursued on Linux. If we do this, we may not require gcc for these situations in the future. Actually, the only required thing from the GCC toolkit will be gfortran if we have Fortran code.

@jakirkham

jakirkham Apr 5, 2016

Member

Ah! Sorry. Missed the note.

Yes, we must use gcc. There has been some brief discussion about taking a newer clang system compiler for OS X (that has OpenMP support) and compiling it on an old OS X (Apple provides the source code) so that we can remain compatible on old systems, but supply the latest features. A similar strategy is already being pursued on Linux. If we do this, we may not require gcc for these situations in the future. Actually, the only required thing from the GCC toolkit will be gfortran if we have Fortran code.

+ export CC=gcc
+ export CXX=g++
+fi
+
+$PYTHON setup.py install
View
@@ -0,0 +1,49 @@
+{% set version = "0.1.1" %}
+
+package:
+ name: megaman
+ version: {{ version }}
+
+source:
+ fn: megaman-{{ version }}.tar.gz
+ url: https://pypi.python.org/packages/source/m/megaman/megaman-{{ version }}.tar.gz
+ md5: 924d05877a3bcfc86d4f48ea9436cdd4
+
+build:
+ number: 0
+ skip: true # [win]
+
+requirements:
+ build:
+ - python
+ - numpy x.x
+ - cython
+ - flann
+ - gcc 4.8* # [osx]

This comment has been minimized.

@ocefpaf

ocefpaf Apr 5, 2016

Member

Do we need to pin gcc version?

@ocefpaf

ocefpaf Apr 5, 2016

Member

Do we need to pin gcc version?

This comment has been minimized.

@jakirkham

jakirkham Apr 5, 2016

Member

Actually, why do we need gcc?

@jakirkham

jakirkham Apr 5, 2016

Member

Actually, why do we need gcc?

This comment has been minimized.

@jakirkham

jakirkham Apr 5, 2016

Member

Yeah, I think he just wants to maintain ABI compatibility, which is ok. This is really the only version Continuum provides. Personally, I'm ok with this.

@jakirkham

jakirkham Apr 5, 2016

Member

Yeah, I think he just wants to maintain ABI compatibility, which is ok. This is really the only version Continuum provides. Personally, I'm ok with this.

+ run:
+ - python
+ - numpy x.x
+ - scipy >=0.16
+ - scikit-learn >=0.17
+ - pyamg
+ - pyflann
+ - libgcc 4.8* # [osx]
+
+test:
+ requires:
+ - nose
+ imports:
+ - megaman
+ - megaman.geometry
+ - megaman.embedding
+ - megaman.utils
+
+about:
+ home: http://mmp2.github.io/megaman
+ license: BSD 2-clause
+ license_file: LICENSE
+ summary: "Manifold Learning for Millions of Points"
+
+extra:
+ recipe-maintainers:
+ - jakevdp
@@ -0,0 +1,3 @@
+import nose
+config = nose.config.Config(verbosity=2)
+nose.runmodule('megaman', config=config)