ffi-tox 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/ProjectTox-Core/AUTHORS +0 -0
  3. data/ProjectTox-Core/ChangeLog +0 -0
  4. data/ProjectTox-Core/INSTALL +370 -0
  5. data/ProjectTox-Core/INSTALL.md +455 -56
  6. data/ProjectTox-Core/Makefile.am +35 -0
  7. data/ProjectTox-Core/NEWS +0 -0
  8. data/ProjectTox-Core/README +43 -0
  9. data/ProjectTox-Core/README.md +34 -44
  10. data/ProjectTox-Core/auto_tests/Makefile.inc +110 -0
  11. data/ProjectTox-Core/auto_tests/TCP_test.c +519 -0
  12. data/ProjectTox-Core/auto_tests/assoc_test.c +160 -0
  13. data/ProjectTox-Core/auto_tests/crypto_test.c +302 -0
  14. data/ProjectTox-Core/auto_tests/dht_test.c +362 -0
  15. data/ProjectTox-Core/auto_tests/encryptsave_test.c +104 -0
  16. data/ProjectTox-Core/auto_tests/friends_test.c +238 -0
  17. data/ProjectTox-Core/auto_tests/helpers.h +15 -0
  18. data/ProjectTox-Core/auto_tests/messenger_test.c +365 -0
  19. data/ProjectTox-Core/auto_tests/network_test.c +171 -0
  20. data/ProjectTox-Core/auto_tests/onion_test.c +363 -0
  21. data/ProjectTox-Core/auto_tests/skeleton_test.c +49 -0
  22. data/ProjectTox-Core/auto_tests/tox_test.c +454 -0
  23. data/ProjectTox-Core/auto_tests/toxav_basic_test.c +597 -0
  24. data/ProjectTox-Core/auto_tests/toxav_many_test.c +402 -0
  25. data/ProjectTox-Core/autogen.sh +6 -0
  26. data/ProjectTox-Core/build/Makefile.am +14 -0
  27. data/ProjectTox-Core/configure.ac +694 -0
  28. data/ProjectTox-Core/dist-build/android-arm.sh +3 -0
  29. data/ProjectTox-Core/dist-build/android-armv7.sh +3 -0
  30. data/ProjectTox-Core/dist-build/android-build.sh +59 -0
  31. data/ProjectTox-Core/dist-build/android-mips.sh +3 -0
  32. data/ProjectTox-Core/dist-build/android-x86.sh +3 -0
  33. data/ProjectTox-Core/docs/Group-Chats.md +71 -0
  34. data/ProjectTox-Core/docs/Hardening.txt +60 -0
  35. data/ProjectTox-Core/docs/Hardening_docs.txt +30 -0
  36. data/ProjectTox-Core/docs/Prevent_Tracking.txt +160 -0
  37. data/ProjectTox-Core/docs/TCP_Network.txt +154 -0
  38. data/ProjectTox-Core/docs/TODO +62 -0
  39. data/ProjectTox-Core/docs/Tox_middle_level_network_protocol.txt +120 -0
  40. data/ProjectTox-Core/docs/av_api.md +194 -0
  41. data/ProjectTox-Core/libtoxav.pc.in +11 -0
  42. data/ProjectTox-Core/libtoxcore.pc.in +11 -0
  43. data/ProjectTox-Core/m4/ax_have_epoll.m4 +104 -0
  44. data/ProjectTox-Core/m4/ax_pthread.m4 +317 -0
  45. data/ProjectTox-Core/m4/pkg.m4 +199 -0
  46. data/ProjectTox-Core/other/DHT_bootstrap.c +121 -58
  47. data/ProjectTox-Core/other/DHTnodes +3 -0
  48. data/ProjectTox-Core/other/Makefile.inc +20 -0
  49. data/ProjectTox-Core/other/bootstrap_node_packets.c +65 -0
  50. data/ProjectTox-Core/other/tox.png +0 -0
  51. data/ProjectTox-Core/testing/DHT_test.c +170 -98
  52. data/ProjectTox-Core/testing/Makefile.inc +112 -0
  53. data/ProjectTox-Core/testing/Messenger_test.c +133 -69
  54. data/ProjectTox-Core/testing/dns3_test.c +115 -0
  55. data/ProjectTox-Core/testing/misc_tools.c +59 -13
  56. data/ProjectTox-Core/testing/nTox.c +1127 -264
  57. data/ProjectTox-Core/testing/nTox.h +10 -19
  58. data/ProjectTox-Core/testing/tox_shell.c +159 -0
  59. data/ProjectTox-Core/testing/tox_sync.c +299 -0
  60. data/ProjectTox-Core/tools/README +11 -0
  61. data/ProjectTox-Core/tools/astylerc +11 -0
  62. data/ProjectTox-Core/tools/pre-commit +17 -0
  63. data/ProjectTox-Core/toxav/Makefile.inc +36 -0
  64. data/ProjectTox-Core/toxav/codec.c +357 -0
  65. data/ProjectTox-Core/toxav/codec.h +116 -0
  66. data/ProjectTox-Core/toxav/msi.c +1949 -0
  67. data/ProjectTox-Core/toxav/msi.h +267 -0
  68. data/ProjectTox-Core/toxav/rtp.c +600 -0
  69. data/ProjectTox-Core/toxav/rtp.h +196 -0
  70. data/ProjectTox-Core/toxav/toxav.c +1148 -0
  71. data/ProjectTox-Core/toxav/toxav.h +389 -0
  72. data/ProjectTox-Core/toxcore/DHT.c +2521 -0
  73. data/ProjectTox-Core/toxcore/DHT.h +412 -0
  74. data/ProjectTox-Core/toxcore/LAN_discovery.c +322 -0
  75. data/ProjectTox-Core/{core → toxcore}/LAN_discovery.h +17 -12
  76. data/ProjectTox-Core/toxcore/Makefile.inc +67 -0
  77. data/ProjectTox-Core/toxcore/Messenger.c +3006 -0
  78. data/ProjectTox-Core/toxcore/Messenger.h +818 -0
  79. data/ProjectTox-Core/toxcore/TCP_client.c +858 -0
  80. data/ProjectTox-Core/toxcore/TCP_client.h +156 -0
  81. data/ProjectTox-Core/toxcore/TCP_server.c +1332 -0
  82. data/ProjectTox-Core/toxcore/TCP_server.h +181 -0
  83. data/ProjectTox-Core/toxcore/assoc.c +1033 -0
  84. data/ProjectTox-Core/toxcore/assoc.h +104 -0
  85. data/ProjectTox-Core/toxcore/crypto_core.c +278 -0
  86. data/ProjectTox-Core/toxcore/crypto_core.h +151 -0
  87. data/ProjectTox-Core/toxcore/friend_requests.c +175 -0
  88. data/ProjectTox-Core/toxcore/friend_requests.h +83 -0
  89. data/ProjectTox-Core/toxcore/group_chats.c +837 -0
  90. data/ProjectTox-Core/toxcore/group_chats.h +199 -0
  91. data/ProjectTox-Core/toxcore/list.c +256 -0
  92. data/ProjectTox-Core/toxcore/list.h +85 -0
  93. data/ProjectTox-Core/toxcore/logger.c +153 -0
  94. data/ProjectTox-Core/toxcore/logger.h +84 -0
  95. data/ProjectTox-Core/toxcore/misc_tools.h +70 -0
  96. data/ProjectTox-Core/toxcore/net_crypto.c +2753 -0
  97. data/ProjectTox-Core/toxcore/net_crypto.h +410 -0
  98. data/ProjectTox-Core/toxcore/network.c +979 -0
  99. data/ProjectTox-Core/toxcore/network.h +367 -0
  100. data/ProjectTox-Core/toxcore/onion.c +540 -0
  101. data/ProjectTox-Core/toxcore/onion.h +150 -0
  102. data/ProjectTox-Core/toxcore/onion_announce.c +433 -0
  103. data/ProjectTox-Core/toxcore/onion_announce.h +139 -0
  104. data/ProjectTox-Core/toxcore/onion_client.c +1347 -0
  105. data/ProjectTox-Core/toxcore/onion_client.h +253 -0
  106. data/ProjectTox-Core/toxcore/ping.c +346 -0
  107. data/ProjectTox-Core/toxcore/ping.h +47 -0
  108. data/ProjectTox-Core/toxcore/ping_array.c +162 -0
  109. data/ProjectTox-Core/toxcore/ping_array.h +75 -0
  110. data/ProjectTox-Core/toxcore/tox.c +940 -0
  111. data/ProjectTox-Core/toxcore/tox.h +734 -0
  112. data/ProjectTox-Core/toxcore/util.c +193 -0
  113. data/ProjectTox-Core/toxcore/util.h +63 -0
  114. data/ProjectTox-Core/toxdns/Makefile.inc +29 -0
  115. data/ProjectTox-Core/toxdns/toxdns.c +238 -0
  116. data/ProjectTox-Core/toxdns/toxdns.h +88 -0
  117. data/ProjectTox-Core/toxencryptsave/Makefile.inc +45 -0
  118. data/ProjectTox-Core/toxencryptsave/toxencryptsave.c +179 -0
  119. data/ProjectTox-Core/toxencryptsave/toxencryptsave.h +74 -0
  120. data/interfaces/libtox.i +2 -6
  121. data/lib/ffi-tox/libtox.rb +406 -28
  122. metadata +124 -46
  123. data/ProjectTox-Core/CMakeLists.txt +0 -50
  124. data/ProjectTox-Core/cmake/FindLIBCONFIG.cmake +0 -15
  125. data/ProjectTox-Core/cmake/FindNaCl.cmake +0 -17
  126. data/ProjectTox-Core/cmake/FindSODIUM.cmake +0 -15
  127. data/ProjectTox-Core/core/CMakeLists.txt +0 -19
  128. data/ProjectTox-Core/core/DHT.c +0 -1104
  129. data/ProjectTox-Core/core/DHT.h +0 -111
  130. data/ProjectTox-Core/core/LAN_discovery.c +0 -79
  131. data/ProjectTox-Core/core/Lossless_UDP.c +0 -755
  132. data/ProjectTox-Core/core/Lossless_UDP.h +0 -106
  133. data/ProjectTox-Core/core/Messenger.c +0 -596
  134. data/ProjectTox-Core/core/Messenger.h +0 -165
  135. data/ProjectTox-Core/core/friend_requests.c +0 -131
  136. data/ProjectTox-Core/core/friend_requests.h +0 -51
  137. data/ProjectTox-Core/core/net_crypto.c +0 -575
  138. data/ProjectTox-Core/core/net_crypto.h +0 -134
  139. data/ProjectTox-Core/core/network.c +0 -205
  140. data/ProjectTox-Core/core/network.h +0 -134
  141. data/ProjectTox-Core/docs/commands.md +0 -25
  142. data/ProjectTox-Core/docs/start_guide.de.md +0 -40
  143. data/ProjectTox-Core/docs/start_guide.md +0 -38
  144. data/ProjectTox-Core/other/CMakeLists.txt +0 -9
  145. data/ProjectTox-Core/testing/CMakeLists.txt +0 -18
  146. data/ProjectTox-Core/testing/DHT_cryptosendfiletest.c +0 -228
  147. data/ProjectTox-Core/testing/DHT_sendfiletest.c +0 -176
  148. data/ProjectTox-Core/testing/Lossless_UDP_testclient.c +0 -214
  149. data/ProjectTox-Core/testing/Lossless_UDP_testserver.c +0 -201
  150. data/ProjectTox-Core/testing/misc_tools.h +0 -29
  151. data/ProjectTox-Core/testing/nTox_win32.c +0 -387
  152. data/ProjectTox-Core/testing/nTox_win32.h +0 -40
  153. data/ProjectTox-Core/testing/rect.py +0 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ea0d69f0ac06a753a7fb1299542b5f5ebfe935d
