Membaca makefile

Mencoba mengartikan langsung dari contoh.

1. Contoh pertama

all: htktools hlmtools
htktools: $(HTKLIB)/HTKLib.a
(cd $(HTKTOOLS) && $(MAKE) all) \
|| case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac;

Continue reading “Membaca makefile”

Advertisements

Make : make install, make clean, dsb

.PHONY digunakan dalam makefile, untuk secara eksplisit memberitahu Make bahwa nama target tersebut fiksional (a build target name), tidak berasosiasi dengan nama suatu file. Misalnya jika pada makefile terdapat baris berikut

.PHONY: clean
clean:
rm -rf *.o

Maka menjalankan

make clean

akan mengeksekusi perintah di atas, meskipun di dalam folder terdapat file bernama clean. Nama target di dalam makefile yang tidak memproduksi output file dengan nama yang sama dengan nama target seharusnya diperlakukan dengan phony. Contoh nama target umum lainnya adalah all, install, clean, distclean, TAGS, info, dan check. Info lebih lanjut ada di sini dan di sini.

Contoh yang lebih sering adalah eksekusi

make install

target bernama install umumnya ada di dalam makefiles. Jika tidak menggunakan .phony, dan jika file bernama install terdapat di dalam direktori yang sama dengan makefile, maka menjalankan make install tidak akan mengeksekusi apapun.

CFLAGS

Disarikan dari sini, sini, sini

CFLAGS sering dideskripsikan ke dalam environment variable-nya gcc tapi sebetulnya tidak terdapat dalam official list-nya gcc environmental variable. CFLAGS adalah konvensi lama (jadul) dalam dunia unix, biasa digunakan dalam makefiles. Selain CFLAGS, variabel lain yang juga sering digunakan tapi sebenarnya tidak memiliki hubungan langsung dengan gcc adalah CC, CXX, CXXFLAGS, LDFLAGS, LD_LIBRARY_PATH. Makefile adalah tool lama untuk membangun sistem (“old-style build tool”) dalam dunia software development. Pada pengembangan software terkini, trend menggunakan makefile dianggap outdated (kuno).

Salah satu flags yang sering digunakan dalam makefile (menggunakan gcc) adalah:

-ggdb

Continue reading “CFLAGS”