From 8c0c60187088b6841be7b1dbaf335eea2bd46468 Mon Sep 17 00:00:00 2001 From: Gus Smith Date: Fri, 29 May 2026 09:57:50 -0700 Subject: Fix include path --- sources/api/pySoftMC/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sources/api/pySoftMC/Makefile') diff --git a/sources/api/pySoftMC/Makefile b/sources/api/pySoftMC/Makefile index 771df53..0c1d241 100644 --- a/sources/api/pySoftMC/Makefile +++ b/sources/api/pySoftMC/Makefile @@ -8,7 +8,7 @@ program_CXX_OBJS := ${program_CXX_SRCS:.cpp=.o} program_CXX_OBJS := ${program_CXX_OBJS:.c=.o} program_OBJS := $(program_CXX_OBJS) -program_INCLUDE_DIRS := . .. /usr/include/python${python_version} ../ext/pybind11/include/pybind11 +program_INCLUDE_DIRS := . .. /usr/include/python${python_version} ../ext/pybind11/include program_LIBRARY_DIRS := program_LIBRARIES := python${python_version} CPPFLAGS += -g -std=c++14 -pthread -O3 -fPIC -Wall -- cgit v1.2.3 From 499d389779f7881054ecd691db7ebea49eb5a492 Mon Sep 17 00:00:00 2001 From: Gus Smith Date: Fri, 29 May 2026 10:01:23 -0700 Subject: Improve makefile portability --- sources/api/pySoftMC/Makefile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'sources/api/pySoftMC/Makefile') diff --git a/sources/api/pySoftMC/Makefile b/sources/api/pySoftMC/Makefile index 0c1d241..b03b1a9 100644 --- a/sources/api/pySoftMC/Makefile +++ b/sources/api/pySoftMC/Makefile @@ -1,21 +1,19 @@ -# https://stackoverflow.com/questions/4933285/how-to-determine-python-version-in-makefile -python_version_full := $(wordlist 2,4,$(subst ., ,$(shell python3 --version 2>&1))) -python_version := $(word 1,${python_version_full}).$(word 2,${python_version_full}) - program_NAME := pySoftMC program_CXX_SRCS := $(wildcard ../*.c) $(wildcard ../*.cpp) ./pySoftMC.cpp program_CXX_OBJS := ${program_CXX_SRCS:.cpp=.o} program_CXX_OBJS := ${program_CXX_OBJS:.c=.o} program_OBJS := $(program_CXX_OBJS) -program_INCLUDE_DIRS := . .. /usr/include/python${python_version} ../ext/pybind11/include +python_INCLUDE_FLAGS := $(shell python3-config --includes) +program_INCLUDE_DIRS := . .. ../ext/pybind11/include program_LIBRARY_DIRS := -program_LIBRARIES := python${python_version} +program_LIBRARIES := CPPFLAGS += -g -std=c++14 -pthread -O3 -fPIC -Wall -CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir)) -DPYSMC +CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir)) $(python_INCLUDE_FLAGS) -DPYSMC LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir)) LDFLAGS += $(foreach library,$(program_LIBRARIES),-l$(library)) +LDFLAGS += $(shell python3-config --ldflags --embed 2>/dev/null || python3-config --ldflags) SHARED_LIB_FLAGS := -shared -fPIC -- cgit v1.2.3 From ac29b5a73986bf6c9413751078c9a234842bcbe4 Mon Sep 17 00:00:00 2001 From: Gus Smith Date: Fri, 29 May 2026 10:26:32 -0700 Subject: Try a different approach via setup.py --- sources/api/pySoftMC/Makefile | 16 +++++++--------- sources/api/pySoftMC/setup.py | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 sources/api/pySoftMC/setup.py (limited to 'sources/api/pySoftMC/Makefile') diff --git a/sources/api/pySoftMC/Makefile b/sources/api/pySoftMC/Makefile index b03b1a9..f7620f4 100644 --- a/sources/api/pySoftMC/Makefile +++ b/sources/api/pySoftMC/Makefile @@ -4,16 +4,14 @@ program_CXX_OBJS := ${program_CXX_SRCS:.cpp=.o} program_CXX_OBJS := ${program_CXX_OBJS:.c=.o} program_OBJS := $(program_CXX_OBJS) -python_INCLUDE_FLAGS := $(shell python3-config --includes) +PYTHON_INCLUDES ?= $(shell python3-config --includes) +PYTHON_LDFLAGS ?= $(shell python3-config --ldflags --embed 2>/dev/null || python3-config --ldflags) +PYTHON_EXT_SUFFIX ?= $(PYTHON_EXT_SUFFIX) program_INCLUDE_DIRS := . .. ../ext/pybind11/include -program_LIBRARY_DIRS := -program_LIBRARIES := CPPFLAGS += -g -std=c++14 -pthread -O3 -fPIC -Wall -CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir)) $(python_INCLUDE_FLAGS) -DPYSMC -LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir)) -LDFLAGS += $(foreach library,$(program_LIBRARIES),-l$(library)) -LDFLAGS += $(shell python3-config --ldflags --embed 2>/dev/null || python3-config --ldflags) +CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir)) $(PYTHON_INCLUDES) -DPYSMC +LDFLAGS += $(PYTHON_LDFLAGS) SHARED_LIB_FLAGS := -shared -fPIC @@ -25,10 +23,10 @@ all: $(program_NAME) @- $(RM) $(program_OBJS) $(program_NAME): $(program_OBJS) - $(CC) $(CPPFLAGS) ${SHARED_LIB_FLAGS} $(program_OBJS) -o $(program_NAME)$(shell python3-config --extension-suffix) $(LDFLAGS) + $(CC) $(CPPFLAGS) ${SHARED_LIB_FLAGS} $(program_OBJS) -o $(program_NAME)$(PYTHON_EXT_SUFFIX) $(LDFLAGS) clean: - @- $(RM) $(program_NAME)$(shell python3-config --extension-suffix) + @- $(RM) $(program_NAME)$(PYTHON_EXT_SUFFIX) @- $(RM) $(program_OBJS) distclean: clean diff --git a/sources/api/pySoftMC/setup.py b/sources/api/pySoftMC/setup.py new file mode 100644 index 0000000..c353396 --- /dev/null +++ b/sources/api/pySoftMC/setup.py @@ -0,0 +1,22 @@ +from setuptools import setup, Extension +import os + +here = os.path.dirname(os.path.abspath(__file__)) +api_dir = os.path.join(here, "..") +pybind11_include = os.path.join(here, "../ext/pybind11/include") + +ext = Extension( + "pySoftMC", + sources=[ + os.path.join(api_dir, "board.cpp"), + os.path.join(api_dir, "instruction.cpp"), + os.path.join(api_dir, "platform.cpp"), + os.path.join(api_dir, "prog.cpp"), + os.path.join(here, "pySoftMC.cpp"), + ], + include_dirs=[here, api_dir, pybind11_include], + language="c++", + extra_compile_args=["-std=c++14", "-pthread", "-O3", "-DPYSMC"], +) + +setup(name="pySoftMC", ext_modules=[ext]) -- cgit v1.2.3 From ec9d9e6e7fbe7623d27069789a6a0380a2feb1c2 Mon Sep 17 00:00:00 2001 From: Gus Smith Date: Fri, 29 May 2026 10:33:07 -0700 Subject: Undo some changes we're no longer using --- sources/api/pySoftMC/Makefile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'sources/api/pySoftMC/Makefile') diff --git a/sources/api/pySoftMC/Makefile b/sources/api/pySoftMC/Makefile index f7620f4..76f8f6e 100644 --- a/sources/api/pySoftMC/Makefile +++ b/sources/api/pySoftMC/Makefile @@ -1,19 +1,23 @@ +# https://stackoverflow.com/questions/4933285/how-to-determine-python-version-in-makefile +python_version_full := $(wordlist 2,4,$(subst ., ,$(shell python3 --version 2>&1))) +python_version := $(word 1,${python_version_full}).$(word 2,${python_version_full}) + program_NAME := pySoftMC program_CXX_SRCS := $(wildcard ../*.c) $(wildcard ../*.cpp) ./pySoftMC.cpp program_CXX_OBJS := ${program_CXX_SRCS:.cpp=.o} program_CXX_OBJS := ${program_CXX_OBJS:.c=.o} program_OBJS := $(program_CXX_OBJS) -PYTHON_INCLUDES ?= $(shell python3-config --includes) -PYTHON_LDFLAGS ?= $(shell python3-config --ldflags --embed 2>/dev/null || python3-config --ldflags) -PYTHON_EXT_SUFFIX ?= $(PYTHON_EXT_SUFFIX) -program_INCLUDE_DIRS := . .. ../ext/pybind11/include +program_INCLUDE_DIRS := . .. /usr/include/python${python_version} ../ext/pybind11/include +program_LIBRARY_DIRS := +program_LIBRARIES := python${python_version} CPPFLAGS += -g -std=c++14 -pthread -O3 -fPIC -Wall -CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir)) $(PYTHON_INCLUDES) -DPYSMC -LDFLAGS += $(PYTHON_LDFLAGS) +CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir)) -DPYSMC +LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir)) +LDFLAGS += $(foreach library,$(program_LIBRARIES),-l$(library)) -SHARED_LIB_FLAGS := -shared -fPIC +SHARED_LIB_FLAGS := -shared -fPIC CC=g++ @@ -23,10 +27,10 @@ all: $(program_NAME) @- $(RM) $(program_OBJS) $(program_NAME): $(program_OBJS) - $(CC) $(CPPFLAGS) ${SHARED_LIB_FLAGS} $(program_OBJS) -o $(program_NAME)$(PYTHON_EXT_SUFFIX) $(LDFLAGS) + $(CC) $(CPPFLAGS) ${SHARED_LIB_FLAGS} $(program_OBJS) -o $(program_NAME)$(shell python3-config --extension-suffix) $(LDFLAGS) clean: - @- $(RM) $(program_NAME)$(PYTHON_EXT_SUFFIX) + @- $(RM) $(program_NAME)$(shell python3-config --extension-suffix) @- $(RM) $(program_OBJS) distclean: clean -- cgit v1.2.3 From a0539f79a130abdd1ebc4d59e083aa569061d22a Mon Sep 17 00:00:00 2001 From: Gus Smith Date: Fri, 29 May 2026 10:37:52 -0700 Subject: Add back whitespace --- sources/api/pySoftMC/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sources/api/pySoftMC/Makefile') diff --git a/sources/api/pySoftMC/Makefile b/sources/api/pySoftMC/Makefile index 76f8f6e..0c1d241 100644 --- a/sources/api/pySoftMC/Makefile +++ b/sources/api/pySoftMC/Makefile @@ -17,7 +17,7 @@ CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir)) -DPYSM LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir)) LDFLAGS += $(foreach library,$(program_LIBRARIES),-l$(library)) -SHARED_LIB_FLAGS := -shared -fPIC +SHARED_LIB_FLAGS := -shared -fPIC CC=g++ -- cgit v1.2.3