For Unix/POSIX runtime systems on Windows, please see the Notes for Windows platforms.
To build and install GriefEdit, you shall need:
-
Clone of the source repository.
-
A supported UNIX/Linux operating system.
-
Perl 5 with core modules, see NOTES-PERL.md.
-
coreutils - Collection of file and text manipulation utilities.
-
make - GNU (gmake) version of the 'make' utility.
-
bison/flex - General purpose parser generators.
-
wget - Command-line utility for retrieving files using HTTP, HTTPS and FTP protocols.
-
An ANSI C/C++ compiler,
gcc
is recommended being installed from gcc-core - GNU Compiler Collection. -
A development environment in the form of development libraries and C header files.
Additionally the following system development packages can be installed adding further run-time functionality; these shall be auto-detected during 'configure'.
-
binutils-dev - GNU binary utilities (BFD development files).
-
libx11-dev - X11 development libraries.
-
xorg-dev - X.Org X Window System development libraries.
Finally, the following external packages can be installed adding additional run-time functionality; these shall be auto-detected during 'configure'.
-
enchant-devel - Wrapper library for various spell checker engines.
-
hunspell-devel - Spell checker and morphologic.
-
aspell-devel - GNU aspell.
-
enca-devel - Extremely Naive Charset Analyiser.
-
libguess-devel - Speed character set detection.
-
libexplain-devel - System message add-value.
-
libarchive-devel - Archive access.
-
libicu-devel - Character conversion.
-
libbz2-devel - bzip compression.
-
libzstd-devel - gz compression.
-
xz-devel - liblzma.
-
snappy-devel - Google fast/compressor/decomp.
plus the following, which are generally available.
-
ncurses-devel - Terminal interface library.
-
libcurl-devel - Network tools.
-
openssl-devel - OpenSSL.
To enable backtrace support, you need to install one of the following packages:
- binutils-dev - Binary File Descriptor.
-
If you're building with a non-standard compiler or one known, by something other than "cc" or "gcc" then you can set the environment variable "CC" to that.
-
Run the `configure' script by typing:
$ ./configure
Alternatively select one the available preset configurations
$ ./support/configure_withmost $ ./support/configure_withcurses $ ./support/configure_withncurses $ ./support/configure_withncursesw $ ./support/configure_withtermcap $ ./support/configure_withtermlib $ ./support/configure_withtinfo
Note any errors. Please get back to me via github below if you have any configure problems.
This should built the entire set of makefiles and one include file
include/config.h
. You may wish to examine this file since there are some settable options at the top (don't fool with what configure has done below that unless you know what you're doing).On completion the resulting configuration shall be presented, including installation and fundamental configuration options.
- - Configuration: - - Compiler: gcc / g++ - Depend: gcc -MM - CFLAGS: --param max-inline-insns-single=1200 -pthread - Debug:-g -Og, Release:-O1 -DNDEBUG - CXXFLAGS: -g -O2 -pthread - Debug:-g -Og, Release:-O1 -DNDEBUG - LDFLAGS: -pthread - Preprocessor: - Mouse support: none - Termap support: ncursesw - Spell Support: -lenchant - Conversion: - Detection: -lmagic - Security: -lssl -lcrypto - Compression: -lbz2 -llzma -lz - Other Features: -lcurl -larchive - Libraries: -lX11 -lXft -lXext -lpthread - Extra: -lclang -lm -ldl -lltdl -liberty - Allocator: - Yacc: -ly - - Installation: - - prefix: /usr/local - datadir: /usr/local/share - - BINPATH=/usr/local/bin - GRPATH=/usr/local/share/gr/macro - GRHELP=/usr/local/share/gr/help - Review the options above for accuracy, to modify see --help for details. For example, a user local installation can set using the --prefix option. 'configure --prefix=/home/user/grief' Once they look okay, execute to build: 'make release' - build software. Installation, one of the follow dependent on location: 'sudo make release install' - install for common/system usage; or or 'make release install' - local installation. Optionally after installation: 'make release clean' - remove build tree.
-
Once reviewed execute the following to build the application:
$ make release
-
To install, type:
$ make release install
Dependent on the installation path root permissions may be required,
$ sudo make release install
The default installation paths, compiled into GriefEdit, are as follow which are generally only writeable as root/adminstrator:
executables /usr/local/bin prefix /usr/local/share/grief help files /usr/local/share/grief/help compiled macros /usr/local/share/grief/macros macro source /usr/local/share/grief/src
These can be modified, for example install within your home directory, installation base directory can set using the
-prefix option
../configure --prefix=/home/user/grief
Fine tunning of the install process is available
INSTALL_MODE=mode mode override (default=0755) INSTALL_OPTIONS=options additional installation options.
Example:
sudo make INSTALL_OPTIONS="-g users" release install
The ‘configure’ script supports numerous options that allow control of which functionality is enabled, where GriefEdit is installed, etc. Optionally, pass any of the following arguments (not a definitive list) to ‘configure’:
configure [OPTION]... [VAR=VALUE]...
-
--help
Print a definitive list of options.
-
--prefix=<install-root-dir>
Set the base directory in which to install. For example:
./configure --prefix=/home/user/grief
will cause files to be installed into /home/user/grief.
Optional Packages can be explicitly enabled or disabled.
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-regex
- use libregex--with-zlib
- enable zlib use (default=yes)--with-lzma
- enable liblzma use (default=yes)--with-bz2
- enable libbz2 use (default=yes)--with-ncurses
- use ncurses library--with-ncursesw
- use ncursesw library--with-pdcurses
- use pdcurses library--with-tinfo
- use tinfo library--with-curses
- use curses library--with-termcap
- use termcap library--with-termlib=library
- use names library for terminal support--without-spell
- disable spell--with-enchant
- enchant library--with-hunspell
- hunspell library--with-aspell
- aspell library--with-icu
- enable libicu use (default=no)--with-apriconv
- enable libapriconv use (default=no)--with-iconv
- enable libiconv use (default=no)--with-enca
- enable libenca use (default=no)--with-magic
- enable libmagic use (default=yes)--with-openssl=DIR
- root of the OpenSSL directory--with-mouse
- enable mouse support--with-gpm
- use gpm mouse library--with-libarchive=DIR
- libarchive installation directory--with-x11
- enable libx11 (default=yes)--with-xft
- enable Xft (default=yes)--with-xkb
- enable Xkb extensions (default=yes)--with-xshape
- enable XShape (default=yes)
The following environment variables (not a definitive list) impact configure's behaviour. To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables.
-
CFLAGS="?"
-
CXXFLAGS="?"
Pass these flags to the C/C++ compiler. Any flags set by the configure script are prepended, which means explicitly set flags generally take precedence. Take care when specifying flags such as -Werror, because configure tests may be affected in undesirable ways.
-
EXTRA_CFLAGS="?"
-
EXTRA_CXXFLAGS="?"
Append these flags to CFLAGS/CXXFLAGS, without passing them to the compiler(s) during configuration. This makes it possible to add flags such as -Werror, while allowing the configure script to determine what other flags are appropriate for the specified configuration.
-
CPPFLAGS="?"
Pass these flags to the C preprocessor. Note that CFLAGS is not passed to ‘cpp’ when ‘configure’ is looking for include files, so you must use CPPFLAGS instead if you need to help ‘configure’ find header files.
-
LD_LIBRARY_PATH="?"
‘ld’ uses this colon-separated list to find libraries.
-
LDFLAGS="?"
Pass these flags when linking.
-
PATH="?"
‘configure’ uses this to find programs.
Last Update: May/2024
=end=