Как я могу сделать Makefile, потому что это лучший способ, когда вы распространяете программу по исходному коду. Помните, что это для программы на C++, и я начинаю в мире разработки C. Но возможно ли сделать Makefile для моих программ Python?Создание Makefile
ответ
С вашего вопроса это звучит как учебное пособие или обзор того, что на самом деле делают Makefiles.
Хорошие места для начала - это документация GNU Make.
Включает в себя следующий обзор «Утилита make автоматически определяет, какие фрагменты большой программы необходимо перекомпилировать и выдает команды для их перекомпиляции».
И его первые три главы охватывает:
- Обзор сделать
- Введение в Makefiles
- Пишущие Makefiles
Спасибо, это очень хорошая база. –
Я использую Makefiles для некоторых проектов Python, но это весьма сомнительно ... Я такие вещи, как:
SITE_ROOT=/var/www/apache/...
site_dist:
cp -a assets/css build/$(SITE_ROOT)/css
cp -a src/public/*.py build/$(SITE_ROOT)
и так далее. Makefile - это не что иное, как системы пакетного исполнения (и довольно сложные). Вы можете использовать обычные инструменты Python (для генерации .pyc и других) так же, как и GCC.
PY_COMPILE_TOOL=pycompiler
all: myfile.pyc
cp myfile.pyc /usr/share/python/...wherever
myfile.pyc: <deps>
$(PY_COMPILE_TOOL) myfile.py
Тогда
$ make all
И так далее. Просто относитесь к своим операциям, как к любому другому. Ваш pycompiler
может быть что-то простое, как:
#!/usr/bin/python
import py_compile
py_compile.compile(file_var)
или некоторые вариации
$ python -mcompileall .
Это все равно. Makefiles - это не что-то особенное, просто автоматическое исполнение и возможность проверки необходимости обновления файлов.
Спасибо за Python часть помощи! –
Это совершенно законное использование Make-файлов, я не думаю, что это сомнительно вообще. –
@dF Попробуйте сказать, что для моих правил Makefile, которые удаляют и перезагружают таблицы SQL на промежуточном сервере: P –
Простой Makefile
обычно состоит из множества целей, его зависимостей, и действия, выполняемые каждой цели:
all: output.out
output.out: dependency.o dependency2.o
ld -o output.out dependency.o dependency2.o
dependency.o: dependency.c
gcc -o dependency.o dependency.c
dependency2.o: dependency2.c
gcc -o dependency2.o dependency2.c
мишень all
(который является первым в данном примере) и пытается построить его если они не существуют или не обновлены. будет выполняться, если в команде make
не указан целевой аргумент.
... потому что это первое, а не потому, что оно называется «все», правильно? – Stephan202
@ Stephan202: Конечно. Это был просто пример. Но, наверное, я должен был упомянуть об этом, чтобы уменьшить вероятность путаницы. –
Также полезно использовать правило .PHONY! –
Как я могу сделать Makefile, потому что это наилучшим образом при распространении программы по исходному коду
Это не так. Например, KDE использует CMake, а Wesnoth использует SCons. Я бы предложил одну из этих систем, они легче и мощнее, чем делают. CMake может генерировать make-файлы.:-)
Спасибо большое! –
Не используйте SCons, если у вас есть какая-либо забота о скорости по мере роста вашего проекта: если вы хотите создать систему на основе Python, взгляните на Waf. – jkp
Если вы спрашиваете о портативной форме создания Makefiles вы можете попытаться взглянуть на http://www.cmake.org/cmake/project/about.html
Спасибо, это хорошо. –
Для программ на языке Python, они, как правило, распространяются с setup.py
скриптом, который использует distutils
для того, чтобы построить программного обеспечения. distutils
имеет обширный documentation, который должен быть хорошей отправной точкой.
- 1. Создание Makefile для Unix
- 2. Создание вложенного файла makefile
- 3. Создание makefile FORTRAN
- 4. Создание Makefile в Java
- 5. Создание/улучшающий Makefile
- 6. Создание Makefile в MonoDevelop
- 7. Makefile ... создание статической библиотеки
- 8. Создание общего файла makefile
- 9. Создание Makefile в Raspbian
- 10. Первичный makefile создание каталогов
- 11. Создание каталога Makefile для подкаталогов
- 12. Создание Makefile для г ++ компилятор
- 13. makefile пропускает создание каталога сборки
- 14. создание Makefile для 2 целей
- 15. Создание Makefile для нескольких казней
- 16. Создание Makefile с опцией отладки
- 17. создание решения из makefile VS2010
- 18. создание файла makefile для немого
- 19. Создание моего собственного файла makefile [Ошибка 255]
- 20. Создание php5.3 с ./configure не создавая Makefile
- 21. Создание файла Makefile с различными исполняемыми файлами
- 22. Создание нескольких разделяемых библиотек с одним Makefile
- 23. Создание Makefile для компиляции 2 файла сразу
- 24. Borland C++ 5.0 Создание файла Makefile
- 25. Makefile: Создание архивных файлов всех вложенных папок
- 26. Создание Makefile для фляги исполняемого файла
- 27. GNU Make: делегировать создание цели внешнему Makefile
- 28. Создание Makefile для кода C, работает без ./
- 29. Создание надежного Makefile для C++-программы
- 30. Makefile: последовательность выполнения Makefile,
Подождите ... Вы хотите сделать make-файл для своих приложений * Python *? Зачем? –
Да, но я хочу и для моего проекта C. Python MakeFile - это только идея. Благодарю. –
Вы нас обманываете? Секунды неуместны Вопрос через час http://stackoverflow.com/questions/1114658/download-file-using-c –