mirror of
https://github.com/louisrubet/rpn
synced 2025-01-15 03:41:25 +01:00
88 lines
2.4 KiB
Markdown
88 lines
2.4 KiB
Markdown
# **rpn v2.3** - generation
|
|
|
|
For now rpn is proposed only for **GNU/Linux**
|
|
|
|
It can be generated following the steps below
|
|
|
|
## version identification
|
|
|
|
rpn is dynamically linked against
|
|
- GNU MP v6.1.2
|
|
- GNU MPFR v3.1.5
|
|
|
|
and embeds the source code of linenoise-ng v1.0.1
|
|
|
|
It is necessary to get MPFR and linenoise-ng to generate rpn.
|
|
|
|
## install GNU MPFR v3.1.5-p8 headers
|
|
|
|
- download **GNU MPFR v3.1.5-p8** from http://www.mpfr.org
|
|
- install it with usual autotools commands `./configure && make && make install`
|
|
|
|
## install linenoise-ng v1.0.1 source code
|
|
|
|
- download **linenoise-ng v1.0.1** from https://github.com/arangodb/linenoise-ng
|
|
- checkout the tag v1.0.1
|
|
- apply the following patch to the source code
|
|
|
|
```
|
|
--- ../../../linenoise-ng/src/linenoise.cpp 2017-06-10 18:13:31.752976287 +0200
|
|
+++ linenoise.cpp 2017-06-12 18:54:50.481794824 +0200
|
|
@@ -2587,12 +2587,15 @@
|
|
|
|
// ctrl-I/tab, command completion, needs to be before switch statement
|
|
if (c == ctrlChar('I') && completionCallback) {
|
|
+ // rpn #178: enable autocompletion on void entry
|
|
+ #if 0
|
|
if (pos == 0) // SERVER-4967 -- in earlier versions, you could paste
|
|
// previous output
|
|
continue; // back into the shell ... this output may have leading
|
|
// tabs.
|
|
// This hack (i.e. what the old code did) prevents command completion
|
|
// on an empty line but lets users paste text with leading tabs.
|
|
+ #endif
|
|
|
|
killRing.lastAction = KillRing::actionOther;
|
|
historyRecallMostRecent = false;
|
|
```
|
|
- install linenoise-ng with cmake commands `mkdir build && cd build && cmake .. && make install`
|
|
|
|
## generate rpn
|
|
|
|
- clone [rpn project](https://github.com/louisrubet/rpn/) or download a zipped version from [the release directory](https://github.com/louisrubet/rpn/releases)
|
|
```
|
|
# git clone https://github.com/louisrubet/rpn.git
|
|
```
|
|
|
|
- make
|
|
|
|
CMake must be installed on the generation machine
|
|
|
|
```
|
|
# cd rpn/
|
|
# mkdir build
|
|
# cd build && cmake .. && make
|
|
```
|
|
|
|
- install
|
|
```
|
|
# cd rpn/build
|
|
# sudo make install
|
|
```
|
|
|
|
- packages
|
|
|
|
To build RPM package you should install CMake 2.6.0 or higher
|
|
|
|
```
|
|
# cd rpn/build
|
|
# make package
|
|
[100%] Built target rpn
|
|
Run CPack packaging tool...
|
|
CPack: Create package using DEB
|
|
(...)
|
|
CPack: Create package using RPM
|
|
(...)
|
|
CPack: Create package using TGZ
|
|
(...)
|
|
```
|