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.2beta
+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

File Metadata

Mime Type
text/x-diff
Expires
Tue, Nov 19, 8:23 PM (1 d, 5 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3806017
Default Alt Text
(5 KB)

Event Timeline