You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Configuring the source tree](#configuring-the-source-tree)
15
+
-[Building and installation](#building-and-installation)
16
+
-[Usage](#usage)
17
+
-[Contributing](#contributing)
18
+
-[Links](#links)
19
+
-[License](#license)
20
+
-[Credits](#credits)
21
+
7
22
## Features
8
23
9
24
This project is a client library to multiplex connections from and to iOS
@@ -32,36 +47,138 @@ Some key features are:
32
47
Furthermore the Linux build optionally provides support using inotify if
33
48
available.
34
49
35
-
## Installation / Getting started
50
+
## Building
51
+
52
+
### Prerequisites
53
+
54
+
You need to have a working compiler (gcc/clang) and development environent
55
+
available. This project uses autotools for the build process, allowing to
56
+
have common build steps across different platforms.
57
+
Only the prerequisites differ and they are described in this section.
58
+
59
+
libusbmuxd requires [libplist](https://github.com/libimobiledevice/libplist) and [libimobiledevice-glue](https://github.com/libimobiledevice/libimobiledevice-glue). On Linux, it also requires [usbmuxd](https://github.com/libimobiledevice/usbmuxd) installed on the system, while macOS has its own copy and on Windows AppleMobileDeviceSupport package provides it.
60
+
Check [libplist's Building](https://github.com/libimobiledevice/libplist?tab=readme-ov-file#building) and [libimobiledevice-glue's Building](https://github.com/libimobiledevice/libimobiledevice-glue?tab=readme-ov-file#building)
61
+
section of the respective README on how to build them. Note that some platforms might have them as a package.
62
+
63
+
#### Linux (Debian/Ubuntu based)
64
+
65
+
* Install all required dependencies and build tools:
66
+
```shell
67
+
sudo apt-get install \
68
+
build-essential \
69
+
pkg-config \
70
+
checkinstall \
71
+
git \
72
+
autoconf \
73
+
automake \
74
+
libtool-bin \
75
+
libplist-dev \
76
+
libimobiledevice-glue-dev \
77
+
usbmuxd
78
+
```
79
+
In case libplist-dev, libimobiledevice-glue-dev, or usbmuxd are not available, you can manually build and install them. See note above.
80
+
81
+
#### macOS
82
+
83
+
* Make sure the Xcode command line tools are installed. Then, use either [MacPorts](https://www.macports.org/)
84
+
or [Homebrew](https://brew.sh/) to install `automake`, `autoconf`, `libtool`, etc.
85
+
86
+
Using MacPorts:
87
+
```shell
88
+
sudo port install libtool autoconf automake pkgconfig
89
+
```
90
+
91
+
Using Homebrew:
92
+
```shell
93
+
brew install libtool autoconf automake pkg-config
94
+
```
95
+
96
+
#### Windows
97
+
98
+
* Using [MSYS2](https://www.msys2.org/) is the official way of compiling this project on Windows. Download the MSYS2 installer
99
+
and follow the installation steps.
100
+
101
+
It is recommended to use the _MSYS2 MinGW 64-bit_ shell. Run it and make sure the required dependencies are installed:
102
+
103
+
```shell
104
+
pacman -S base-devel \
105
+
git \
106
+
mingw-w64-x86_64-gcc \
107
+
make \
108
+
libtool \
109
+
autoconf \
110
+
automake-wrapper \
111
+
pkg-config
112
+
```
113
+
NOTE: You can use a different shell and different compiler according to your needs. Adapt the above command accordingly.
114
+
115
+
### Configuring the source tree
116
+
117
+
You can build the source code from a git checkout, or from a `.tar.bz2` release tarball from [Releases](https://github.com/libimobiledevice/libusbmuxd/releases).
118
+
Before we can build it, the source tree has to be configured for building. The steps depend on where you got the source from.
36
119
37
-
### Debian / Ubuntu Linux
120
+
Since libusbmuxd depends on other packages, you should set the pkg-config environment variable `PKG_CONFIG_PATH`
121
+
accordingly. Make sure to use a path with the same prefix as the dependencies. If they are installed in `/usr/local` you would do
38
122
39
-
First install all required dependencies and build tools:
40
123
```shell
41
-
sudo apt-get install \
42
-
build-essential \
43
-
pkg-config \
44
-
checkinstall \
45
-
git \
46
-
autoconf \
47
-
automake \
48
-
libtool-bin \
49
-
libplist-dev \
50
-
libimobiledevice-glue-dev \
51
-
usbmuxd
124
+
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
52
125
```
53
126
54
-
Then clone the actual project repository:
127
+
***From git**
128
+
129
+
If you haven't done already, clone the actual project repository and change into the directory.
0 commit comments