From fb4d7a0c6f0ebbc9859c3b3c09dd8efbc31a38b8 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 10 Dec 2013 20:22:57 -0500 Subject: [PATCH] install python config Usable by 3rd party modules. Fix python3 stuff --- .gitignore | 1 + configure/CONFIG_PY | 20 ++++++++++++++------ configure/CONFIG_SITE | 2 ++ configure/Makefile | 15 ++++++++++----- devsupApp/src/Makefile | 16 +++++++--------- makehelper.py | 5 +++-- 6 files changed, 37 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index c71246f..c6b1d70 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ dbd python* _build envPaths +configure/os diff --git a/configure/CONFIG_PY b/configure/CONFIG_PY index eded27c..28ddd73 100644 --- a/configure/CONFIG_PY +++ b/configure/CONFIG_PY @@ -2,19 +2,27 @@ PYMODULE ?= YES ifneq ($(T_A),) -include $(TOP)/configure/O.$(T_A)/CONFIG_PY +-include $(dir $(lastword $(MAKEFILE_LIST)))/os/CONFIG_PY.$(EPICS_HOST_ARCH).Common +-include $(dir $(lastword $(MAKEFILE_LIST)))/os/CONFIG_PY.Common.$(T_A) +-include $(dir $(lastword $(MAKEFILE_LIST)))/os/CONFIG_PY.$(EPICS_HOST_ARCH).$(T_A) + ifneq ($(PY_OK),YES) -$(error Unable to get python configuration) +$(error Unable to get generated python configuration) endif -USR_CPPFLAGS += $(PY_INCDIRS:%=-I%) -USR_LDFLAGS += $(PY_LIBDIRS:%=-L%) +PYTHON ?= python$(PY_VER) + +SHRLIB_DEPLIB_DIRS += $(PY_LIBDIRS) +PROD_DEPLIB_DIRS += $(PY_LIBDIRS) + +INCLUDES += $(PY_INCDIRS:%=-I%) ifeq ($(HAVE_NUMPY),YES) -USR_CPPFLAGS += -DHAVE_NUMPY +TARGET_CPPFLAGS += -DHAVE_NUMPY endif -LIB_SYS_LIBS += python$(PY_VER) +LIB_SYS_LIBS += python$(PY_LD_VER) +PROD_SYS_LIBS += python$(PY_LD_VER) PY_INSTALL_DIR = $(INSTALL_LOCATION)/python$(PY_VER)/$(T_A) diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE index 15bb1a7..c0b8e32 100644 --- a/configure/CONFIG_SITE +++ b/configure/CONFIG_SITE @@ -32,4 +32,6 @@ CHECK_RELEASE = YES # take effect. #IOCS_APPL_TOP = +# Module will be build against this version of the +# Python interpreter PYTHON ?= python diff --git a/configure/Makefile b/configure/Makefile index 51da564..db1b37a 100644 --- a/configure/Makefile +++ b/configure/Makefile @@ -3,14 +3,19 @@ TOP=.. include $(TOP)/configure/CONFIG TARGETS = $(CONFIG_TARGETS) -CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS))) -TARGETS += CONFIG_PY RULES_PY +ifdef T_A +CONFIGS = CONFIG_PY RULES_PY os/CONFIG_PY.Common.$(T_A) +endif include $(TOP)/configure/RULES -CONFIG_PY: $(TOP)/makehelper.py +os/CONFIG_PY.Common.%: $(TOP)/makehelper.py + [ -d $(dir $@) ] || $(MKDIR) $(dir $@) $(PYTHON) $< $@ -RULES_PY: ../RULES_PY - install -m644 $< $@ +realclean:: py_clean +clean:: py_clean + +py_clean: + $(RMDIR) os diff --git a/devsupApp/src/Makefile b/devsupApp/src/Makefile index f467a09..311acdc 100644 --- a/devsupApp/src/Makefile +++ b/devsupApp/src/Makefile @@ -10,23 +10,23 @@ include $(TOP)/configure/CONFIG_PY #============================= # Build the IOC application -LIBRARY = pyDevSup$(PY_VER) +LIBRARY = pyDevSup$(PY_LD_VER) SHRLIB_VERSION = 0 DBD += pyDevSup.dbd -pyDevSup$(PY_VER)_SYS_LIBS += python$(PY_VER) +pyDevSup$(PY_LD_VER)_SYS_LIBS += python$(PY_LD_VER) setup_CPPFLAGS += -DXEPICS_ARCH=\"$(T_A)\" setup_CPPFLAGS += -DXPYDEV_BASE=\"$(abspath $(INSTALL_LOCATION))\" setup_CPPFLAGS += -DXEPICS_BASE=\"$(EPICS_BASE)\" setup_CPPFLAGS += -DPYDIR=\"python$(PY_VER)\" -pyDevSup$(PY_VER)_SRCS += setup.c -pyDevSup$(PY_VER)_SRCS += dbrec.c -pyDevSup$(PY_VER)_SRCS += dbfield.c -pyDevSup$(PY_VER)_SRCS += dbdset.c +pyDevSup$(PY_LD_VER)_SRCS += setup.c +pyDevSup$(PY_LD_VER)_SRCS += dbrec.c +pyDevSup$(PY_LD_VER)_SRCS += dbfield.c +pyDevSup$(PY_LD_VER)_SRCS += dbdset.c PROD_IOC = softIocPy @@ -37,9 +37,7 @@ DBD += softIocPy.dbd softIocPy_DBD += base.dbd softIocPy_DBD += pyDevSup.dbd -softIocPy_LIBS += pyDevSup$(PY_VER) - -softIocPy_SYS_LIBS += python$(PY_VER) +softIocPy_LIBS += pyDevSup$(PY_LD_VER) # softIocPy_registerRecordDeviceDriver.cpp derives from softIocPy.dbd softIocPy_SRCS += softIocPy_registerRecordDeviceDriver.cpp diff --git a/makehelper.py b/makehelper.py index bb84f40..c7bdc41 100644 --- a/makehelper.py +++ b/makehelper.py @@ -36,10 +36,11 @@ except ImportError: incdirs = [get_python_inc()]+get_numpy_include_dirs() libdirs = [get_config_var('LIBDIR')] -print('USR_CFLAGS +=',get_config_var('BASECFLAGS'), file=out) -print('USR_CXXFLAGS +=',get_config_var('BASECFLAGS'), file=out) +print('TARGET_CFLAGS +=',get_config_var('BASECFLAGS'), file=out) +print('TARGET_CXXFLAGS +=',get_config_var('BASECFLAGS'), file=out) print('PY_VER :=',get_config_var('VERSION'), file=out) +print('PY_LD_VER :=',get_config_var('LDVERSION') or get_config_var('VERSION'), file=out) print('PY_INCDIRS :=',' '.join(incdirs), file=out) print('PY_LIBDIRS :=',' '.join(libdirs), file=out) print('HAVE_NUMPY :=',have_np, file=out)