이 단계에서는 현재 시스템 환경에 맞게 소스 코드를 설정한 후, 실행 가능한 프로그램으로 컴파일합니다. 이는 Linux 시스템에서 소스 코드로 소프트웨어를 빌드할 때 거치는 표준적인 2 단계 프로세스입니다.
먼저, 이전 단계에서 생성된 디렉토리로 이동해야 합니다. cd 명령어를 사용하여 pure-ftpd-1.0.50 디렉토리로 들어갑니다.
cd ~/project/pure-ftpd-1.0.50
소스 코드 디렉토리에 들어왔다면, 첫 번째 작업으로 configure 스크립트를 실행합니다. 이 스크립트는 시스템에 소프트웨어 빌드에 필요한 도구, 라이브러리, 의존성 파일들이 모두 갖춰져 있는지 점검합니다. 점검이 끝나면 컴파일 과정에 필요한 지침이 담긴 Makefile을 생성합니다.
스크립트를 실행할 때는 이름 앞에 ./를 붙여야 합니다. 이는 쉘에게 현재 디렉토리에 있는 configure 스크립트를 실행하라고 알려주는 것입니다.
./configure
스크립트가 실행되면서 다양한 점검 항목들이 화면에 빠르게 지나갈 것입니다. 이는 정상적인 과정입니다. 성공적으로 완료되면 아래와 유사한 요약 메시지가 나타납니다.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
...
checking for OpenSSL... no
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating man/Makefile
...
config.status: executing depfiles commands
Pure-FTPd has been configured.
config.status: creating Makefile이라는 문구를 확인하세요. 이는 Makefile이 성공적으로 생성되었음을 의미합니다.
두 번째 단계는 코드를 컴파일하는 것입니다. make 명령어는 앞서 생성된 Makefile을 읽고 컴파일러 (예: gcc) 를 적절한 옵션과 함께 실행하여, 사람이 읽을 수 있는 소스 코드 (.c 파일) 를 기계가 실행할 수 있는 바이너리 파일로 변환합니다.
이제 make 명령어를 실행하세요.
make
이 과정은 시간이 조금 걸릴 수 있습니다. make가 각 소스 파일에 대해 컴파일러를 호출함에 따라 많은 출력 내용이 나타납니다. 이것이 실제 컴파일이 진행되는 모습입니다.
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/labex/project/pure-ftpd-1.0.50/config/missing automake-1.15 --gnu src/Makefile)
...
gcc -g -O2 -Wall -W -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -c pure-ftpd.c
...
gcc -g -O2 -Wall -W -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -o pure-ftpd pure_ftpd-pure-ftpd.o pure_ftpd-log.o ...
...
make[1]: Leaving directory '/home/labex/project/pure-ftpd-1.0.50/src'
make 명령어가 오류 없이 종료되면 소프트웨어 컴파일이 성공적으로 완료된 것입니다. 이제 바이너리 파일들이 시스템에 설치될 준비가 되었으며, 다음 단계에서 설치를 진행하겠습니다.