update make config

This commit is contained in:
Michael Davidsaver
2013-03-30 11:26:07 -04:00
parent 395564ad24
commit 6c0abcb890
4 changed files with 71 additions and 9 deletions

View File

@ -31,3 +31,5 @@ CHECK_RELEASE = YES
# You must rebuild in the iocBoot directory for this to # You must rebuild in the iocBoot directory for this to
# take effect. # take effect.
#IOCS_APPL_TOP = </IOC/path/to/application/top> #IOCS_APPL_TOP = </IOC/path/to/application/top>
PYTHON ?= python

View File

@ -5,4 +5,9 @@ include $(TOP)/configure/CONFIG
TARGETS = $(CONFIG_TARGETS) TARGETS = $(CONFIG_TARGETS)
CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS))) CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))
TARGETS += CONFIG_PY
include $(TOP)/configure/RULES include $(TOP)/configure/RULES
CONFIG_PY: $(TOP)/makehelper.py
$(PYTHON) $< $@

View File

@ -5,16 +5,19 @@ include $(TOP)/configure/CONFIG
# ADD MACRO DEFINITIONS AFTER THIS LINE # ADD MACRO DEFINITIONS AFTER THIS LINE
#============================= #=============================
PYTHON = python ifdef T_A
# EG 2.7 include $(TOP)/configure/O.$(T_A)/CONFIG_PY
PY_VER = $(shell $(PYTHON) -c 'from distutils.sysconfig import get_config_var; print get_config_var("VERSION")') ifneq ($(PY_OK),YES)
# EG -I/usr/include/python2.7 $(error Unable to get python configuration)
PY_CFLAGS := -I$(shell $(PYTHON) -c 'from distutils.sysconfig import get_python_inc; print get_python_inc()') endif
# EG -L/usr/lib endif
PY_LIBDIR := -L$(shell $(PYTHON) -c 'from distutils.sysconfig import get_config_var; print get_config_var("LIBDIR")')
USR_CPPFLAGS += $(PY_CFLAGS) USR_CPPFLAGS += $(PY_INCDIRS:%=-I%)
USR_LDFLAGS += $(PY_LIBDIR) USR_LDFLAGS += $(PY_LIBDIRS:%=-L%)
ifeq ($(HAVE_NUMPY),YES)
USR_CPPFLAGS += -DHAVE_NUMPY
endif
#============================= #=============================
# Build the IOC application # Build the IOC application
@ -53,3 +56,11 @@ include $(TOP)/configure/RULES
#---------------------------------------- #----------------------------------------
# ADD RULES AFTER THIS LINE # ADD RULES AFTER THIS LINE
pyconfig:
@echo "Python Configuration for interpreter: $(PYTHON)"
@echo "Version: $(PY_VER)"
@echo "Found numpy: $(HAVE_NUMPY)"
@echo "Includes: $(PY_INCDIRS)"
@echo "Library path: $(PY_LIBDIRS)"
@echo "USR_CPPFLAGS: $(USR_CPPFLAGS)"
@echo "USR_LDFLAGS: $(USR_LDFLAGS)"

44
makehelper.py Normal file
View File

@ -0,0 +1,44 @@
#!/usr/bin/env python
"""
Set some python derived Makefile variables.
Emits something like the following
PY_OK := YES # indicates success of this script
HAVE_NUMPY := YES/NO
PY_VER := 2.6
PY_INCDIRS := /path ...
PY_LIBDIRS := /path ...
"""
import sys
if len(sys.argv)<2:
out = sys.stdout
else:
out = open(sys.argv[1], 'w')
from distutils.sysconfig import get_config_var, get_python_inc
incdirs = [get_python_inc()]
libdirs = [get_config_var('LIBDIR')]
have_np='NO'
try:
from numpy.distutils.misc_util import get_numpy_include_dirs
incdirs += get_numpy_include_dirs()
have_np='YES'
except ImportError:
pass
incdirs = [get_python_inc()]+get_numpy_include_dirs()
libdirs = [get_config_var('LIBDIR')]
print >>out,'PY_VER :=',get_config_var('VERSION')
print >>out,'PY_INCDIRS :=',' '.join(incdirs)
print >>out,'PY_LIBDIRS :=',' '.join(libdirs)
print >>out,'HAVE_NUMPY :=',have_np
print >>out,'PY_OK := YES'
out.close()