http://www.cnblogs.com/zmlctt/p/4161547.html
http://blog.csdn.net/dengzhilong_cpp/article/details/7486791
創建一個 Makefile.am.這一步是創建Makefile很重要的一步,automake要用的腳本配置文件是Makefile.am,用戶需要自己創建相應的文件。之後,automake工具轉換成Makefile.in。
這個Makefile.am的內容如下:
------------------------------------------------
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=main
main_SOURCES=main.c
------------------------------------------------
其中的AUTOMAKE_OPTIONS爲設置automake的選項。由於GNU(在第1章中已經有所介紹)對自己發佈的軟件有嚴格的規範,比如 必須附 帶許可證聲明文件COPYING等,否則automake執行時會報錯。automake提供了三種軟件等級:foreign、gnu和gnits,讓用 戶選擇採用,默認等級爲gnu。在本例使用foreign等級,它只檢測必須的文件。
bin_PROGRAMS定義要產生的執行文件名。如果要產生多個執行文件,每個文件名用空格隔開。
main_SOURCES定義“main”這個執行程序所需要的原始文件。如果”main”這個程序是由多個原始文件所產生的,則必須把它所用到的 所有原 始文件都列出來,並用空格隔開。例如:若目標體“main”需要“main.c”、“sunq.c”、“main.h”三個依賴文件,則定義 main_SOURCES=main.c sunq.c main.h。要注意的是,如果要定義多個執行文件,則對每個執行程序都要定義相應的file_SOURCES。
lib_LTLIBRARIES = libaudiobox.la
libaudiobox_la_SOURCES = audio_streamops.c \
audio_rpc.c \
audio_chn.c
libaudiobox_la_CFLAGS = -I$(top_srcdir)/include \
-g -Wall -Werror\
$(LIBFR_CFLAGS) $(LIBEVENT_CFLAGS) \
$(LIBALSA_CFLAGS)
libaudiobox_la_LDFLAGS = $(LIBFR_LIBS) $(LIBEVENT_LIBS) \
$(LIBALSA_LIBS)
bin_PROGRAMS = audiobox #定義要產生的執行文件名。如果要產生多個執行文件,每個文件名用空格隔開
audiobox_CPPFLAGS = -I$(top_srcdir)/include \
-g -Wall -Werror\
$(LIBFR_CFLAGS) $(LIBEVENT_CFLAGS) \
$(LIBALSA_CFLAGS)
audiobox_LDFLAGS = -pthread -lrt -lasound \
$(LIBFR_LIBS) $(LIBEVENT_LIBS) \
$(LIBALSA_LIBS)
audiobox_SOURCES = \
audiobox.c \
audiobox_hal.c \
audiobox_listener.c \
audiobox_ctl.c \
audiobox_service.c \
audio_rpc.c \
audiobox_softvol.c
#main_SOURCES定義“main”這個執行程序所需要的原始文件。如果”main”這個程序是由多個原始文件所產生的,則必須把它所用到的所有原 始文件都列出來,並用空格隔開。例如:若目標體“main”需要“main.c”、“sunq.c”、“main.h”三個依賴文件,則定義 main_SOURCES=main.c sunq.c main.h。要注意的是,如果要定義多個執行文件,則對每個執行程序都要定義相應的file_SOURCES。
AUTOMAKE_OPTIONS=foreign #automake提供了三種軟件等級:foreign、gnu和gnits,讓用 戶選擇採用,默認等級爲gnu。在本例使用foreign等級,它只檢測必須的文件。