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

Cập nhật về blog

Manh

November 2, 2017

Bài viết

Chào các bạn đang xem trang DevNT.org. Đã gần 1 năm qua mình chưa viết thêm bài mới nào cho blog. Quãng thời gian vừa rồi có sự chuyển đổi về hướng đi trong sự nghiệp lập trình của mình đó là tập trung hơn cho lập trình game thay vì lập trình ứng dụng […]

Read More

Biến môi trường PATH

Manh

December 7, 2015

Bài viết

1. Biến môi trường là gì? Biến môi trường là những giá trị được cung cấp và phụ thuộc vào Hệ điều hành, vậy nên sự thay đổi của các biến môi trường (khi thay đổi môi trường chạy) sẽ ảnh hưởng đến quá trình thực thi của một ứng dụng, nếu như ứng dụng […]

Read More