4
- data.tar.gz: ecbc2f0a1fec17416aa57890fe6be315225d7d18
3
+ metadata.gz: 6b4b48b6ca2fc3e8f79346e6f27dcab40e701f39
4
+ data.tar.gz: 4446b08f8f799dd4683a75ad8d32ed0401137ee3
5
5
  SHA512:
6
- metadata.gz: 68ae7ba6278cb10d41dbe042f59d10304444b25ef7802c0c19919e3ca63a93c86efb6cb5af63cb979906da9f6cacab43ddf85a434092bd550ed41151dbe7ff01
7
- data.tar.gz: 678b27211d2dd376c8ee8d631c2f44b8da2b9039c68fa535e36bfeeb06dab5554cbc286b356183053fc5d6e61031e1a2f67e429c839bce17f14086bca6a28a41
6
+ metadata.gz: ffc13e740231617cff037e4377a909d19cc2103d1aedcc6a1a06cc4ba70c45130f35e579bac4055ca28a7632c765af95e66b73adb8632bec50a6952cd57ec2af
7
+ data.tar.gz: a6c6bab6fe9737cb9ca498e50c6b4ba4abfabdb31f8e05dd38375ac80594458abeaaf974d56a2153af9352b686437da805fa0b1f88a870ba8056306d8e7a6e01
File without changes
File without changes
@@ -0,0 +1,370 @@
1
+ Installation Instructions
2
+ *************************
3
+
4
+ Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
5
+ Inc.
6
+
7
+ Copying and distribution of this file, with or without modification,
8
+ are permitted in any medium without royalty provided the copyright
9
+ notice and this notice are preserved. This file is offered as-is,
10
+ without warranty of any kind.
11
+
12
+ Basic Installation
13
+ ==================
14
+
15
+ Briefly, the shell commands `./configure; make; make install' should
16
+ configure, build, and install this package. The following
17
+ more-detailed instructions are generic; see the `README' file for
18
+ instructions specific to this package. Some packages provide this
19
+ `INSTALL' file but do not implement all of the features documented
20
+ below. The lack of an optional feature in a given package is not
21
+ necessarily a bug. More recommendations for GNU packages can be found
22
+ in *note Makefile Conventions: (standards)Makefile Conventions.
23
+
24
+ The `configure' shell script attempts to guess correct values for
25
+ various system-dependent variables used during compilation. It uses
26
+ those values to create a `Makefile' in each directory of the package.
27
+ It may also create one or more `.h' files containing system-dependent
28
+ definitions. Finally, it creates a shell script `config.status' that
29
+ you can run in the future to recreate the current configuration, and a
30
+ file `config.log' containing compiler output (useful mainly for
31
+ debugging `configure').
32
+
33
+ It can also use an optional file (typically called `config.cache'
34
+ and enabled with `--cache-file=config.cache' or simply `-C') that saves
35
+ the results of its tests to speed up reconfiguring. Caching is
36
+ disabled by default to prevent problems with accidental use of stale
37
+ cache files.
38
+
39
+ If you need to do unusual things to compile the package, please try
40
+ to figure out how `configure' could check whether to do them, and mail
41
+ diffs or instructions to the address given in the `README' so they can
42
+ be considered for the next release. If you are using the cache, and at
43
+ some point `config.cache' contains results you don't want to keep, you
44
+ may remove or edit it.
45
+
46
+ The file `configure.ac' (or `configure.in') is used to create
47
+ `configure' by a program called `autoconf'. You need `configure.ac' if
48
+ you want to change it or regenerate `configure' using a newer version
49
+ of `autoconf'.
50
+
51
+ The simplest way to compile this package is:
52
+
53
+ 1. `cd' to the directory containing the package's source code and type
54
+ `./configure' to configure the package for your system.
55
+
56
+ Running `configure' might take a while. While running, it prints
57
+ some messages telling which features it is checking for.
58
+
59
+ 2. Type `make' to compile the package.
60
+
61
+ 3. Optionally, type `make check' to run any self-tests that come with
62
+ the package, generally using the just-built uninstalled binaries.
63
+
64
+ 4. Type `make install' to install the programs and any data files and
65
+ documentation. When installing into a prefix owned by root, it is
66
+ recommended that the package be configured and built as a regular
67
+ user, and only the `make install' phase executed with root
68
+ privileges.
69
+
70
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
71
+ this time using the binaries in their final installed location.
72
+ This target does not install anything. Running this target as a
73
+ regular user, particularly if the prior `make install' required
74
+ root privileges, verifies that the installation completed
75
+ correctly.
76
+
77
+ 6. You can remove the program binaries and object files from the
78
+ source code directory by typing `make clean'. To also remove the
79
+ files that `configure' created (so you can compile the package for
80
+ a different kind of computer), type `make distclean'. There is
81
+ also a `make maintainer-clean' target, but that is intended mainly
82
+ for the package's developers. If you use it, you may have to get
83
+ all sorts of other programs in order to regenerate files that came
84
+ with the distribution.
85
+
86
+ 7. Often, you can also type `make uninstall' to remove the installed
87
+ files again. In practice, not all packages have tested that
88
+ uninstallation works correctly, even though it is required by the
89
+ GNU Coding Standards.
90
+
91
+ 8. Some packages, particularly those that use Automake, provide `make
92
+ distcheck', which can by used by developers to test that all other
93
+ targets like `make install' and `make uninstall' work correctly.
94
+ This target is generally not run by end users.
95
+
96
+ Compilers and Options
97
+ =====================
98
+
99
+ Some systems require unusual options for compilation or linking that
100
+ the `configure' script does not know about. Run `./configure --help'
101
+ for details on some of the pertinent environment variables.
102
+
103
+ You can give `configure' initial values for configuration parameters
104
+ by setting variables in the command line or in the environment. Here
105
+ is an example:
106
+
107
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
108
+
109
+ *Note Defining Variables::, for more details.
110
+
111
+ Compiling For Multiple Architectures
112
+ ====================================
113
+
114
+ You can compile the package for more than one kind of computer at the
115
+ same time, by placing the object files for each architecture in their
116
+ own directory. To do this, you can use GNU `make'. `cd' to the
117
+ directory where you want the object files and executables to go and run
118
+ the `configure' script. `configure' automatically checks for the
119
+ source code in the directory that `configure' is in and in `..'. This
120
+ is known as a "VPATH" build.
121
+
122
+ With a non-GNU `make', it is safer to compile the package for one
123
+ architecture at a time in the source code directory. After you have
124
+ installed the package for one architecture, use `make distclean' before
125
+ reconfiguring for another architecture.
126
+
127
+ On MacOS X 10.5 and later systems, you can create libraries and
128
+ executables that work on multiple system types--known as "fat" or
129
+ "universal" binaries--by specifying multiple `-arch' options to the
130
+ compiler but only a single `-arch' option to the preprocessor. Like
131
+ this:
132
+
133
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
134
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
135
+ CPP="gcc -E" CXXCPP="g++ -E"
136
+
137
+ This is not guaranteed to produce working output in all cases, you
138
+ may have to build one architecture at a time and combine the results
139
+ using the `lipo' tool if you have problems.
140
+
141
+ Installation Names
142
+ ==================
143
+
144
+ By default, `make install' installs the package's commands under
145
+ `/usr/local/bin', include files under `/usr/local/include', etc. You
146
+ can specify an installation prefix other than `/usr/local' by giving
147
+ `configure' the option `--prefix=PREFIX', where PREFIX must be an
148
+ absolute file name.
149
+
150
+ You can specify separate installation prefixes for
151
+ architecture-specific files and architecture-independent files. If you
152
+ pass the option `--exec-prefix=PREFIX' to `configure', the package uses
153
+ PREFIX as the prefix for installing programs and libraries.
154
+ Documentation and other data files still use the regular prefix.
155
+
156
+ In addition, if you use an unusual directory layout you can give
157
+ options like `--bindir=DIR' to specify different values for particular
158
+ kinds of files. Run `configure --help' for a list of the directories
159
+ you can set and what kinds of files go in them. In general, the
160
+ default for these options is expressed in terms of `${prefix}', so that
161
+ specifying just `--prefix' will affect all of the other directory
162
+ specifications that were not explicitly provided.
163
+
164
+ The most portable way to affect installation locations is to pass the
165
+ correct locations to `configure'; however, many packages provide one or
166
+ both of the following shortcuts of passing variable assignments to the
167
+ `make install' command line to change installation locations without
168
+ having to reconfigure or recompile.
169
+
170
+ The first method involves providing an override variable for each
171
+ affected directory. For example, `make install
172
+ prefix=/alternate/directory' will choose an alternate location for all
173
+ directory configuration variables that were expressed in terms of
174
+ `${prefix}'. Any directories that were specified during `configure',
175
+ but not in terms of `${prefix}', must each be overridden at install
176
+ time for the entire installation to be relocated. The approach of
177
+ makefile variable overrides for each directory variable is required by
178
+ the GNU Coding Standards, and ideally causes no recompilation.
179
+ However, some platforms have known limitations with the semantics of
180
+ shared libraries that end up requiring recompilation when using this
181
+ method, particularly noticeable in packages that use GNU Libtool.
182
+
183
+ The second method involves providing the `DESTDIR' variable. For
184
+ example, `make install DESTDIR=/alternate/directory' will prepend
185
+ `/alternate/directory' before all installation names. The approach of
186
+ `DESTDIR' overrides is not required by the GNU Coding Standards, and
187
+ does not work on platforms that have drive letters. On the other hand,
188
+ it does better at avoiding recompilation issues, and works well even
189
+ when some directory options were not specified in terms of `${prefix}'
190
+ at `configure' time.
191
+
192
+ Optional Features
193
+ =================
194
+
195
+ If the package supports it, you can cause programs to be installed
196
+ with an extra prefix or suffix on their names by giving `configure' the
197
+ option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
198
+
199
+ Some packages pay attention to `--enable-FEATURE' options to
200
+ `configure', where FEATURE indicates an optional part of the package.
201
+ They may also pay attention to `--with-PACKAGE' options, where PACKAGE
202
+ is something like `gnu-as' or `x' (for the X Window System). The
203
+ `README' should mention any `--enable-' and `--with-' options that the
204
+ package recognizes.
205
+
206
+ For packages that use the X Window System, `configure' can usually
207
+ find the X include and library files automatically, but if it doesn't,
208
+ you can use the `configure' options `--x-includes=DIR' and
209
+ `--x-libraries=DIR' to specify their locations.
210
+
211
+ Some packages offer the ability to configure how verbose the
212
+ execution of `make' will be. For these packages, running `./configure
213
+ --enable-silent-rules' sets the default to minimal output, which can be
214
+ overridden with `make V=1'; while running `./configure
215
+ --disable-silent-rules' sets the default to verbose, which can be
216
+ overridden with `make V=0'.
217
+
218
+ Particular systems
219
+ ==================
220
+
221
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
222
+ CC is not installed, it is recommended to use the following options in
223
+ order to use an ANSI C compiler:
224
+
225
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
226
+
227
+ and if that doesn't work, install pre-built binaries of GCC for HP-UX.
228
+
229
+ HP-UX `make' updates targets which have the same time stamps as
230
+ their prerequisites, which makes it generally unusable when shipped
231
+ generated files such as `configure' are involved. Use GNU `make'
232
+ instead.
233
+
234
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
235
+ parse its `<wchar.h>' header file. The option `-nodtk' can be used as
236
+ a workaround. If GNU CC is not installed, it is therefore recommended
237
+ to try
238
+
239
+ ./configure CC="cc"
240
+
241
+ and if that doesn't work, try
242
+
243
+ ./configure CC="cc -nodtk"
244
+
245
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
246
+ directory contains several dysfunctional programs; working variants of
247
+ these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
248
+ in your `PATH', put it _after_ `/usr/bin'.
249
+
250
+ On Haiku, software installed for all users goes in `/boot/common',
251
+ not `/usr/local'. It is recommended to use the following options:
252
+
253
+ ./configure --prefix=/boot/common
254
+
255
+ Specifying the System Type
256
+ ==========================
257
+
258
+ There may be some features `configure' cannot figure out
259
+ automatically, but needs to determine by the type of machine the package
260
+ will run on. Usually, assuming the package is built to be run on the
261
+ _same_ architectures, `configure' can figure that out, but if it prints
262
+ a message saying it cannot guess the machine type, give it the
263
+ `--build=TYPE' option. TYPE can either be a short name for the system
264
+ type, such as `sun4', or a canonical name which has the form:
265
+
266
+ CPU-COMPANY-SYSTEM
267
+
268
+ where SYSTEM can have one of these forms:
269
+
270
+ OS
271
+ KERNEL-OS
272
+
273
+ See the file `config.sub' for the possible values of each field. If
274
+ `config.sub' isn't included in this package, then this package doesn't
275
+ need to know the machine type.
276
+
277
+ If you are _building_ compiler tools for cross-compiling, you should
278
+ use the option `--target=TYPE' to select the type of system they will
279
+ produce code for.
280
+
281
+ If you want to _use_ a cross compiler, that generates code for a
282
+ platform different from the build platform, you should specify the
283
+ "host" platform (i.e., that on which the generated programs will
284
+ eventually be run) with `--host=TYPE'.
285
+
286
+ Sharing Defaults
287
+ ================
288
+
289
+ If you want to set default values for `configure' scripts to share,
290
+ you can create a site shell script called `config.site' that gives
291
+ default values for variables like `CC', `cache_file', and `prefix'.
292
+ `configure' looks for `PREFIX/share/config.site' if it exists, then
293
+ `PREFIX/etc/config.site' if it exists. Or, you can set the
294
+ `CONFIG_SITE' environment variable to the location of the site script.
295
+ A warning: not all `configure' scripts look for a site script.
296
+
297
+ Defining Variables
298
+ ==================
299
+
300
+ Variables not defined in a site shell script can be set in the
301
+ environment passed to `configure'. However, some packages may run
302
+ configure again during the build, and the customized values of these
303
+ variables may be lost. In order to avoid this problem, you should set
304
+ them in the `configure' command line, using `VAR=value'. For example:
305
+
306
+ ./configure CC=/usr/local2/bin/gcc
307
+
308
+ causes the specified `gcc' to be used as the C compiler (unless it is
309
+ overridden in the site shell script).
310
+
311
+ Unfortunately, this technique does not work for `CONFIG_SHELL' due to
312
+ an Autoconf limitation. Until the limitation is lifted, you can use
313
+ this workaround:
314
+
315
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
316
+
317
+ `configure' Invocation
318
+ ======================
319
+
320
+ `configure' recognizes the following options to control how it
321
+ operates.
322
+
323
+ `--help'
324
+ `-h'
325
+ Print a summary of all of the options to `configure', and exit.
326
+
327
+ `--help=short'
328
+ `--help=recursive'
329
+ Print a summary of the options unique to this package's
330
+ `configure', and exit. The `short' variant lists options used
331
+ only in the top level, while the `recursive' variant lists options
332
+ also present in any nested packages.
333
+
334
+ `--version'
335
+ `-V'
336
+ Print the version of Autoconf used to generate the `configure'
337
+ script, and exit.
338
+
339
+ `--cache-file=FILE'
340
+ Enable the cache: use and save the results of the tests in FILE,
341
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
342
+ disable caching.
343
+
344
+ `--config-cache'
345
+ `-C'
346
+ Alias for `--cache-file=config.cache'.
347
+
348
+ `--quiet'
349
+ `--silent'
350
+ `-q'
351
+ Do not print messages saying which checks are being made. To
352
+ suppress all normal output, redirect it to `/dev/null' (any error
353
+ messages will still be shown).
354
+
355
+ `--srcdir=DIR'
356
+ Look for the package's source code in directory DIR. Usually
357
+ `configure' can determine that directory automatically.
358
+
359
+ `--prefix=DIR'
360
+ Use DIR as the installation prefix. *note Installation Names::
361
+ for more details, including other options available for fine-tuning
362
+ the installation locations.
363
+
364
+ `--no-create'
365
+ `-n'
366
+ Run the configure checks, but stop before creating any output
367
+ files.
368
+
369
+ `configure' also accepts some other, not widely useful, options. Run
370
+ `configure --help' for more details.
@@ -1,78 +1,167 @@
1
1
  #Install Instructions
2
2
 
3
3
  - [Installation](#installation)
4
- - [Linux](#linux)
5
- - [OS X](#osx)
6
- - [Homebrew](#homebrew)
7
- - [Non-Homebrew](#non-homebrew)
8
- - [Windows](#windows)
9
- - [Usage](#usage)
4
+ - [Unix like](#unix)
5
+ - [OS X](#osx)
6
+ - [Homebrew](#homebrew)
7
+ - [Non-Homebrew](#non-homebrew)
8
+ - [Windows](#windows)
9
+ - [Cross-Compile](#windows-cross-compile)
10
+ - [Setting up a VM](#windows-cross-compile-vm)
11
+ - [Setting up the environment](#windows-cross-compile-environment)
12
+ - [Compiling](#windows-cross-compile-compiling)
13
+ - [Native](#windows-native)
14
+ - [Additional](#additional)
15
+ - [Advanced configure options](#aconf)
16
+ - [A/V support](#av)
17
+ - [libtoxav](#libtoxav)
18
+ - [Bootstrap daemon](#bootstrapd)
19
+ - [nTox](#ntox)
10
20
 
11
21
  <a name="installation" />
12
22
  ##Installation
13
23
 
14
- <a name="linux" />
15
- ###Linux:
24
+ <a name="unix" />
25
+ ###Most Unix like OSes:
16
26
 
17
27
  Build dependencies:
18
28
 
29
+ Note: package fetching commands may vary by OS.
30
+
31
+ On Ubuntu:
32
+
19
33
  ```bash
