diff -Naur ORIG/Makefile PATCHED/Makefile
--- ORIG/Makefile	2026-03-25 14:52:28.118251678 +0000
+++ PATCHED/Makefile	2026-03-25 14:52:28.118276465 +0000
@@ -1,16 +1,28 @@
 ## Makefile for Professor 2.x
 
 ## Include the config
-include Makefile.inc
+#include Makefile.inc
+VERSION := 2.5.1
 
 DISTNAME := Professor-$(VERSION)
 $(info Building Professor $(VERSION))
 
 ## Default values for user-specifiable build variables
-# TODO: migrate to configure flags?
+
+SHELL := /bin/bash
+
+ifndef PREFIX
+  PREFIX := /usr/local
+endif
+
+CXXSTD := c++11
+
+ifndef CXX
+  CXX := g++
+endif
 
 ifndef CPPFLAGS
-  CPPFLAGS := $(EIGEN_CPPFLAGS)
+  CPPFLAGS := -I/usr/include/eigen3
 endif
 
 ifndef CXXFLAGS
@@ -23,7 +35,7 @@
 endif
 
 ifndef PYTHON
-  PYTHON := python
+  PYTHON := python3
 endif
 
 ifndef CYTHON
@@ -97,23 +109,23 @@
 
 obj/%.o: src/%.cc $(LIBHEADERS)
 	mkdir -p obj
-	$(CXX) -std=$(CXXSTD) -DPROF_VERSION="$(VERSION)" -I include $(CPPFLAGS) $(CXXFLAGS) -c -fPIC $< -o $@
+	$(CXX) -std=$(CXXSTD) -DPROF_VERSION="$(VERSION)" -I./ -I./include $(CPPFLAGS) $(CXXFLAGS) -c -fPIC $< -o $@
 
 obj/Version.o: src/Version.cc $(LIBHEADERS) Makefile
 	mkdir -p obj
 	$(CXX) -std=$(CXXSTD) -DPROF_VERSION="$(VERSION)" -Iinclude $(CPPFLAGS) $(CXXFLAGS) -c -fPIC $< -o $@
 
 pydeps:
-	@$(PYTHON) -m pip &> /dev/null || { echo "Python doesn't have pip support, run ${PYTHON} -m ensurepip"; exit 1; }
-	@$(PYTHON) -c "import setuptools" &> /dev/null || { echo "Python setuptools needs to be installed: ${PYTHON} -m pip install setuptools"; exit 1; }
-	@$(PYTHON) -c "import cython" &> /dev/null || { echo "Cython needs to be installed: ${PYTHON} -m pip install Cython"; exit 1; }
-	@$(PYTHON) -c "import numpy" &> /dev/null || { echo "numpy needs to be installed: ${PYTHON} -m pip install numpy"; exit 1; }
+#	@$(PYTHON) -m pip &> /dev/null || { echo "Python doesn't have pip support"; exit 1; }
+#	@$(PYTHON) -c "import setuptools" &> /dev/null || { echo "Python setuptools needs to be installed: pip install setuptools"; exit 1; }
+#	@$(PYTHON) -c "import cython" &> /dev/null || { echo "Cython needs to be installed: pip install Cython"; exit 1; }
+#	@$(PYTHON) -c "import numpy" &> /dev/null || { echo "numpy needs to be installed: pip install numpy"; exit 1; }
 
 pyext: pydeps pyext/professor2/core.cpp $(wildcard pyext/professor2/*.py)
-	cd pyext/ && PROF_VERSION=$(VERSION) PROF_ROOT=$(PWD) $(PYTHON) -m pip install -vv ./
+#	PROF_VERSION=$(VERSION) $(PYTHON) -m pip install -vv ./pyext/
 
 pyext/professor2/core.cpp: $(LIBHEADERS) $(CYTHONSOURCES) lib
-	$(CYTHON) pyext/professor2/core.pyx --cplus
+	$(CYTHON) pyext/professor2/core.pyx --cplus -Ipyext/professor2
 
 # pyext/professor2/core.so: pyext/professor2/core.cpp
 # 	PROF_VERSION=$(VERSION) $(PYTHON) pyext/setup.py build_ext -i --force
@@ -146,12 +158,12 @@
 	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
+	mkdir -p $(DESTDIR)$(PREFIX)/bin && cp bin/* $(DESTDIR)$(PREFIX)/bin/
+	mkdir -p $(DESTDIR)$(PREFIX)/contrib && cp contrib/* $(DESTDIR)$(PREFIX)/contrib/
+	mkdir -p $(DESTDIR)$(PREFIX)/jupyter && cp jupyter/* $(DESTDIR)$(PREFIX)/jupyter/
+	mkdir -p $(DESTDIR)$(PREFIX)/include && cp -r include/Professor $(DESTDIR)$(PREFIX)/include/
+	test -d lib   && mkdir -p $(DESTDIR)$(LIBDIR)   && cp -r lib/libProfessor2.so $(DESTDIR)$(LIBDIR)/ || true
+	cd pyext && $(PYTHON) setup.py install --prefix=$(DESTDIR)$(PREFIX)
 #	cp setup.sh $(PREFIX)
 
 dist: all
diff -Naur ORIG/pyext/setup.py PATCHED/pyext/setup.py
--- ORIG/pyext/setup.py	2026-03-25 14:52:28.118276465 +0000
+++ PATCHED/pyext/setup.py	2026-03-25 14:52:28.118329835 +0000
@@ -3,10 +3,9 @@
 from glob import glob
 
 import os
-#srcdir = os.path.abspath(os.path.join("./")
-srcdir = os.environ["PROF_ROOT"]
-libdir = os.path.abspath(os.path.join(srcdir, "lib"))
-incdir = os.path.abspath(os.path.join(srcdir, "include"))
+srcdir = os.path.relpath("./")
+libdir = os.path.relpath("../lib")
+incdir = os.path.relpath("../include")
 os.environ.setdefault("CC", "g++")
 os.environ.setdefault("CXX", "g++")
 
@@ -18,13 +17,13 @@
                 ["professor2/core.cpp"],
                 language="C++",
                 depends=glob("../include/*.h"),
-                include_dirs=[incdir, os.path.join(srcdir, "pyext", "professor2")],
-                extra_compile_args="-std=c++11 -O3 -Wno-unused-but-set-variable -Wno-sign-compare".split(),
+                include_dirs=[incdir, os.path.join(srcdir, "pyext", "professor2","../include", "../", "./")],
+                extra_compile_args="-I. -I./include -I../ -I../include -std=c++11 -O3 -Wno-unused-but-set-variable -Wno-sign-compare".split(),
                 library_dirs=[libdir],
                 runtime_library_dirs=[],
                 libraries=["Professor2"])
 
-v = os.environ.get("PROF_VERSION", "X.Y.Z")
+v = os.environ.get("PROF_VERSION", "2.5.1")
 setup(name = "professor2",
       version=v,
       ext_modules = [ext],
