INSTALL 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. 1 Requirements
  2. 1.1 Operating system
  3. Linux:
  4. - kernel version >=2.6.22 (for epoll and signalfd)
  5. - glibc >=2.8 (for epoll and signalfd)
  6. - tested on x86, x86_64 and ARM architectures. Not tested on any big-endian architecture.
  7. Windows:
  8. - Windows XP or newer; tested on Windows XP and Windows 7
  9. Other systems are not supported.
  10. 1.2 Compilers
  11. Linux:
  12. - gcc
  13. - clang
  14. Windows:
  15. - gcc from the mingw-w64 project for 32-bit targets
  16. - clang, properly built with mingw-w64, using mingw headers/libs
  17. C language features used:
  18. - Standard (all part of C99):
  19. - designated initializers
  20. - variable length arrays as automatic variables
  21. - stdint.h, inttypes.h, stddef.h
  22. - intermingled declarations and code
  23. - for loop initial declaration
  24. - one-line "//" comments
  25. - Extensions:
  26. - statements and declarations in expressions
  27. - packed structure attribute (to pack a structure and allow unaligned access)
  28. - __alignof__ for querying the required alignment of types
  29. 1.3 CMake
  30. The build system uses CMake.
  31. 1.4 OpenSSL
  32. Libcrypto (part of OpenSSL) is used for block ciphers, hash functions and random data generation.
  33. 1.5 Network Security Services (NSS)
  34. The NSS library from Mozilla is used for TLS support. NSS command-line tools are also needed
  35. for setting up certificates.
  36. 1.6 TAP-Win32 (Windows only) (runtime only)
  37. The TAP-Win32 driver, part of OpenVPN.
  38. 2 Compilation
  39. 2.1 Compiling on Linux
  40. $ tar xf badvpn-<version>.tar.bz2
  41. $ mkdir build
  42. $ cd build
  43. $ cmake ../badvpn-<version> -DCMAKE_INSTALL_PREFIX=/usr/local
  44. $ make
  45. If you want to install it, run as root:
  46. # make install
  47. 2.2 Compiling for Windows
  48. See the file INSTALL-WINDOWS for detailed instructions.
  49. 3 Usage
  50. See the documentation in the man pages (badvpn(7), badvpn-server(8), badvpn-client(8)).