Makefile이 무엇인지에 대한 간략한 소개
Makefile에 대한 포스팅을 하는 이유
나는 이동 중에 작은 http 서버를 만드는 것에 대해 썼습니다. 그 기사의 목적은 go 구성이었습니다. 그러나 몇 가지 다른 항목이 있었고 그 중 하나는 Makefile을 사용하는 것입니다. 내 친구는 기사가 Makefile에 대한 지식을 당연하게 여겼다고 말했습니다. 그래서 여기 이 글의 이유가 있습니다. 나는 당신이 독서를 즐기기를 바랍니다.
메이크파일이란?
Makefile은 Makefile을 만들고 이름을 지정하는 쉘 명령을 포함하는 특수 파일입니다. 일부 시스템은 makefile(소문자)을 사용합니다. 대신 Make는 makefile 실행을 시작하도록 설계된 유틸리티입니다. 해당 makefile이 포함된 디렉토리의 makefile에 make와 명령을 입력하면 명령이 실행됩니다. 자동 완성 기능을 사용하면 일부 명령줄 작업 호출 속도를 높일 수 있습니다.
쉘 명령 목록
Makefile은 쉘 명령의 목록이기 때문에 makefile을 처리할 쉘에 대한 명령을 작성해야 합니다. 한 셸에서 잘 작동하는 메이크파일이 다른 셸에서 제대로 실행되지 않을 수 있습니다. 도커 컨테이너 내부에는 문제가 없습니다.
규칙
Makefile은 규칙 목록입니다. 각 규칙은 대상을 정의하는 텍스트 종속성 줄로 시작하고 그 뒤에 콜론(:)이 오고 선택적으로 대상이 의존하는 구성 요소(파일 또는 기타 대상)의 열거가 표시됩니다. 종속선은 대상(콜론의 왼쪽)이 구성 요소(콜론의 오른쪽)에 종속되도록 정렬됩니다. 구성 요소를 대상의 전제 조건으로 참조하는 것이 일반적입니다.
자동 완성에 대한 몇 가지 제안
https://gist.github.com/tlrobinson/1073865
https://formulae.brew.sh/formula/bash-completion
규칙
일반적으로 각 대상에는 하나의 명령이 포함됩니다. 그러나 원하는 명령을 추가할 수 있습니다.
<target>: <file|target>
<command 1>
<command 2>
.
.
.
<command N>
대상이 다른 대상에 의존하는 경우 다음과 같이 작성할 수 있습니다.
target1:
<command 1>
target2: target1
<command 2>
하나 이상의 Makefile
하나 이상의 Makefile을 생성하는 경우 make를 입력하기 전에 올바른 디렉토리에 있는지 확인하십시오. 그리고 같은 폴더에 더 많은 Makefile이 존재한다면 make 명령어 이후에 전달하는 것을 잊지 마세요. 옵션은
-f
이고 전체 구문은 다음과 같습니다.$ make -f Mafefile.filename <command>
도커를 사용한 예
다음은 모든 프로젝트에 대한 기본 Makefile입니다. 더 많거나 적습니다. 예를 들어 더 복잡한 명령 대신 type just
make bash_web
를 정말 좋아합니다. 나는 각 단일 문자를 입력하는 것을 선호하는 사람들을 알고 있습니다. 이유가 이해가 되지 않습니다.default: up
up:
docker-compose up -d
build:
docker-compose up -d --build --remove-orphans
down:
docker-compose down
bash_web:
docker-compose exec web bash
bash_mysql:
docker-compose exec mysql bash
결론
이 게시물이 마음에 드시나요? 제안이나 개선 사항이 있습니까? 댓글에 적어주세요. 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(Makefile이 무엇인지에 대한 간략한 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sensorario/a-brief-introduction-to-what-makefiles-are-3fb1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)