Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion configure/CONFIG
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ INSTALL_LOCATION = $(TOP)

# As soon as python3 is the default configuration
# PYTHON_CONFIG=python3-config
PYTHON_CONFIG=python-config
#PYTHON_CONFIG=python-config
PYTHON_CONFIG=/epics/iocs/ioc-hkl/.pixi/envs/default/bin/python3.12-config

# CONFIG_SITE files contain other build configuration settings
include $(TOP)/configure/CONFIG_SITE
Expand Down
26 changes: 20 additions & 6 deletions configure/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,33 @@ TOP=..
include $(TOP)/configure/CONFIG
include $(TOP)/configure/CONFIG_SITE

TARGETS = $(CONFIG_TARGETS) CONFIG.PyDevice
TARGETS = $(CONFIG_TARGETS)
CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))
CONFIGS += CONFIG.PyDevice

include $(TOP)/configure/RULES

# Starting with Python 3.8, python-config needs --embed flag
ifeq (,$(findstring embed,$(shell $(PYTHON_CONFIG) --help)))
PYDEV_SYS_PROD_LIBS = $(patsubst -l%,%,$(filter -l%,$(shell $(PYTHON_CONFIG) --ldflags)))
PYDEV_LDFLAGS_RAW = $(shell $(PYTHON_CONFIG) --ldflags)
else
PYDEV_SYS_PROD_LIBS = $(patsubst -l%,%,$(filter -l%,$(shell $(PYTHON_CONFIG) --ldflags --embed)))
PYDEV_LDFLAGS_RAW = $(shell $(PYTHON_CONFIG) --ldflags --embed)
endif
PYDEV_USR_CXXFLAGS = $(filter -I%,$(shell $(PYTHON_CONFIG) --cflags))

# Split ldflags into -L (dirs) and -l (libs)
PYDEV_SYS_PROD_LIBS = $(patsubst -l%,%,$(filter -l%,$(PYDEV_LDFLAGS_RAW)))
PYDEV_USR_LDFLAGS = $(filter -L%,$(PYDEV_LDFLAGS_RAW))

PYDEV_USR_CXXFLAGS = $(filter -I%,$(shell $(PYTHON_CONFIG) --cflags))

CONFIG.PyDevice:
@echo "SYS_PROD_LIBS += $(PYDEV_SYS_PROD_LIBS)" > $(TOP)/configure/$@
@echo "USR_CXXFLAGS += $(PYDEV_USR_CXXFLAGS)" >> $(TOP)/configure/$@
@echo "# Generated by configure/Makefile using $(PYTHON_CONFIG)" > $@
@echo "SYS_PROD_LIBS += $(PYDEV_SYS_PROD_LIBS)" >> $@
@echo "USR_LDFLAGS += $(PYDEV_USR_LDFLAGS)" >> $@
@echo "USR_CXXFLAGS += $(PYDEV_USR_CXXFLAGS)" >> $@

clean: clean_pydevice

clean_pydevice:
$(RM) CONFIG.PyDevice