20
- apt-get install build-essential libtool autotools-dev automake libconfig-dev ncurses-dev cmake checkinstall
34
+ sudo apt-get install build-essential libtool autotools-dev automake checkinstall check git yasm
21
35
  ```
22
- Note that `libconfig-dev` should be >= 1.4.
36
+
37
+ On Fedora:
38
+
39
+ ```bash
40
+ yum groupinstall "Development Tools"
41
+ yum install libtool autoconf automake check check-devel
42
+ ```
43
+
44
+ On SunOS:
45
+
46
+ ```pfexcec
47
+ pkg install autoconf automake gcc-47
48
+ ```
49
+ On FreeBSD 10+:
50
+
51
+ ```tcsh
52
+ pkg install net-im/tox
53
+ ```
54
+ Note, if you install from ports select NaCl for performance, and sodium if you want it to be portable.
55
+
56
+ **For A/V support, also install the dependences listed in the [libtoxav] (#libtoxav) section.**
23
57
 
24
58
  You should get and install [libsodium](https://github.com/jedisct1/libsodium):
25
59
  ```bash
26
60
  git clone git://github.com/jedisct1/libsodium.git
27
61
  cd libsodium
28
- git checkout tags/0.4.2
62
+ git checkout tags/0.7.0
29
63
  ./autogen.sh
