Makefile 만들때요..타켓을 정하는 부분이 있잖아요??

nettism의 이미지

안녕하십니까?? 항상 많은 도움 감사드립니다..

다름이 아니구요..아마 안 쓰시는 옵션이지 싶은데요...

왜....

Makefie 만드실때...혹 타켓을 정하시고 시작하시나요??

혹 하신다면 이 놈의 역할과, 옵션이 무엇무엇이 있을까요??

현재 예제를 보면..

all : example

이렇게만 나와서 말입니다..

혹 실행레벨을 정하는건가 싶기도 하지만..

간단히라도 설명 부탁드립니다..

감사합니다..

raymundo의 이미지

질문이 잘 이해가... ^^; 타겟이 없는 Makefile을 가지고 무얼 할 수 있을런지 잘 모르겠는데요.

타겟: 의존하는것
    수행할 명령

위와 같이 적어주면

make 타겟

했을 때, 타겟과 의존하는것의 수정 시각을 비교하여서 만일 타겟보다 나중에 의존하는 것이 바뀌었으면 "수행할 명령"을 수행합니다.

자세한 것은 다음 URL을 보시면 될 듯 하네요~
http://wiki.kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html

혹시나 해서 덧붙이면,

Makefile 안에는 보통 타겟이 여러개가 있을 텐데, 그냥 make 라고만 실행하면 첫번째 타겟을 수행합니다. 이것 때문에 혹시 타겟이 필요없다고 생각하셨는지도 모르겠네요.

좋은 하루 되세요!

nettism의 이미지

그리고 첨언 드리자면..타켓이 없다는..말이 조금 이상하게 들릴수도 있어서..첨언을 합니다..

엄밀히 말하자면..타켓이 없다라는 표현보다는...음...

제가 본 예제에서의 이해가 안 되는 부분이 있었던 것입니다..

제가 본 예제에서는 맨 처음은..

all : example #이렇게 시작합니다..

SUB_EXAM1 : .....
gcc ....

SUB_EXAM2 : .......
gcc .......

모 이렇게 시작하는데요...

저기 맨 위에 all : example 이라고 되어 있는것에 대한 설명이 없어서 여쭌 것입니다..

질문이 좀더 명확해 졌기를 바랍니다..

꾸벅..역시 답변좀..^^

일신 일일신 우일신


================
일신 일일신 우일신
================

raymundo의 이미지

아 그런 얘기셨군요 ^^;

맨 처음 타겟이 all이니 make all 이라고 매번 타이핑 할 필요 없이 make 라고만 해줘도 make all을 수행할 것이고...

make all하면 의존성이 example이니, example을 만들기 위해서 다시 make example에 해당하는 부분의 코드를 수행하겠죠. 저 Makefile 어딘가에는 example이라는 타겟이 있을 것으로 생각됩니다만.

정작 all 타겟에는 수행할 명령이 없으니 그 이후 종료. 결국 제일 첫 줄에 example 타겟을 그냥 적어주는 것과 똑같지 않느냐 할 수도 있는데, "make"하면 생략된 타겟이 "all"인 경우가 흔하다보니 일관성을 주기 위해서 저렇게 한 단계 추가한 것 같습니다.

좋은 하루 되세요!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.