如何编译LESS寻呼机?

如何编译LESS寻呼机?

我想less使用最新的修复程序进行编译。

我这样做:

git clone https://github.com/gwsw/less
cd less/
autoheader
autoconf
./configure
make

make这样说:

make: *** No rule to make target 'funcs.h', needed by 'main.o'. Stop.

没有创建的 Makefile 规则funcs.h

那么,如何less从源码编译呢?

答案1

正如中所解释的托马斯·迪基的回答,git 存储库需要先进行准备才能用于构建,并且无法使用提供的文件重新创建一个所需的文件。

要减少构建,请下载其最新版本的 tarball并构建:

wget http://greenwoodsoftware.com/less/less-530.tar.gz
tar xf less-530.tar.gz
cd less-530
./configure && make

但请注意,版本 530 有一些烦人的错误这些都固定在 git 存储库中。 (这可能就是 Debian 软件包尚未更新的原因。)

或者,您可以更新 Debian 软件包:

sudo apt build-dep less
sudo apt install devscripts
apt source less
cd less-487
uscan
cd ..
tar xf less_530.orig.tar.gz
cd less-530
cp -a ../less-487/debian .
dch -v 530-0.1 "New upstream release."
dch -r ignored
debuild -uc -uc

这将产生一个less_530-0.1_yourarch.deb(其中yourarch可能是amd64),您可以使用安装它sudo dpkg -i。作为杰德BP 指出,这将确保应用 Debian 补丁,并configure使用适当的选项;它还将为您带来使用包而不是手动安装的好处。

对于gbp像我这样的粉丝,以下配方使用 git 存储库,这使得任何更改都更加明显:

sudo apt build-dep less
sudo apt install devscripts git-buildpackage
gbp import-dsc --pristine-tar apt://less/sid
cd less
gbp import-orig --pristine-tar --uscan
dch -v 530-0.1 "New upstream release."
dch -r ignored
gbp buildpackage -us -uc --git-ignore-new

(在这两种情况下,严格来说您应该使用dch -nand dch -v,或者至少将“非维护者上传。”添加到变更日志中,但这很难以可复制粘贴的方式做到。)

答案2

“Makefile.in”是一个输入“配置”,这会生成“生成文件”。您无需在 make 命令中指定“Makefile”。所以这应该效果更好:

./configure
make

(尽管您可能在该目录中留下了文件,在重新运行配置之前应将其删除)。

从 git 运行,你错过了分配文件如配置。如果您安装了合适版本的 autoconf,则必须首先运行来准备构建

autoconf

然而,git 树也省略了“defines.h.in”——需要更多准备:git 中的所有文件似乎都不匹配所需的模板。你可能能够重用发布 tar 包中的相应文件,尽管这是不可靠的(与任何其他源文件一样,它会发生变化)。由于文档没有提及此步骤,因此向开发人员报告错误可能会有所帮助。

修改后的问题询问的是funcs.h,可以使用以下规则创建Makefile.aut“减少创作的 Makefile”,根据文件顶部的注释)。但截至2018年9月17日,仍无规则可制定defines.h.in(使用 grep 来回答这些问题)。

答案3

这是我刚刚在Ubuntu 18.04上成功使用的方法:

  • git clone https://github.com/gwsw/less.git
  • cd less
  • autoreconf -i #autoconf如果还没有安装该软件包
  • make -f Makefile.aut dist

这将创建一个release/less-550包含less-550.tar.gz和 的目录less-550.zip。它还尝试为less-550.tar.gz.它挂在我的系统上,所以我gpg --detach-sign ...从另一个窗口终止了该进程。您也可以直接终止该make进程。

less-550.tar.gz是一个标准的可构建源 tarball,您可以像往常一样安装:

  • tar xf less-550.tar.gz
  • cd less-550
  • ./configure --prefix=某个目录 其他选项
  • make
  • make install

最有趣的选项./configure可能是:

--with-regex=LIB        select regular expression library
                        (LIB is one of
                         auto,none,gnu,pcre,pcre2,posix,
                         regcmp,re_comp,regcomp,regcomp-local) [auto]
--with-editor=PROGRAM   use PROGRAM as the default editor [vi]

运行./configure --help以获得完整的选项列表。

答案4

这个序列可以完成这项工作,但我不确定它是否正确:

git clone https://github.com/gwsw/less
cd less/
autoheader
autoconf
./configure
make -f Makefile.aut funcs.h
make
make -f Makefile.aut less.nro
make -f Makefile.aut lesskey.nro
make -f Makefile.aut lessecho.nro
make install

相关内容