개발자_이훈규
천천히, 빠르게. 개발자의 Repository
개발자_이훈규
전체 방문자
오늘
어제
  • 분류 전체보기 (473)
    • 티스토리 (4)
    • 개발자 뉴스 (2)
    • 소프트웨어 (203)
      • C (7)
      • c++ (25)
      • Objective-C (3)
      • Do it! 반응형 웹디자인 (4)
      • openGL (8)
      • Java (24)
      • Jni (3)
      • Android (9)
      • Wordpress (2)
      • 버그 만난 후 느낀점 (2)
      • Git (3)
      • node js (2)
      • window tablet (1)
      • HTML (3)
      • javascript (3)
      • perl (1)
      • AngularJS (0)
      • JSON (0)
      • Docker (3)
      • python (5)
      • jQuery (1)
      • MFC (4)
      • cocos studio (6)
      • Golang (1)
      • SQLite3 (0)
      • Spring Boot (8)
      • thymeleaf (0)
      • Django (0)
      • iOS (3)
      • skia (0)
      • VBA (0)
      • PHP (2)
      • Oracle (1)
      • JSP (0)
      • R (0)
    • TCP IP (2)
    • 금융 (0)
      • 금융 Study (0)
      • 금융 Archive (0)
      • 금융 Article (0)
    • 개인 프로젝트 (7)
      • gif 홈페이지 만들기 (0)
      • study app만들기 (0)
      • 크롤러 만들기 (1)
      • 카툰 홈페이지 만들기 (1)
      • 외주 홈페이지 만들기 (3)
      • 웹 홈페이지 만들기 (0)
      • 미디어 서버 만들기 (0)
      • 소개팅 어플 만들기 (0)
      • 인스타그램 풀스택 클론 코딩(인강 노트) (0)
      • 주식 모의거래 만들기 (1)
    • html php mysql (0)
    • node.Js (2)
    • 일상 (2)
    • 빈공간 uml 공부 (0)
    • Ubuntu(linux) (12)
    • 맥OS (10)
      • android 설치하기 (2)
    • Programming quizzes (0)
    • IoT (구 유비쿼터스) (16)
      • 라즈베리 파이 (11)
      • 아두이노 (5)
    • 하드웨어 (5)
      • 아수스 비보탭 노트8 asus vivotap no.. (2)
      • 크레마 카르타 (3)
    • 분석할 문장, 구문, 코드 (0)
    • 키보드 (1)
      • 해피해킹 (1)
    • 코드 라이언 (0)
    • 전자기기 (4)
    • Ted (0)
    • NAS (0)
    • 알고리즘 (0)
    • 연합인포맥스 (0)
    • 이벤트 응모함 (4)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • CODE
  • C++
  • 예제
  • 설치
  • 에러
  • 코드
  • 개발
  • error
  • Java
  • C
  • 소스
  • 설명
  • ubuntu
  • 방법
  • Python
  • GIT
  • 우분투
  • 라즈베리 파이
  • Example
  • install

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자_이훈규

천천히, 빠르게. 개발자의 Repository

카테고리 없음

2. Make가 소스 목록을 관리한다?

2014. 4. 10. 15:37

http://developinghappiness.com/?p=174 이 블로그를 보고 정리한 글입니다.




1. Make의 구성은? 에 이어서 Make이 의존성을 스스로 판단해서 Makefile을 수정해 주는 과정을 살펴보겠습니다.


편집 소스는 이전에 올렸던 파일(makefile, test.c)을 가지고 시작하겠습니다.




gccmakedep 라는 명령어는 파일의 상관관계를 파악한 후 Makefile을 자동으로 작성해준다고 되어 있었습니다.


그럼 제가 한번 해보겠습니다.


우선 test.c에 test.h, tset1.c에 test1.h를 연결하고 test.c에서 test1.h를 불러보겠습니다.



그럼 총 4개의 파일, 그리고 1개의 Makefile이 준비가 되었습니다.

( makefile  test.c  test.h  test1.c  test1.h )


makefile.tar.gz


이 상태에서 

$gccmakedep test.c test1.c

를 눌러보겠습니다.



아... 설치...ㅋ
sudo apt-get install xutils-dev
그럼 다시 해보겠습니다.


$gccmakedep test.c test1.c

아무런 변화는 없지만 이상없이 끝난것 같습니다.

그러면 Makefile을 살펴보겠습니다.



아래와 같이 # DO NOT DELETE 이하가 생성되었습니다.



그리고 make를 해보니...


echo "test.o is here"

test.o is here



음.... 음.... 뭐지?? 왜 test.o is here이 2번 생겼지?
echo가 그대로 나온것 자체도 약간 이상하지만 이건 명령문으로 나온게 아니라 단순히 실행된것 같은데요,
왜, make하면 gcc -o output -c ~~~ 이런식으로 많이 나오잖아요, 그냥 레시피를 출력한것 입니다.
이유는 echo가 나왔기 때문에, 심지어 먼저.


자, 그럼 이제 이러한 관계를 depend규칙으로 이용해서 자동으로 생성되게 만들어 보겠습니다.
블로그씨는 make depend라는 커맨드를 입력하면 수행되게 만들었군요.
한번 해보죠 ㅎㅎ


depend:

    gccmakedep $(SRCS)

를 추가했습니다.


그리고 파일을 하나 더 만들어보죠, test2.{h,c}로 test1.c에 연결해보겠습니다.


makefile.tar.gz



그리고 

make depend

를 해보겠습니다.



test2에 대한 내용이 없습니다.. deep이 1단계까지만 들어가나 보네요,

그럼 SRCS와 OBJS에 test1을 추가하겠습니다.

근데 일일이 추가하는것도 귀찮네요, 해당 블로그에 c와 o를 한줄에 작성하는 방법이 나와있었습니다. 그걸로 해볼게요




위와 같이 코드를 바꿨습니다. 자, 과연 make depend를 하면 DO NOT DELETE 부분에 test2의 배용이 추가될까요???


$make depend

$vim makefile




반영이 되었습니다!!


이상으로 gccmakedef써보기를 마칩니다^^


저작자표시 비영리 (새창열림)
    개발자_이훈규
    개발자_이훈규
    혼자 꽁양꽁양 개발하면서 놀아요~ - 노트같은 블로그

    티스토리툴바