我的最终目标是生成一个简单的.deb包。
为此,我已经读过,最好在项目的构建基础架构中提供3个构建阶段,而不是在debian /文件夹中进行。
所以我需要的第一件事是配置脚本,但是我想要最简单的配置脚本,它只接收一个“--prefix”参数并将其值传递给Makefile系统(因此makefile的“install”目标可以将文件复制到它。)
我可以不使用autoconf吗?我知道autoconf很棒但是对于最简单的配置阶段,我可能还不需要它。
由于
答案 0 :(得分:2)
没有autoconf,我不会这样做。你基本上是说你想模仿autoconf的一个特定行为,而不知道autoconf添加的所有后果和相关行为。这违反了最少惊喜的原则,因为用户(甚至您的deb工具)会期望相关行为(DESTDIR
,--exec-prefix
等)。只需使用autoconf。您可以使configure.ac
非常简单:
AC_INIT([My App], [1.0], [my-email@me.com])
AM_INIT_AUTOMAKE([-Wall foreign])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
答案 1 :(得分:1)
我最终使用了这个:
#!/usr/bin/env bash
prefix=NONE
test "$prefix" = NONE && prefix=/usr/local
usage ()
{
echo ""
echo "Usage : configure [--prefix=PREFIX]"
echo ""
}
while test x$1 != x; do
case $1 in
--prefix=*)
prefix=`echo $1 | sed 's/--prefix=//'`
;;
--prefix)
shift
prefix=$1
;;
--help)
usage
exit
;;
*)
echo Warning: unknown argument $1 >&2
usage
;;
esac
shift
done
echo -n "SUBDIRS = " > config.make
echo Configuration Summary
echo ---------------------
echo
echo "MyApp has been configured with "
echo " prefix = $prefix"
echo
echo >> config.make
echo
echo -n "prefix=$prefix" >> config.make
然后在Makefile中我需要做的第一件事是:
top_srcdir=.
CONFIG_MAKE=$(top_srcdir)/config.make
-include $(top_srcdir)/config.make
如果有更好的解决方案,我会感兴趣。