30
64
  ./configure && make check
31
- sudo checkinstall --install --pkgname libsodium --pkgversion 0.4.2 --nodoc
65
+ sudo checkinstall --install --pkgname libsodium --pkgversion 0.7.0 --nodoc
32
66
  sudo ldconfig
67
+ cd ..
33
68
  ```
34
69
 
35
- Then clone this repo and generate makefile:
70
+
71
+ Or if checkinstall is not easily available for your distribution (e.g., Fedora),
72
+ this will install the libs to /usr/local/lib and the headers to /usr/local/include:
73
+
36
74
  ```bash
37
- git clone git://github.com/irungentoo/ProjectTox-Core.git
38
- cd ProjectTox-Core
39
- mkdir build && cd build
40
- cmake ..
75
+ git clone git://github.com/jedisct1/libsodium.git
76
+ cd libsodium
77
+ git checkout tags/0.7.0
78
+ ./autogen.sh
79
+ ./configure
80
+ make check
81
+ sudo make install
82
+ cd ..
41
83
  ```
42
- Note that you should call cmake on the root [`CMakeLists.txt`](/CMakeLists.txt) file only.
43
84
 
44
- Then you can build any of the [`/testing`](/testing) and [`/other`](/other) that are currently supported on your platform by running:
45
- ```bash
46
- make name_of_c_file
85
+ If your default prefix is /usr/local and you happen to get an error that says "error while loading shared libraries: libtoxcore.so.0: cannot open shared object file: No such file or directory", then you can try running ```sudo ldconfig```. If that doesn't fix it, run:
47
86
  ```
48
- For example, to build [`Messenger_test.c`](/others/Messenger_test.c) you would run:
49
- ```bash
50
- make Messenger_test
87
+ echo '/usr/local/lib/' | sudo tee -a /etc/ld.so.conf.d/locallib.conf
88
+ sudo ldconfig
51
89
  ```
52
90
 
53
- Or you could just build everything that is supported on your platform by running:
91
+ Then clone this repo and generate makefile:
54
92
  ```bash
