คำอธิบายโดยย่อของ Makefile
1. Makefile เป็นชื่อ default input file ของโปรแกรม make
2. โปรแกรม make เป็น utility ที่ใช้งานแบบ command line
3. ชื่อ default input file ของ utility make จะทำการตรวจสอบว่ามีชื่อแฟ้มต่อไปนี้หรือไม่ โดยตรวจสอบเรียงตามลำดับดังนี้
3.1. gnumakefile
3.2. หรือ makefile
• กรณีถ้ามีทั้งสามแฟ้ม โปรแกรม make จะเลือกแฟ้มหมายเลข 1 มาทำงานก่อนเสมอ กรณีไม่มีก็จะเลือกแฟ้มหมายเลข 2 และหมายเลข 3 ตามลำดับ
• ถ้าไม่มีทั้งสามแฟ้ม ผู้ใช้ต้องระบุดังนี้
make –f ชื่อแฟ้มที่ใช้เป็น input file ของโปรแกรม make
3.3. Makefile มีรูปแบบ (format) ที่แน่นอน โดยประกอบด้วย 3 ส่วน
ส่วนที่ 1 เรียกว่า target และตามด้วยเครื่องหมาย : (ทางขวามือของ target)
• ในการตั้งชื่อ target ต้องสอดคล้องกับคำสั่ง (command) ทั้งนี้ขึ้นกับว่าเป็น command อะไร
ส่วนที่ 2 เรียกว่า dependency โดยวางอยู่ทางขวามือของเครื่องหมาย : (colon)
• dependency หมายถึงสิ่งที่ใช้เป็น input เพื่อให้ได้มาของ target
• กรณีไม่มี input ข้อมูลในส่วน dependency ไม่จำเป็นต้องมี
• ตัวอย่างเช่น
vaclib.o : veclib.c vector.h
โดย vaclib.o : เป็นชื่อ target และ veclib.c vector.h เป็นส่วนของ dependency
ส่วนที่ 3 เรียกว่า command เป็นส่วนที่ทำให้เกิดเป็น target
• โดยในส่วนของ command ให้เขียนในบรรทัดถัดไปต่อจากส่วนที่ 1 คือ target (กรณีไม่มีส่วนที่ 2) หรือเขียนต่อจากส่วนที่ 2 (กรณีที่มีส่วนที่ 2 คือ dependency)
• ในส่วน command นี้ ต้องขึ้นต้นด้วยช่องว่างซึ่งเกิดจากการกดปุ่ม tab หนึ่งครั้งเสมอ (ห้ามเคาะ space bar)
• และในส่วนที่ 3 สามารถมีมากกว่าหนึ่ง commands ได้
กรณี utility make ตรวจสอบพบว่าใน Makefile ไม่มีส่วนของ dependency ที่ต้องการ โปรแกรม make จะข้ามส่วนของ command สำหรับ target นั้นๆ และทำการตรวจสอบว่ามี target อื่นที่เหลืออยู่ มีการสร้างแฟ้มที่ต้องการหรือไม่
• ถ้ามี โปรแกรม make จะเรียก target ดังกล่าวมาใช้งาน
• ถ้าไม่มี (หรือหาไม่พบ) ระบบจะหยุดทำงาน