2012-01-28 28 views
1

它已經有一段時間了,所以要溫柔。我寫的最後一個C程序是在90年代初。我想開始一個用C語言編寫的項目,這個項目將爲那些主流的Unix系統編譯,例如Mac,Linux,CentOS。我正在尋找啓動項目的最佳方式的指針,該項目將爲各種系統生成所有必需的配置文件。爲多種Unix風味啓動C程序的最佳方式是什麼?

Autoconf仍然是標準還是你介意給我介紹這樣做的最新方法?有我應該看的標準模板嗎?

+0

的Autoconf,CMake的,使用SCons或者是固體的選擇 - 自動工具是絕對的統治力的球員。 – Borealid 2012-01-28 04:16:11

+0

我從來沒有遇到問題,只是自己寫makefile文件:)你會學習一些關於每個發行版/操作系統的簡潔的東西 – 2012-01-28 05:31:29

回答

0

這裏有一些自動工具的模板,但我還沒有找到任何值得使用的模板。這裏有一個簡單的腳本來建立一個新的項目:

 
#!/bin/sh 

set -e 
DIR=${1:-$HOME/new-project} 
mkdir $DIR 
cd $DIR 
mkdir tests 
mkdir src 
cat > tests/basic.in << EOF 
#!/bin/sh 
set -e 
@[email protected]/../src/hello 
EOF 

: ${EMAIL=$(id -un)@$(hostname)} 
echo TESTS = basic > tests/Makefile.am 
echo bin_PROGRAMS = hello > src/Makefile.am 
echo SUBDIRS = src tests > Makefile.am 
echo 'int main(void) { return 1; }' > src/hello.c 
touch configure.ac 
autoscan 
sed -e [email protected]@$(basename $1)@ \ 
    -e s/VERSION/0.0.0/ \ 
    -e s/BUG-REPORT-ADDRESS/$EMAIL/ \ 
    -e '/AC_CONFIG_HEADERS/a\ 
: ${enable_silent_rules=yes} ' \ 
    -e '/AC_CONFIG_HEADERS/a\ 
AM_INIT_AUTOMAKE([foreign color-tests silent-rules])' \ 
    -e '/AC_OUTPUT/i\ 
AC_CONFIG_FILES([tests/basic],[chmod +x tests/basic])' \ 
    configure.scan > configure.ac 

注意,這看起來比它更復雜的,並通過設計創造在測試套件失敗的一個項目(或者,更確切地說,測試套件通過捕捉成功程序失敗的事實!)您基本上在每個Makefile.am中都需要一行,並且您需要將項目特定數據添加到自動生成的configure.ac中。從這個基礎你可以做任何你需要的。

相關問題