Sabtu, 28 April 2012

Bikin Header Otomatis dengan Automake / Autotools

Pernah ngalamin pas lagi build project, eh kompilasi gagal cuma gara-gara file header belum ada? Contohnya kayak resource.h yang sebenarnya harus dibangkitin dulu sebelum bagian lain jalan.

Nah, ada trik gampangnya di Automake. Tinggal tambahin baris ini di Makefile.am:


BUILT_SOURCES = resource.h
  

Jadi setiap kali build, file resource.h bakal otomatis dibuat lebih dulu sebelum compiler ngerjain yang lain. Praktis banget, kan?

Contoh Nyatanya

Di project WDI (Windows Driver Installer) buat libusb 1.0, isi Makefile.am-nya kurang lebih kayak gini:


BUILT_SOURCES = resource.h
lib_LTLIBRARIES = libusb-wdi.la

LIB_SRC = resource.h infs.h usbi.h installer.h installer_library.h installer_library.c

libusb_wdi_la_CFLAGS = $(VISIBILITY_CFLAGS) $(AM_CFLAGS) -L../../libusb/libusb/.libs -lusb-1.0 
libusb_wdi_la_SOURCES = $(LIB_SRC)

resource.h:
    ../embedder/embedder.exe resource.h

clean-local:
    -rm -rf resource.h
  

Nah dengan setup kayak gitu, resource.h selalu dibangkitin duluan. Jadi nggak ada lagi error gara-gara header ilang pas build.

Trik kecil, tapi lumayan nyelametin waktu kalau project kamu memang butuh file header yang dinamis.

<< Beranda