已经有一段时间了,所以要温柔。我写的最后一个C程序是在90年代初期。我想在C中启动一个项目,它将为那些主流的Unix风格编译,即Mac,Linux,CentOS。我正在寻找关于启动项目的最佳方法的指针,该项目将为各种系统生成所有必要的配置文件。
Autoconf仍然是标准,还是介意向我介绍最新的方法?我应该看一下标准模板吗?
答案 0 :(得分:0)
autotools有一些模板,但我没有找到任何值得使用的模板。这是一个设置新项目的简单脚本:
#!/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 @srcdir@/../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 s@FULL-PACKAGE-NAME@$(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。在此基础上,您可以做任何您需要的事情。
答案 1 :(得分:0)
autotools仍然是unices上使用最广泛的建筑系统。我猜很多人都在某处准备好模板,这是我的:
http://damien.lespiau.name/blog/2011/09/17/a-simple-autotool-template/