93
+ git clone git://github.com/irungentoo/toxcore.git
94
+ cd toxcore
95
+ autoreconf -i
96
+ ./configure
55
97
  make
98
+ sudo make install
56
99
  ```
57
100
 
101
+
58
102
  <a name="osx" />
59
103
  ###OS X:
60
104
 
105
+ You need the latest XCode with the Developer Tools (Preferences -> Downloads -> Command Line Tools).
106
+ The following libraries are required along with libsodium and cmake for Mountain Lion and XCode 4.6.3 install libtool, automake and autoconf. You can download them with Homebrew, or install them manually.
107
+
108
+ There are no binaries/executables going to /bin/ or /usr/bin/ now. Everything is compiled and ran from the inside your local branch. See [Usage](#usage) below.
61
109
  <a name="homebrew" />
62
110
  ####Homebrew:
111
+ To install from the formula:
112
+ ```bash
113
+ brew tap Tox/tox
114
+ brew install --HEAD libtoxcore
115
+ ```
116
+
117
+ To do it manually:
63
118
  ```
64
- brew install libtool automake autoconf libconfig libsodium cmake
65
- cmake .
119
+ brew install libtool automake autoconf libsodium check
120
+ ```
121
+ Then clone this repo and generate makefile:
122
+ ```bash
123
+ git clone git://github.com/irungentoo/toxcore.git
124
+ cd toxcore
125
+ autoreconf -i
126
+ ./configure
66
127
  make
