回文章列表
作者FourDollars.bbs@bbs.sayya.org (四元) 看板: linux
標題Re: [問題] GCC & Make 的程式專案管理
時間SayYA 資訊站 (2008/04/25 Fri 00:08:01)
※ 引述《littleboypis.bbs@ptt.cc (littleboypis)》之銘言:
> ※ 引述《FourDollars.bbs@bbs.sayya.org (四元)》之銘言:
> : 去學 CMake 或是 Autotools 之類的工具來管理
> : Autotools 的話可以參考 Tetralet 寫的教學
> : http://tetralet.luna.com.tw/index.php?op=ViewArticle&articleId=200&blogId=1
> 我看這篇文章
> 裡頭的Makefile還是要自已手動編輯?
> 這是一定的嗎?
> thanks
你要手動編輯的檔案是 Makefile.am
automake 會自動把 Makefile.am 轉成 Makefile.in
autoconf 從 configure.ac 產生的 configure 會自動把 Makefile.in 轉成 Makefile

簡單說你原本的程式可以寫一個像這樣的 Makefile.am 來管理

/* Makefile.am */
bin_PROGRAMS = main
main_SOURCES = main.c network/function.c fileio/iofunction.c
include_HEADERS = network/function.h fileio/iofunction.h

或是搭配使用 libtool 使用三個 Makefile.am 來管理

/* Makefile.am */
bin_PROGRAMS = main
main_SOURCES = main.c
main_LDADD = \
    $(top_builddir)/network/libnetwork.la \
    $(top_builddir)/fileio/libfileio.la
main_CPPFLAGS = \
    -I$(top_srcdir)/network \
    -I$(top_srcdir)/fileio
SUBDIRS = network fileio

/* network/Makefile.am */
lib_LTLIBRARIES = libnetwork.la
libnetwork_la_SOURCES = function.c

/* fileio/Makefile.am */
lib_LTLIBRARIES = libfileio.la
libfileio_la_SOURCES = iofunction.c
--
※ Origin: SayYA 資訊站 <bbs.sayya.org> 
◆ From: 59-104-129-57.adsl.dynamic.seed.net.tw
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