سؤال

أحاول الحصول على autofoo لاختبار ملف أقصى نسخة من بيثون بدلا من الحد الأدنى. مثال:

AC_REQUIRE([AM_PATH_PYTHON([2.7])])

... سيتم اختبار Python> = 2.7 ، وربما سيحضر مع/usr/bin/python3. أريد أن يعيد أي شيء أكبر من Python2.7.

هل هناك طريقة مباشرة للقيام بذلك؟ سألت حولها ، وحتى الآن أفضل رد حصلت عليه هو "إعادة كتابة الماكرو".

شكرا مقدما!

هل كانت مفيدة؟

المحلول

1). اضف إليه acinclude.m4

`# my_CHECK_MAJOR_VERSION(VARIABLE, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])`  
`# ---------------------------------------------------------------------------`  
`# Run ACTION-IF-TRUE if the VAR has a major version >= VERSION.`  
`# Run ACTION-IF-FALSE otherwise.`  
AC_DEFUN([my_CHECK_MAJOR_VERSION],  
[AC_MSG_CHECKING([whether $1 $$1 major version == $2])  
case $$1 in  
$2*)  
  AC_MSG_RESULT([yes])  
  ifelse([$3], [$3], [:])  
  ;;  
*)  
  AC_MSG_RESULT([no])  
  ifelse([$4], , [AC_MSG_ERROR([$$1 differs from $2])], [$4])  
  ;;  
esac])  

2.) إضافة إلى zconfigure.inz

my_CHECK_MAJOR_VERSION([PYTHON_VERSION], [2])  

3.) aclocal, automake, autoconf

هذا هو.

نصائح أخرى

حجة الإصدار إلى AM_PATH_PYTHON هو اختياري. إذا كان Python مطلوبًا ، فاتصل به مثل هذا:

AM_PATH_PYTHON

إذا لم يكن مطلوبًا ، فاتصل به مثل هذا:

AM_PATH_PYTHON(,, [:])

حاليا، AM_PATH_PYTHON يضبط متغير القشرة $PYTHON_VERSION إلى قيمة sys.version[:3], ، والتي يمكنك اختبار نفسك.

يمكن أن يكون الحل البديل هو تعيين الافتراضي ل _am_python_interpreter_list, ، لتشمل فقط ثنائيات بيثون 2.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top