Page MenuHomeHEPForge

No OneTemporary

diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -1,185 +1,185 @@
## Makefile for Professor 2.x
VERSION := 2.2.2beta4
DISTNAME := Professor-$(VERSION)
$(info Building Professor $(VERSION))
## Default values for user-specifiable build variables
SHELL := /bin/bash
ifndef PREFIX
PREFIX := /usr/local
endif
CXXSTD := c++11
ifndef CXX
CXX := g++
endif
ifndef CPPFLAGS
CPPFLAGS := -I/usr/include/eigen3
endif
ifndef CXXFLAGS
CXXFLAGS := -O3 -march=native
ifdef DEBUG
ifneq ($(DEBUG),0)
CXXFLAGS += -g
endif
endif
endif
ifndef PYTHON
PYTHON := python
endif
ifndef CYTHON
CYTHON := cython
endif
ifndef ROOTCONFIG
ROOTCONFIG := root-config
endif
## Check for compatible dependencies
ROOT_VERSION := $(shell $(ROOTCONFIG) --version 2> /dev/null)
ifeq "$(ROOT_VERSION)" ""
ROOT_VERSION := 0
else
HAVE_ROOT := $(ROOT_VERSION)
endif
ifdef HAVE_ROOT
$(info ROOT $(ROOT_VERSION) is available... providing 'root' make target)
else
$(info ROOT is not available... not making any ROOT integration)
endif
#CYTHON_VERSION := $(shell $(CYTHON) --version 1> /dev/null)
CYTHON_VERSION := $(shell $(CYTHON) --version < /dev/null 2>&1 | grep -i 'Cython version' | cut -d\ -f3)
ifeq "$(CYTHON_VERSION)" ""
CYTHON_VERSION := NONE
CYTHON_VERSION1 := 0
CYTHON_VERSION2 := 0
else
CYTHON_VERSION := $(shell echo $(CYTHON_VERSION) | sed -e 's/\([0-9\.]\+\)[ab].*/\1/')
CYTHON_VERSION1 := $(shell echo $(CYTHON_VERSION) | cut -d. -f1)
CYTHON_VERSION2 := $(shell echo $(CYTHON_VERSION) | cut -d. -f2)
HAVE_GOOD_CYTHON := $(shell test "$(CYTHON_VERSION1)" -eq 0 -a "$(CYTHON_VERSION2)" -ge 20 && echo 1 || echo 0)
endif
ifdef HAVE_GOOD_CYTHON
$(info Cython $(CYTHON_VERSION) found... will rebuild C++/Python interface)
else
$(info Incompatible Cython $(CYTHON_VERSION) found... will build C++/Python interface from bundled C file)
endif
## Build-file variables
LIBHEADERS := $(wildcard include/Professor/*.h)
LIBSOURCES := $(wildcard src/*.cc)
LIBOBJECTS := $(patsubst %,obj/%.o, ParamPoints Ipol Version)
TESTSOURCES := $(wildcard test/*.cc test/testPython*)
TESTPROGS := test/testParamPoints test/testIpol
BINPROGS := $(wildcard bin/*)
CONTRIBPROGS := $(wildcard contrib/*)
JUPYTERNBS := $(wildcard jupyter/*)
PYTHONSOURCES := $(wildcard pyext/professor2/*.py)
CYTHONSOURCES := $(wildcard pyext/professor2/*.pxd) $(wildcard pyext/professor2/*.pyx)
## Make targets
.PHONY := all lib pyext tests cxxtests pytests check icheck clean root dist
all: lib pyext tests
@true
lib: lib/libProfessor2.so
@true
lib/libProfessor2.so: $(LIBOBJECTS)
mkdir -p lib
- $(CXX) -shared -Wl,-soname,libProfessor2.so -o $@ $(LIBOBJECTS)
+ $(CXX) -shared -Wl -o $@ $(LIBOBJECTS)
obj/%.o: src/%.cc $(LIBHEADERS)
mkdir -p obj
$(CXX) -std=$(CXXSTD) -DPROF_VERSION="$(VERSION)" -Iinclude $(CPPFLAGS) $(CXXFLAGS) -c -fPIC $< -o $@
pyext: pyext/professor2/core.so $(wildcard pyext/professor2/*.py)
$(PYTHON) pyext/setup.py install --prefix=.
ifdef HAVE_GOOD_CYTHON
pyext/professor2/core.cpp: $(LIBHEADERS) $(CYTHONSOURCES) lib
$(CYTHON) pyext/professor2/core.pyx --cplus
else
pyext/professor2/core.cpp: $(LIBHEADERS) $(CYTHONSOURCES) lib
$(info "Cython >= 0.20 not available; can't build $@")
endif
pyext/professor2/core.so: pyext/professor2/core.cpp
PROF_VERSION=$(VERSION) $(PYTHON) pyext/setup.py build_ext -i --force
tests: cxxtests pytests
@true
cxxtests: $(TESTPROGS)
@true
test/%: test/%.cc $(LIBHEADERS) lib
$(CXX) -std=$(CXXSTD) -Iinclude $(CPPFLAGS) $(CXXFLAGS) $< -Llib -lProfessor2 -o $@
ifdef HAVE_ROOT
root: src/testRoot.cc $(LIBHEADERS) lib
$(CXX) -std=$(CXXSTD) $(CPPFLAGS) $(CXXFLAGS) $< -Iinclude `root-config --cflags --libs` -Llib -lProfessor2 -o test/test$@
endif
pytests: pyext
@true
check: tests
@echo
@echo "testParamPoints" && test/testParamPoints && echo "\n\n"
@echo "testIpol" && test/testIpol && echo "\n\n"
icheck: tests
test/testPython
test/testPython1D
test/testPython2D
install: all
mkdir -p $(PREFIX)/bin && cp bin/* $(PREFIX)/bin/
mkdir -p $(PREFIX)/contrib && cp contrib/* $(PREFIX)/contrib/
mkdir -p $(PREFIX)/jupyter && cp jupyter/* $(PREFIX)/jupyter/
mkdir -p $(PREFIX)/include && cp -r include/Professor $(PREFIX)/include/
test -d lib && mkdir -p $(PREFIX)/lib && cp -r lib/* $(PREFIX)/lib/ || true
test -d lib64 && mkdir -p $(PREFIX)/lib64 && cp -r lib64/* $(PREFIX)/lib64/ || true
# cp setup.sh $(PREFIX)
dist: all
rm -rf $(DISTNAME)
mkdir -p $(DISTNAME)
cp --parents \
README Makefile \
$(LIBHEADERS) \
$(LIBSOURCES) \
$(BINPROGS) \
$(CONTRIBPROGS) \
$(JUPYTERNBS) \
$(TESTSOURCES) \
$(PYTHONSOURCES) pyext/setup.py pyext/professor2/misc/*py pyext/professor2/ml/*py\
$(CYTHONSOURCES) $(wildcard pyext/professor2/*.cpp) \
$(DISTNAME)/
tar czf $(DISTNAME).tar.gz $(DISTNAME)
clean:
rm -rf obj/*.o lib/*
rm -f pyext/professor2/core.cpp pyext/professor2/core.so
rm -f $(TESTPROGS)
rm -rf $(DISTNAME) $(DISTNAME).tar.gz
diff --git a/Makefile.mac b/Makefile.mac
new file mode 100644
--- /dev/null
+++ b/Makefile.mac
@@ -0,0 +1,185 @@
+## Makefile for Professor 2.x
+
+VERSION := 2.2.2beta4
+DISTNAME := Professor-$(VERSION)
+$(info Building Professor $(VERSION))
+
+
+## Default values for user-specifiable build variables
+
+SHELL := /bin/bash
+
+ifndef PREFIX
+ PREFIX := /usr/local
+endif
+
+CXXSTD := c++11
+
+ifndef CXX
+ CXX := g++
+endif
+
+ifndef CPPFLAGS
+ CPPFLAGS := -I/usr/include/eigen3
+endif
+
+ifndef CXXFLAGS
+ CXXFLAGS := -O3 -march=native
+ ifdef DEBUG
+ ifneq ($(DEBUG),0)
+ CXXFLAGS += -g
+ endif
+ endif
+endif
+
+ifndef PYTHON
+ PYTHON := python
+endif
+
+ifndef CYTHON
+ CYTHON := cython
+endif
+
+ifndef ROOTCONFIG
+ ROOTCONFIG := root-config
+endif
+
+
+## Check for compatible dependencies
+
+ROOT_VERSION := $(shell $(ROOTCONFIG) --version 2> /dev/null)
+ifeq "$(ROOT_VERSION)" ""
+ ROOT_VERSION := 0
+else
+ HAVE_ROOT := $(ROOT_VERSION)
+endif
+ifdef HAVE_ROOT
+ $(info ROOT $(ROOT_VERSION) is available... providing 'root' make target)
+else
+ $(info ROOT is not available... not making any ROOT integration)
+endif
+
+
+#CYTHON_VERSION := $(shell $(CYTHON) --version 1> /dev/null)
+CYTHON_VERSION := $(shell $(CYTHON) --version < /dev/null 2>&1 | grep -i 'Cython version' | cut -d\ -f3)
+ifeq "$(CYTHON_VERSION)" ""
+ CYTHON_VERSION := NONE
+ CYTHON_VERSION1 := 0
+ CYTHON_VERSION2 := 0
+else
+ CYTHON_VERSION := $(shell echo $(CYTHON_VERSION) | sed -e 's/\([0-9\.]\+\)[ab].*/\1/')
+ CYTHON_VERSION1 := $(shell echo $(CYTHON_VERSION) | cut -d. -f1)
+ CYTHON_VERSION2 := $(shell echo $(CYTHON_VERSION) | cut -d. -f2)
+ HAVE_GOOD_CYTHON := $(shell test "$(CYTHON_VERSION1)" -eq 0 -a "$(CYTHON_VERSION2)" -ge 20 && echo 1 || echo 0)
+endif
+ifdef HAVE_GOOD_CYTHON
+ $(info Cython $(CYTHON_VERSION) found... will rebuild C++/Python interface)
+else
+ $(info Incompatible Cython $(CYTHON_VERSION) found... will build C++/Python interface from bundled C file)
+endif
+
+
+## Build-file variables
+
+LIBHEADERS := $(wildcard include/Professor/*.h)
+LIBSOURCES := $(wildcard src/*.cc)
+LIBOBJECTS := $(patsubst %,obj/%.o, ParamPoints Ipol Version)
+TESTSOURCES := $(wildcard test/*.cc test/testPython*)
+TESTPROGS := test/testParamPoints test/testIpol
+BINPROGS := $(wildcard bin/*)
+CONTRIBPROGS := $(wildcard contrib/*)
+JUPYTERNBS := $(wildcard jupyter/*)
+PYTHONSOURCES := $(wildcard pyext/professor2/*.py)
+CYTHONSOURCES := $(wildcard pyext/professor2/*.pxd) $(wildcard pyext/professor2/*.pyx)
+
+
+## Make targets
+
+.PHONY := all lib pyext tests cxxtests pytests check icheck clean root dist
+
+
+all: lib pyext tests
+ @true
+
+lib: lib/libProfessor2.so
+ @true
+
+lib/libProfessor2.so: $(LIBOBJECTS)
+ mkdir -p lib
+ $(CXX) -shared -Wl,-soname,libProfessor2.so -o $@ $(LIBOBJECTS)
+
+obj/%.o: src/%.cc $(LIBHEADERS)
+ mkdir -p obj
+ $(CXX) -std=$(CXXSTD) -DPROF_VERSION="$(VERSION)" -Iinclude $(CPPFLAGS) $(CXXFLAGS) -c -fPIC $< -o $@
+
+pyext: pyext/professor2/core.so $(wildcard pyext/professor2/*.py)
+ $(PYTHON) pyext/setup.py install --prefix=.
+
+ifdef HAVE_GOOD_CYTHON
+pyext/professor2/core.cpp: $(LIBHEADERS) $(CYTHONSOURCES) lib
+ $(CYTHON) pyext/professor2/core.pyx --cplus
+else
+pyext/professor2/core.cpp: $(LIBHEADERS) $(CYTHONSOURCES) lib
+ $(info "Cython >= 0.20 not available; can't build $@")
+endif
+
+pyext/professor2/core.so: pyext/professor2/core.cpp
+ PROF_VERSION=$(VERSION) $(PYTHON) pyext/setup.py build_ext -i --force
+
+tests: cxxtests pytests
+ @true
+
+cxxtests: $(TESTPROGS)
+ @true
+
+test/%: test/%.cc $(LIBHEADERS) lib
+ $(CXX) -std=$(CXXSTD) -Iinclude $(CPPFLAGS) $(CXXFLAGS) $< -Llib -lProfessor2 -o $@
+
+ifdef HAVE_ROOT
+root: src/testRoot.cc $(LIBHEADERS) lib
+ $(CXX) -std=$(CXXSTD) $(CPPFLAGS) $(CXXFLAGS) $< -Iinclude `root-config --cflags --libs` -Llib -lProfessor2 -o test/test$@
+endif
+
+pytests: pyext
+ @true
+
+check: tests
+ @echo
+ @echo "testParamPoints" && test/testParamPoints && echo "\n\n"
+ @echo "testIpol" && test/testIpol && echo "\n\n"
+
+icheck: tests
+ test/testPython
+ test/testPython1D
+ test/testPython2D
+
+install: all
+ mkdir -p $(PREFIX)/bin && cp bin/* $(PREFIX)/bin/
+ mkdir -p $(PREFIX)/contrib && cp contrib/* $(PREFIX)/contrib/
+ mkdir -p $(PREFIX)/jupyter && cp jupyter/* $(PREFIX)/jupyter/
+ mkdir -p $(PREFIX)/include && cp -r include/Professor $(PREFIX)/include/
+ test -d lib && mkdir -p $(PREFIX)/lib && cp -r lib/* $(PREFIX)/lib/ || true
+ test -d lib64 && mkdir -p $(PREFIX)/lib64 && cp -r lib64/* $(PREFIX)/lib64/ || true
+# cp setup.sh $(PREFIX)
+
+dist: all
+ rm -rf $(DISTNAME)
+ mkdir -p $(DISTNAME)
+ cp --parents \
+ README Makefile \
+ $(LIBHEADERS) \
+ $(LIBSOURCES) \
+ $(BINPROGS) \
+ $(CONTRIBPROGS) \
+ $(JUPYTERNBS) \
+ $(TESTSOURCES) \
+ $(PYTHONSOURCES) pyext/setup.py pyext/professor2/misc/*py pyext/professor2/ml/*py\
+ $(CYTHONSOURCES) $(wildcard pyext/professor2/*.cpp) \
+ $(DISTNAME)/
+ tar czf $(DISTNAME).tar.gz $(DISTNAME)
+
+clean:
+ rm -rf obj/*.o lib/*
+ rm -f pyext/professor2/core.cpp pyext/professor2/core.so
+ rm -f $(TESTPROGS)
+ rm -rf $(DISTNAME) $(DISTNAME).tar.gz
diff --git a/setup.mac.sh b/setup.mac.sh
new file mode 100755
--- /dev/null
+++ b/setup.mac.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# This needs to be set to the PREFIX specified in make install step
+INSTALLDIR=/Users/ippp/professor/local
+
+export DYLD_LIBRARY_PATH=${INSTALLDIR}/lib:$DYLD_LIBRARY_PATH
+export PYTHONPATH=${INSTALLDIR}/lib/python2.7/site-packages:$PYTHONPATH
+export PATH=${INSTALLDIR}/bin:$PATH

File Metadata

Mime Type
text/x-diff
Expires
Tue, Nov 19, 4:21 PM (1 d, 10 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3805131
Default Alt Text
(10 KB)

Event Timeline