Sơ lược về Make

Manh

December 13, 2015

Bài viết

1. Make là gì?

GNU Make là một công cụ kiểm soát việc tạo ra các file thực thi và những file khác (không là file mã nguồn) của một chương trình từ mã nguồn của chương trình đó.

Make có thể hiểu được cách để build phần mềm của bạn từ một file gọi là makefile, trong đó liệt kê những file đích và cách để làm ra những file đó từ các file khác. Khi bạn viết chương trình, bạn nên viết một makefile cho nó, và có thể sử dụng Make để build và cài đặt chương trình của bạn.

– Make giúp người dùng cuối có thể build và cài đặt gói phần mềm của bạn mà không cần để ý tới các bước cụ thể – bởi những chi tiết đó đã nằm trong makefile.

– Make tìm ra những file nào sẽ được cập nhật, dựa trên file nguồn nào đã được thay đổi. Và cũng xác định trình tự cập nhật các file trong trường hợp file đích này phụ thuộc vào một file đích kia. Vậy nên nếu bạn thay đổi vài dòng trong mã nguồn và sau đó chạy Make, bạn sẽ không cần biên dịch lại toàn bộ chương trình. Make chỉ thay đổi những file đích liên quan đến file nguồn mà bạn thay đổi.

– Make không giới hạn về bất cứ ngôn ngũ lập trình nào. Trong makefile sẽ chỉ đến shell (shell là giao diện tới service của hệ điều hành) để xử lý công việc. Những câu lệnh này có thể gọi một trình dịch để tạo ra các file object, gọi linker để tạo ra một file thực thi (link các object), hoặc gọi ar để cập nhật một thư viện, hoặc gọi TeX hay Makeinfo để cập nhật tài liệu phần mềm.

– Ngoài giúp bạn build phần mềm, Make cũng có thể giúp bạn kiểm soát việc cài đặt hoặc gỡ bỏ, hoặc bất cứ việc gì bạn cần làm nhiều đến nỗi việc viết ra một công thức thực thi là cần thiết.

(Phần này được dịch từ trang chủ https://www.gnu.org/software/make/)

2. Makefile

Như chúng ta đã biết ở trên, makefile như là một file chứa các công thức mà Make sẽ chạy giúp bạn. Đối với makefile, bạn có thể hiểu đơn giản rằng những thứ ở trong makefile bao gồm các Target và Dependency. Target là một đối tượng cần được “make”, Dependency là những thứ cần thiết để tạo nên Target đó. Phần mềm của chúng ta sẽ có hàng loạt những Target và Dependency chồng chéo hoặc không chồng chéo nhau để tạo ra sản phẩm đích, đừng lo lắng, cứ liệt kê ra, Make sẽ biết đúng trình tự để thực hiện công việc. Cấu trúc của một rule đơn giản trong makefile:

target:    dependencies
                  commands

Ở đây commands chính là những câu lệnh để tiến hành xây dựng target. Khi gọi Make, bạn có thể chỉ ra target cụ thể để Make chạy, hoặc Make sẽ tự chọn target được liệt kê đầu tiên (dĩ nhiên nếu target đó phụ thuộc (depends on) vào một target khác thì những target đó phải được cập nhật trước).

Alright, bài viết này mình chỉ giới thiệu sơ lược về Make, hẹn mọi người trong một bài viết khác cụ thể và chi tiết hơn về cách sử dụng công cụ này : )

Comments

comments

Related Posts

3 điều không ổn của công ty cũ (phần 2)

Manh

November 22, 2017

Bài viết

2. Code Review Không nhiều công ty có quy trình Code Review, đặc biệt là các công ty outsource. Họ thường bỏ qua review để cam kết thời gian hoàn thành ngắn nhất và nó cũng dường như là “thừa” khi sản phẩm đã làm hài lòng khách hàng, ít nhất là cho tới thời […]

Read More

3 điều không ổn của công ty cũ (phần 1)

Manh

November 4, 2017

Bài viết

Bài viết này nhằm mục đích chỉ trích những vấn đề mà bản thân mình cảm thấy không ổn khi làm việc trong công ty công nghệ. Công ty cũ ở đây có thể là một, hoặc một vài công ty mà mình đã từng làm việc, ngắn hạn hay dài hạn. Tuy nhiên bài […]

Read More