67
- sudo make install
128
+ make install
129
+ ```
130
+
131
+ If execution fails with errors like "dyld: Library not loaded: /opt/tox-im/lib/libtoxcore.0.dylib", you may need to specify libsodium path:
132
+
133
+ Determine paths:
134
+ ```
135
+ brew list libsodium
136
+ ```
137
+
138
+ Configure include and lib folder and build again:
139
+ ```bash
140
+ ./configure --with-libsodium-headers=/usr/local/Cellar/libsodium/0.7.0/include/ --with-libsodium-libs=/usr/local/Cellar/libsodium/0.7.0/lib/
141
+ make
142
+ make install
68
143
  ```
69
144
 
145
+
70
146
  <a name="non-homebrew" />
71
147
  ####Non-homebrew:
72
148
 
73
- Much the same as Linux, remember to install the latest XCode and the developer tools (Preferences -> Downloads -> Command Line Tools).
74
- Users running Mountain Lion and the latest version of XCode (4.6.3) will also need to install libtool, automake and autoconf.
75
- They are easy enough to install, grab them from http://www.gnu.org/software/libtool/, http://www.gnu.org/software/autoconf/ and http://www.gnu.org/software/automake/, then follow these steps for each:
149
+ Grab the following packages:
150
+ * https://gnu.org/software/libtool/
151
+ * https://gnu.org/software/autoconf/
152
+ * https://gnu.org/software/automake/
153
+ * https://github.com/jedisct1/libsodium
154
+ * http://check.sourceforge.net/
155
+ * http://yasm.tortall.net/Download.html
156
+ * https://code.google.com/p/webm/downloads/list
157
+ * http://www.opus-codec.org/downloads/
158
+ * http://www.freedesktop.org/wiki/Software/pkg-config/
159
+
160
+ You must install yasm before installing libvpx, otherwise libvpx will fail to make correctly.
161
+
162
+ pkg-config is important for enabling a/v support in tox core, failure to install pkg-config will prevent tox core form finding the required libopus/libvpx libraries. (pkg-config may not configure properly, if you get an error about GLIB, run configure with the following parameter, --with-internal-glib).
163
+
164
+ Uncompress and install them all. Make sure to follow the README as the instructions change, but they all follow the same pattern below:
76
165
 
77
166
  ```bash
78
167
  ./configure
@@ -80,48 +169,358 @@ make
80
169
  sudo make install
