improve readme

This commit is contained in:
Carsten Haitzler 2023-06-23 09:11:53 +01:00
parent 3dbacfbd78
commit 6776df9dd1
1 changed files with 144 additions and 3 deletions

147
README.md
View File

@ -2,8 +2,149 @@
## Remake of Enlightenment's file manager
This redose EFM so it can be used in and out-of-process too in E. This
This re-does EFM so it can be used in and out-of-process too in E. This
moves the FS layer entirely to a child process that EFM talks to over
stdio. The only direct file access is via local "cached" files in
$HOME that are intended to always be fast access (the location could
move somewhere - but this is the only sane way).
$HOME that are intended to always be fast access (the location could
move somewhere - but this is the only sane way - have to depend on
some fast data store).
-----
Things that need doing:
[TODO](TODO.md)
## Requirements
Must:
* [efl](https://git.enlightenment.org/enlightenment/efl)
-----
## Compiling and Installing
Meson is the build system used for this project. For more information
please see [mesonbuild.com](https://mesonbuild.com)
You will need normal build tooling installed such as a compiler (gcc
or clang for example), pkg-config, ninja, any relevant package-dev or
package-devel packages if your distribution splits out development
headers (e.g. libc6-dev) etc.
Depending on where dependencies (like efl) are installed, you might
have to
set your PKG_CONFIG_PATH environment variable like:
```sh
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
```
Also note that some distributions like to add extra arch directories
to your library locations so you might have to have more like:
```sh
export
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig
```
You will need to ensure that the destination library directory (e.g.
/usr/local/lib is in your /etc/ld.so.conf or /etc/ld.so.conf.d/
files and after installing anything that installs libraries you
re-run ldconfig. Please see relevant documentation on ldconfig and
ld.so.conf for your distribution.
You might also want to add the destination bin dir to your environment
variable PATH (see documentation on your shell PATH variable) such as:
```sh
export PATH=/usr/local/bin:/usr/bin:/bin
```
Normal compilation in /usr/local:
```sh
meson . build
ninja -C build
sudo ninja -C build install
```
For meson build generic options:
```sh
meson --help
```
For a list of project specific options supported:
```sh
cat meson_options.txt
```
To set 1 or more project specific options:
```sh
meson --prefix=/path/to -Doption=value [-Dother=value2] [...] . build
```
To display current configuration:
```sh
meson configure build
```
The above will only work after at least the following is done:
```sh
meson . build
```
### Quick build help
How to clean out the build and config and start fresh:
```sh
rm -rf build
```
How to make a dist tarball and check its build:
(must do it from git tree clone and commit all changes to git first)
```sh
ninja -C build dist
```
How to change prefix:
```sh
meson --prefix=/path/to/prefix . build
```
How to install in a specific destination directory for packaging:
```sh
DESTDIR=/path/to/destdir ninja -C build install
```
How to build with verbose output (full commands run):
```sh
ninja -C build -v
```
-----
To run this (for testing) either just run it and it will list/open the
current working directory:
```sh
efm
```
Or you can pass in a path to a directory to open up:
```sh
efm /path/to/dir
```