rpn/GENERATION.md
2017-07-01 14:53:08 +02:00

2.4 KiB

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

--- ../../../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 or download a zipped version from the release directory

    # 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
    # sudo 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
    (...)