SW 설계/make 3

makefile 기초: 변수, 패턴 규칙, 자동 변수

앞서 소개한 makefile은 실행 파일 program을 빌드하는데 잘 사용될 수 있다. # Link program: main.o function.o c++ main.o function.o -o program # Compilation main.o: main.c c++ -c main.c -o main.o function.o: function.c c++ -c function.c -o function.o 만약, 컴파일러 옵션을 변경한다거나, 다른 컴파일러를 사용한다고 가정해보자. 또는, 컴파일할 소스 파일을 추가한다고 생각해보자. 컴파일러 옵션을 변경할 경우, (5,9) 의 action들을 모두 수정해야 하고, 이는 소스 파일의 개수만큼 수정해야 한다. 다른 컴파일러를 사용할 경우에도 마찬가지다. 만약 컴파일..

SW 설계/make 2021.10.19

makefile 기초: 소개 및 실행 과정

makefile은 어떤 모듈이 수정되어 다시 컴파일되어야 하는지 자동으로 결정해서, 필요한 파일들만 재 컴파일해서 하나의 프로그램으로 생성하므로 재컴파일에 따른 시간 낭비를 최소화할 수 있다. makefile은 makepp에게 프로그램을 컴파일하는 방법을 알려주는 명령어들의 집합이다. makepp는 표준 유닉스 make를 위해 작성된 makefile들을 읽을 수 있다. 소스 파일들을 사용하여 하나의 실행 프로그램으로 컴파일하는 과정은 복잡하고, 컴파일에 많은 시간이 소요된다. 개발자가 하나의 프로그램을 만들기 위해 각 소스 파일들을 컴파일하는 명령을 직접 입력하기엔 입력할 인자들이 너무 많다. 물론 shell script를 사용하여 프로그램을 컴파일할 수 도 있지만, 사용되는 소스 중 단 하나만 수정되어..

SW 설계/make 2021.10.19

makefile 사용시 유용한 팁들!

GNU make는 코드를 컴파일하기 위해 만들어진 유틸리티지만, 현재는 많은 파일들과 디렉토리들에서 변경사항을 적용하기 위한 용도로도 많이 사용된다. 따라서, 현재는 개발자 뿐만 아니라, 시스템 관리자에게도 매우 유용한 툴이다. make를 사용하려면 설정 파일이 필요한데, 이 설정 파일이름이 보통 makefile이다. 아무 인자없이 make를 실행하면, GNU make는 현재 작업 디렉토리에서 설정파일 GNUmakefile, Makefile, makefile을 찾는다. 만약 설정 파일에 다른 이름을 사용하고자 한다면 make -f filename을 사용해야 한다. 본 자료는 makefile을 사용할 때 혼동되거나, 자주 사용되는 구문들을 정리해보았다. 오늘 포함할 내용들은 아래와 같다. 변수 선언: =,..

SW 설계/make 2021.10.12