summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md65
1 files changed, 40 insertions, 25 deletions
diff --git a/README.md b/README.md
index 61a81a9..3d36250 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,21 @@ JSON, or OpenStep format.*
6![](https://github.com/libimobiledevice/libplist/workflows/build/badge.svg) 6![](https://github.com/libimobiledevice/libplist/workflows/build/badge.svg)
7![](https://github.com/libimobiledevice/libplist/workflows/CodeQL/badge.svg) 7![](https://github.com/libimobiledevice/libplist/workflows/CodeQL/badge.svg)
8 8
9## Table of Contents
10- [Features](#features)
11- [Building](#building)
12 - [Prerequisites](#prerequisites)
13 - [Linux (Debian/Ubuntu based)](#linux-debianubuntu-based)
14 - [macOS](#macos)
15 - [Windows](#windows)
16 - [Configuring the source tree](#configuring-the-source-tree)
17 - [Building and installation](#building-and-installation)
18- [Usage](#usage)
19- [Contributing](#contributing)
20- [Links](#links)
21- [License](#license)
22- [Credits](#credits)
23
9## Features 24## Features
10 25
11The project provides an interface to read and write plist files in binary, 26The project provides an interface to read and write plist files in binary,
@@ -21,24 +36,16 @@ Some key features are:
21 36
22## Building 37## Building
23 38
24### Quick access
25
26* [Prerequisites](#prerequisites)
27 * [Linux (Debian/Ubuntu based)](#linux-debianubuntu-based)
28 * [macOS](#macos)
29 * [Windows](#windows)
30* [Configuring the source tree](#configuring-the-source-tree)
31* [Building and installation](#building-and-installation)
32
33### Prerequisites 39### Prerequisites
34 40
35You need to have a working compiler and development environent available. This project uses autotools 41You need to have a working compiler (gcc/clang) and development environent
36for the build process, allowing to have common build steps regardless of the platform. Only the 42available. This project uses autotools for the build process, allowing to
37prerequisites differ and are described in this section. 43have common build steps across different platforms.
44Only the prerequisites differ and they are described in this section.
38 45
39* #### Linux (Debian/Ubuntu based) 46#### Linux (Debian/Ubuntu based)
40 47
41 Install all required dependencies and build tools: 48* Install all required dependencies and build tools:
42 ```shell 49 ```shell
43 sudo apt-get install \ 50 sudo apt-get install \
44 build-essential \ 51 build-essential \
@@ -56,9 +63,9 @@ prerequisites differ and are described in this section.
56 cython3 63 cython3
57 ``` 64 ```
58 65
59* #### macOS 66#### macOS
60 67
61 Make sure the Xcode command line tools are installed. Then, use either [MacPorts](https://www.macports.org/) 68* Make sure the Xcode command line tools are installed. Then, use either [MacPorts](https://www.macports.org/)
62 or [Homebrew](https://brew.sh/) to install `automake`, `autoconf`, and `libtool`. 69 or [Homebrew](https://brew.sh/) to install `automake`, `autoconf`, and `libtool`.
63 70
64 Using MacPorts: 71 Using MacPorts:
@@ -70,9 +77,9 @@ prerequisites differ and are described in this section.
70 ```shell 77 ```shell
71 brew install libtool autoconf automake 78 brew install libtool autoconf automake
72 ``` 79 ```
73 80
74 In case you want to build the documentation, install `doxygen` using the corresponding install command from above. 81 In case you want to build the documentation, install `doxygen` using the corresponding install command from above.
75 82
76 If you want to build Python bindings, you need to install cython: 83 If you want to build Python bindings, you need to install cython:
77 ```shell 84 ```shell
78 pip3 install cython 85 pip3 install cython
@@ -91,9 +98,9 @@ prerequisites differ and are described in this section.
91 export PYTHON_EXTRA_LDFLAGS="-Wl,-stack_size,1000000 -framework CoreFoundation $PYTHON_FRAMEWORK_PATH" 98 export PYTHON_EXTRA_LDFLAGS="-Wl,-stack_size,1000000 -framework CoreFoundation $PYTHON_FRAMEWORK_PATH"
92 ``` 99 ```
93 100
94* #### Windows 101#### Windows
95 102
96 [MSYS2](https://www.msys2.org/) is the official way of compiling this project on Windows. Download the MSYS2 installer 103* Using [MSYS2](https://www.msys2.org/) is the official way of compiling this project on Windows. Download the MSYS2 installer
97 and follow the installation steps. 104 and follow the installation steps.
98 105
99 It is recommended to use the _MSYS2 MinGW 64-bit_ shell. Run it and make sure the required dependencies are installed: 106 It is recommended to use the _MSYS2 MinGW 64-bit_ shell. Run it and make sure the required dependencies are installed:
@@ -121,7 +128,7 @@ prerequisites differ and are described in this section.
121You can build the source code from a git checkout, or from a `.tar.bz2` release tarball from [Releases](https://github.com/libimobiledevice/libplist/releases). 128You can build the source code from a git checkout, or from a `.tar.bz2` release tarball from [Releases](https://github.com/libimobiledevice/libplist/releases).
122Before we can build it, the source tree has to be configured for building. The steps depend on where you got the source from. 129Before we can build it, the source tree has to be configured for building. The steps depend on where you got the source from.
123 130
124* #### From git 131* **From git**
125 132
126 If you haven't done already, clone the actual project repository and change into the directory. 133 If you haven't done already, clone the actual project repository and change into the directory.
127 ```shell 134 ```shell
@@ -134,7 +141,7 @@ Before we can build it, the source tree has to be configured for building. The s
134 ./autogen.sh 141 ./autogen.sh
135 ``` 142 ```
136 143
137* #### From release tarball (.tar.bz2) 144* **From release tarball (.tar.bz2)**
138 145
139 When using an official [release tarball](https://github.com/libimobiledevice/libplist/releases) (`libplist-x.y.z.tar.bz2`) 146 When using an official [release tarball](https://github.com/libimobiledevice/libplist/releases) (`libplist-x.y.z.tar.bz2`)
140 the procedure is slightly different. 147 the procedure is slightly different.
@@ -189,11 +196,19 @@ you are ready to build the project. This is simply done with
189make 196make
190``` 197```
191 198
192If no errors are emitted, you can go ahead and install it with: 199If no errors are emitted you are ready for installation. Depending on whether
200the current user has permissions to write to the destination directory or not,
201you would either run
202```shell
203make install
204```
205_OR_
193```shell 206```shell
194sudo make install 207sudo make install
195``` 208```
196When using a user-writable destination directory, or run from MinGW shell, you would just run `make install`, without sudo. 209
210If you are on Linux, you want to run `sudo ldconfig` after installation to
211make sure the installed libraries are made available.
197 212
198## Usage 213## Usage
199 214
@@ -264,5 +279,5 @@ iPadOS, tvOS, watchOS, and macOS are trademarks of Apple Inc.
264This project is an independent software library and has not been authorized, 279This project is an independent software library and has not been authorized,
265sponsored, or otherwise approved by Apple Inc. 280sponsored, or otherwise approved by Apple Inc.
266 281
267README Updated on: 2024-02-16 282README Updated on: 2024-02-21
268 283