81
170
  ```
82
171
 
83
- Do not install them from macports (or any dependencies for that matter) as they get shoved in the wrong directory
84
- and make your life more annoying.
172
+ Compiling and installing Tox Core
173
+
174
+ ```bash
175
+ cd toxcore
176
+ autoreconf -i
177
+ ./configure
178
+ make
179
+ make install
180
+ ```
181
+
182
+ If after running ./configure you get an error about core being unable to find libsodium (and you have installed it) run the following in place of ./configure;
183
+
184
+ ./configure --with-libsodium-headers=/usr/local/include/ --with-libsodium-libs=/usr/local/lib
185
+
186
+ Ensure you set the locations correctly depending on where you installed libsodium on your computer.
85
187
 
86
- Another thing you may want to install is the latest gcc, this caused me a few problems as XCode from 4.3
87
- no longer includes gcc and instead uses LLVM-GCC, a nice install guide can be found at
88
- http://caiustheory.com/install-gcc-421-apple-build-56663-with-xcode-42
188
+ If there is a problem with opus (for A/V) and you don't get a libtoxav, then try to set the pkg-config environment variable beforehand:
189
+
190
+ ```
191
+ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
192
+ ```
89
193
 
90
194
  <a name="windows" />
91
195
  ###Windows:
92
196
 
93
- You should install:
94
- - [MinGW](http://sourceforge.net/projects/mingw/)'s C compiler
95
- - [CMake](http://www.cmake.org/cmake/resources/software.html)
197
+ <a name="windows-cross-compile" />
96
198
 
97
- You have to [modify your PATH environment variable](http://www.computerhope.com/issues/ch000549.htm) so that it contains MinGW's bin folder path. With default settings, the bin folder is located at `C:\MinGW\bin`, which means that you would have to append `;C:\MinGW\bin` to the PATH variable.
199
+ ####Cross-compile
98
200
 
99
- Then you should either clone this repo by using git, or just download a [zip of current Master branch](https://github.com/irungentoo/ProjectTox-Core/archive/master.zip) and extract it somewhere.
201
+ It's a bit challenging to build Tox and all of its dependencies nativly on Windows, so we will show an easier, less error and headache prone method of building it -- cross-compiling.
100
202
 
101
- After that you should get precompiled package of libsodium from [here](https://download.libsodium.org/libsodium/releases/libsodium-win32-0.4.2.tar.gz) and extract the archive into this repo's root. That is, `sodium` folder should be along with `core`, `testing` and other folders.
203
+ <a name="windows-cross-compile-vm" />
204
+ #####Setting up a VM
102
205
 
103
- Navigate in `cmd` to this repo and run:
104
- ```cmd
105
- mkdir build && cd build
106
- cmake -G "MinGW Makefiles" ..
206
+ We will assume that you don't have any VM running Linux around and will guide you from the ground up.
207
+
208
+ First, you would need to get a virtual machine and a Linux distribution image file.
209
+
210
+ For a virtual machine we will use VirtualBox. You can get it [here](https://www.virtualbox.org/wiki/Downloads).
211
+
212
+ For a Linux distribution we will use Lubuntu 14.04 32-bit, which you can get [here](https://help.ubuntu.com/community/Lubuntu/GetLubuntu).
213
+
214
+ After you have those downloaded, install the VirtualBox and create a VM in it. The default of 512mb of RAM and 8gb of dynamically-allocated virtual hard drive would be enough.
215
+
216
+ When you have created the VM, go into its **Settings** -> **System** -> **Processor** and add some cores, if you have any additional available, for faster builds.
217
+
218
+ Then, go to **Settings** -> **Storage**, click on **Empty** under **Controller: IDE**, click on the little disc icon on the right side of the window, click on **Choose a virtual CD/DVD disk file** and select the downloaded Lubuntu image file.
219
+
220
+ Start the VM and follow the installation instructions.
221
+
222
+ After Lubuntu is installed and you have booted into it, in VirtualBox menu on top of the window select **Devices** -> **Insert Guest Additions CD image...**.
223
+
224
+ Open terminal from **Lubuntu's menu** -> **Accessories**.
225
+
226
+ Execute:
227
+ ```bash
228
+ sudo apt-get update
229
+ sudo apt-get install build-essential -y
230
+ cd /media/*/*/
231
+ sudo ./VBoxLinuxAdditions.run
232
+ ```
233
+
234
+ After that, create a folder called `toxbuild` somewhere on your Windows system. The go to **Devices** -> **Shared Folders Settings...** in the VirtualBox menu, add the `toxbuild` folder there and set **Auto-mount** and **Make Permanent** options.
235
+
236
+ Execute:
237
+ ```bash
238
+ sudo adduser `whoami` vboxsf
239
+ ```
240
+ Note the use of a [grave accent](http://en.wikipedia.org/wiki/Grave_accent) instead of an apostrophe.
241
+
242
+ Then just reboot the system with:
243
+ ```bash
244
+ sudo reboot
245
+ ```
246
+
247
+ After the system is booted, go to **Devices** -> **Shared Clipboard** and select **Bidirectional**. Now you will be able to copy-paste text between the host and the guest systems.
248
+
249
+ Now that the virtual machine is all set up, let's move to getting build dependencies and setting up environment variables.
250
+
251
+ <a name="windows-cross-compile-environment" />
252
+ #####Setting up the environment
253
+
254
+ First we will install all tools that we would need for building:
255
+ ```bash
256
+ sudo apt-get install build-essential libtool autotools-dev automake checkinstall check git yasm pkg-config mingw-w64 -y
257
+ ```
258
+
259
+ Then we will define a few variables, **depending on which you will build either 32-bit or 64-bit Tox**.
260
+
261
+ For 32-bit Tox build, do:
262
+ ```bash
263
+ WINDOWS_TOOLCHAIN=i686-w64-mingw32
264
+ LIB_VPX_TARGET=x86-win32-gcc
265
+ ```
266
+
267
+ For 64-bit Tox build, do:
268
+ ```bash
269
+ WINDOWS_TOOLCHAIN=x86_64-w64-mingw32
270
+ LIB_VPX_TARGET=x86_64-win64-gcc
271
+ ```
272
+
273
+ This is the only difference between 32-bit and 64-bit build procedures.
274
+
275
+ For speeding up the build process do:
276
+ ```
277
+ MAKEFLAGS=j$(nproc)
278
+ export MAKEFLAGS
279
+ ```
280
+
281
+ And let's make a folder where we will be building everything at
282
+ ```bash
283
+ cd ~
284
+ mkdir prefix
285
+ cd prefix
286
+ PREFIX_DIR=$(pwd)
287
+ cd ..
288
+ mkdir build
289
+ cd build
290
+ ```
291
+
292
+ <a name="windows-cross-compile-compiling" />
293
+ #####Compiling
294
+
295
+ Now we will build libraries needed for audio/video: VPX and Opus.
296
+
297
+ VPX:
298
+ ```bash
299
+ git clone http://git.chromium.org/webm/libvpx.git
300
+ cd libvpx
301
+ git checkout tags/v1.3.0
302
+ CROSS="$WINDOWS_TOOLCHAIN"- ./configure --target="$LIB_VPX_TARGET" --prefix="$PREFIX_DIR" --disable-examples --disable-unit-tests --disable-shared --enable-static
303
+ make
304
+ make install
305
+ cd ..
306
+ ```
307
+
308
+ Opus:
309
+ ```bash
310
+ wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz
311
+ tar -xf opus-1.1.tar.gz
312
+ cd opus-1.1
313
+ ./configure --host="$WINDOWS_TOOLCHAIN" --prefix="$PREFIX_DIR" --disable-extra-programs --disable-doc --disable-shared --enable-static
314
+ make
315
+ make install
316
+ cd ..
317
+ ```
318
+
319
+ Now we will build sodium crypto library:
320
+ ```bash
321
+ git clone https://github.com/jedisct1/libsodium/
322
+ cd libsodium
323
+ git checkout tags/0.7.0
324
+ ./autogen.sh
325
+ ./configure --host="$WINDOWS_TOOLCHAIN" --prefix="$PREFIX_DIR" --disable-shared --enable-static
326
+ make
327
+ make install
328
+ cd ..
329
+ ```
330
+
331
+ And finally we will build Tox:
332
+ ```bash
333
+ git clone https://github.com/irungentoo/toxcore
334
+ cd toxcore
335
+ ./autogen.sh
336
+ ./configure --host="$WINDOWS_TOOLCHAIN" --prefix="$PREFIX_DIR" --disable-ntox --disable-tests --disable-testing --with-dependency-search="$PREFIX_DIR" --disable-shared --enable-static
337
+ make
338
+ make install
339
+ cd ..
340
+ ```
341
+
342
+ Then we make Tox shared library:
343
+ ```bash
344
+ cd "$PREFIX_DIR"
345
+ mkdir tmp
346
+ cd tmp
347
+ $WINDOWS_TOOLCHAIN-ar x ../lib/libtoxcore.a
348
+ $WINDOWS_TOOLCHAIN-ar x ../lib/libtoxav.a
349
+ $WINDOWS_TOOLCHAIN-ar x ../lib/libtoxdns.a
350
+ $WINDOWS_TOOLCHAIN-gcc -Wl,--export-all-symbols -Wl,--out-implib=libtox.dll.a -shared -o libtox.dll *.o ../lib/*.a /usr/$WINDOWS_TOOLCHAIN/lib/libwinpthread.a -liphlpapi -lws2_32 -static-libgcc
107
351
  ```
108
- Note that you should call cmake on the root [`CMakeLists.txt`](/CMakeLists.txt) file only.
109
352
 
110
- Then you can build any of the [`/testing`](/testing) and [`/other`](/other) that are currently supported on your platform by running:
353
+ And we will copy it over to the `toxbuild` directory:
354
+ ```bash
355
+ mkdir -p /media/sf_toxbuild/release/lib
356
+ cp libtox.dll.a /media/sf_toxbuild/release/lib
357
+ mkdir -p /media/sf_toxbuild/release/bin
358
+ cp libtox.dll /media/sf_toxbuild/release/bin
359
+ mkdir -p /media/sf_toxbuild/release/include
360
+ cp -r ../include/tox /media/sf_toxbuild/release/include
361
+ ```
362
+
363
+ That's it. Now you should have `release/bin/libtox.dll`, `release/bin/libtox.dll.a` and `release/include/tox/<headers>` in your `toxbuild` directory on the Windows system.
364
+
365
+ <a name="windows-native" />
366
+ ####Native
367
+
368
+ Note that the Native instructions are incomplete, in a sense that they miss instructions needed for adding audio/video support to Tox. You also might stumble upon some unknown MinGW+msys issues while trying to build it.
369
+
370
+ You should install:
371
+ - [MinGW](http://sourceforge.net/projects/mingw/)
372
+
373
+ When installing MinGW, make sure to select the MSYS option in the installer.
374
+ MinGW will install an "MinGW shell" (you should get a shortcut for it), make sure to perform all operations (i.e., generating/running configure script, compiling, etc.) from the MinGW shell.
375
+
376
+ First download the source tarball from https://download.libsodium.org/libsodium/releases/ and build it.
377
+ Assuming that you got the libsodium-0.7.0.tar.gz release:
111
378
  ```cmd
112
- mingw32-make name_of_c_file
379
+ tar -zxvf libsodium-0.7.0.tar.gz
380
+ cd libsodium-0.7.0
381
+ ./configure
382
+ make
383
+ make install
384
+ cd ..
113
385
  ```
114
- For example, to build [`Messenger_test.c`](/others/Messenger_test.c) you would run:
386
+
387
+ You can also use a precompiled win32 binary of libsodium, however you will have to place the files in places where they can be found, i.e., dll's go to /bin headers to /include and libraries to /lib directories in your MinGW shell.
388
+
389
+ Next, install toxcore library, should either clone this repo by using git, or just download a [zip of current Master branch](https://github.com/irungentoo/toxcore/archive/master.zip) and extract it somewhere.
390
+
391
+ Assuming that you now have the sources in the toxcore directory:
392
+
115
393
  ```cmd
116
- mingw32-make Messenger_test
394
+ cd toxcore
395
+ autoreconf -i
396
+ ./configure
397
+ make
398
+ make install
399
+ ```
400
+
401
+ <a name="Clients" />
402
+ ####Clients:
403
+ While [Toxic](https://github.com/tox/toxic) is no longer in core, a list of Tox clients are located in our [wiki](http://wiki.tox.im/client)
404
+
405
+
406
+
407
+
408
+
409
+ <a name="additional" />
410
+ ##Additional
411
+
412
+
413
+
414
+ <a name="aconf" />
415
+ ###Advanced configure options:
416
+
417
+ - --prefix=/where/to/install
418
+ - --with-libsodium-headers=/path/to/libsodium/include/
419
+ - --with-libsodium-libs=/path/to/sodiumtest/lib/
420
+ - --enable-silent-rules less verbose build output (undo: "make V=1")
421
+ - --disable-silent-rules verbose build output (undo: "make V=0")
422
+ - --disable-tests build unit tests (default: auto)
423
+ - --disable-av disable A/V support (default: auto) see: [libtoxav](#libtoxav)
424
+ - --enable-ntox build nTox client (default: no) see: [nTox](#ntox)
425
+ - --enable-daemon build DHT bootstrap daemon (default=no) see: [Bootstrap daemon](#bootstrapd)
426
+ - --enable-shared[=PKGS] build shared libraries [default=yes]
427
+ - --enable-static[=PKGS] build static libraries [default=yes]
428
+
429
+
430
+ <a name="av" />
431
+ ###A/V support:
432
+
433
+ <a name="libtoxav" />
434
+ ####libtoxav:
435
+
436
+ 'libtoxav' is needed for A/V support and it's enabled by default. You can disable it by adding --disable-av argument to ./configure script like so:
437
+ ```bash
438
+ ./configure --disable-av
117
439
  ```
118
440
 
119
- Or you could just build everything that is supported on your platform by running:
441
+ There are 2 dependencies required for libtoxav: libopus and libvpx. If they are not installed A/V support is dropped.
442
+
443
+ Install on fedora:
120
444
  ```bash
121
- mingw32-make
445
+ yum install libopus-devel libvpx-devel
122
446
  ```
123
447
 
124
- <a name="usage" />
125
- ## Usage
448
+ Install on ubuntu:
449
+ ```bash
450
+ sudo apt-get install libopus-dev libvpx-dev
451
+ ```
452
+ If you get the "Unable to locate package libopus-dev" message, add the following ppa and try again:
453
+ ```bash
454
+ sudo add-apt-repository ppa:ubuntu-sdk-team/ppa && sudo apt-get update && sudo apt-get dist-upgrade
455
+ ```
456
+
457
+ Install from source (example for most unix-like OS's):
458
+
459
+ libvpx:
460
+ ```bash
461
+ git clone http://git.chromium.org/webm/libvpx.git
462
+ cd libvpx
463
+ ./configure
464
+ make -j3
465
+ sudo make install
466
+ cd ..
467
+ ```
468
+
469
+ libopus:
470
+ ```bash
471
+ wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz
472
+ tar xvzf opus-1.0.3.tar.gz
473
+ cd opus-1.0.3
474
+ ./configure
475
+ make -j3
476
+ sudo make install
477
+ cd ..
478
+ ```
126
479
 
127
- - [Start Guide](start_guide.md)
480
+ <a name="bootstrapd" />
481
+ ###Bootstrap daemon:
482
+
483
+ Daemon is disabled by default. You can enable it by adding --enable-daemon argument to ./configure script like so:
484
+ ```bash
485
+ ./configure --enable-daemon
486
+ ```
487
+ There is one dependency required for bootstrap daemon: `libconfig-dev` >= 1.4.
488
+
489
+ Install on fedora:
490
+ ```bash
491
+ yum install libconfig-devel
492
+ ```
493
+
494
+ Install on ubuntu:
495
+ ```bash
496
+ sudo apt-get install libconfig-dev
497
+ ```
498
+
499
+ OS X homebrew:
500
+ ```
501
+ brew install libconfig
502
+ ```
503
+ OS X non-homebrew:
504
+ Grab the following [package] (http://www.hyperrealm.com/libconfig/), uncompress and install
505
+
506
+ See this [readme](other/bootstrap_daemon/README.md) on how to set up the bootstrap daemon.
507
+
508
+
509
+ <a name="ntox" />
510
+ ###nTox test cli:
511
+
512
+ nTox is disabled by default. You can enable it by adding --enable-ntox argument to ./configure script like so:
513
+ ```bash
514
+ ./configure --enable-ntox
515
+ ```
516
+ There is one dependency required for nTox: libncurses.
517
+
518
+ Install on fedora:
519
+ ```bash
520
+ yum install ncurses-devel
521
+ ```
522
+
523
+ Install on ubuntu:
524
+ ```bash
525
+ sudo apt-get install ncurses-dev
526
+ ```