Вы должны использовать _SOURCES
только для скомпилированных вещей, поэтому добавляется $(EXEEXT)
. Попробуйте это:
TESTS = unittests
if HAVE_PYTHON
TESTS += tester.py
# Possibly use += here depending on the rest of your Makefile.am
check_SCRIPTS = tester.py
# I added $(srcdir) here so VPATH builds still work.
tester.py: $(srcdir)/src/test/tester.py.in Makefile
$(SED) -e 's,[@]PYTHON[@],$(PYTHON),' < $< > $@
chmod +x $@
endif
Есть ли причина, по которой вы не просто делаете замену через configure.ac
?
AS_IF([test "$PYTHON" != ":"], [AC_CONFIG_FILES([src/test/tester.py])])
Это переделает скрипт с использованием config.status
и автоматически сгенерирует правила перестроения.
РЕДАКТ. 1:
Если вы действительно хотите запустить скрипт тестера python как часть make check
, я бы сделал это:
check-local:
if HAVE_PYTHON
$(PYTHON) $(srcdir)/src/test/tester.py
endif
(я поставил check-local
за пределами if HAVE_PYTHON
, чтобы вы могли определить другие команды для запуска как часть check-local
, если это необходимо.)
Вместо этого вы можете написать:
check-local:
test "$(PYTHON)" != ":" && $(PYTHON) $(srcdir)/src/test/tester.py
См. расширение в руководстве по автоматике.