2009-07-11 6 views
2

어떻게 Makefile을 만들 수 있습니까? 소스 코드로 프로그램을 배포 할 때 가장 좋은 방법이기 때문입니다. 이것은 C++ 프로그램을위한 것이며 C 개발 세계에서 시작한다는 것을 기억하십시오. 하지만 내 파이썬 프로그램을위한 Makefile을 만들 수 있습니까? 그래서Makefile 만들기

SITE_ROOT=/var/www/apache/... 

site_dist: 
    cp -a assets/css build/$(SITE_ROOT)/css 
    cp -a src/public/*.py build/$(SITE_ROOT) 

과 :

+4

대기 ... * 파이썬 * 응용 프로그램 용 메이크 파일을 원하십니까? 왜? –

+0

네,하지만 제 C 프로젝트도 원합니다. 파이썬 MakeFile은 단지 아이디어 일뿐입니다. 감사. –

+0

우리를 바보로 만들고 있습니까? 몇 시간 안에 문제가 발생한다. http://stackoverflow.com/questions/1114658/download-file-using-c –

답변

11

질문에 따라 튜토리얼이나 Makefile이 실제로하는 이점에 대한 개요가 나오는 것 같습니다.

시작하기 좋은 곳은 GNU Make입니다.

다음 개요가 있습니다. "make 유틸리티는 재 컴파일해야하는 큰 프로그램 부분을 자동으로 판별하고 명령을 실행하여 재 컴파일합니다."

그리고 첫 세 장을 다룹의

  1. 개요 메이크에
  2. 소개합니다
  3. 쓰기 메이크가 있기 때문에 내가, 메이크를 할 수있는 방법
+0

감사합니다. 아주 좋은 자료입니다. –

6

내가 어떤 파이썬 프로젝트 메이크 파일을 사용하지만, 이것은 매우 의심은 ... 내가 좋아하는 것들 않습니다. Makefile은 일괄 처리 실행 시스템 일뿐입니다 (그리고 상당히 복잡한 것들). 당신은 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 

등등. 다른 사람들처럼 당신의 작업을 다루십시오.

#!/usr/bin/python 
import py_compile 
py_compile.compile(file_var) 

또는 그것은 모두 동일

$ python -mcompileall . 

에 약간의 변화 : 귀하의 pycompiler 같은 간단한 일을 할 수 있습니다. Makefile은 특별한 것이 아니라 자동 실행과 파일 업데이트가 필요한지 확인하는 기능입니다.

+0

Python 부분 도움! –

+0

그것은 Makefile의 완벽하게 합법적 인 사용입니다. 나는 그것이 모호하다고 생각하지 않습니다. –

+0

@dF 스테이징 서버에서 SQL 테이블을 삭제하고 재설정하는 My Makefile 규칙을 말하십시오 : P –

4

간단한 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 명령에 대상 인수가 지정되지 않은 경우 실행됩니다.

+2

... 첫 번째로 'all'이라는 이름이 아니기 때문에 처음입니까? – Stephan202

+0

@ Stephan202 : 예. 그것은 단지 예일뿐입니다. 그러나 혼란의 기회를 줄이기 위해 언급 했어야 할 것 같습니다. –

+0

또한 .PHONY 규칙이 유용합니다! –

4

소스 코드로 프로그램을 배포 할 때 가장 좋은 방법은

아니야. 예를 들어, KDE는 CMake을 사용하고 Wesnoth는 SCons을 사용합니다. 나는이 시스템 중 하나를 제안 할 것이고, make보다 쉽고 강력합니다. CMake는 메이크 파일을 생성 할 수 있습니다.:-) 당신이 그들이 보통을 구축하기 위해 distutils를 사용하는 setup.py 스크립트와 함께 배포하고, 파이썬 프로그램의 경우 http://www.cmake.org/cmake/project/about.html

+0

대단히 감사합니다 !!! –

+1

프로젝트가 성장함에 따라 속도에 신경을 쓰는 경우 SCons를 사용하지 마십시오. Python 기반 빌드 시스템을 원한다면 Waf를 살펴보십시오. – jkp

1

소프트웨어. distutils은 광범위한 시작 지점이어야하는 광범위한 documentation입니다.

+0

감사합니다. 좋습니다. –

3

보고 시도 할 수 있습니다 메이크를 만드는 휴대용 형태에 대해 질문하는 경우