2012-01-28 27 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中。从这个基础你可以做任何你需要的。

相关问题