automake中Makefile.am文件的學習

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等級,它只檢測必須的文件。
發佈了95 篇原創文章 · 獲贊 13 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章