====== Dependencies ======

This page identifies the dependencies of the C/C++ source projects in the Synchronet Source Repository.

===== SDL =====

The [[http://www.libsdl.org/|Simple DirectMedia Layer]] library is optionally supported by CIOLIB.

The SDL libraries and headers are no longer (as of Oct-20-2011) being stored in the Synchronet Source Repository.

===== XPDEV =====
The Synchronet cross-platform development (XPDEV) library is required by all Synchronet-related projects and libraries that support cross-platform development.

XPDEV source code is hosted in the Synchronet Source Repository at [[https://gitlab.synchro.net/sbbs/sbbs/-/tree/master/src/xpdev|src/xpdev/]].

===== SMBLIB =====

Deuce's CIOLIB (CONIO) requires SMBLIB.

===== CIOLIB =====

[[person::Deuce]]'s console input/output library (CIOLIB) is required by all UIFC applications and CIOXTRN.

CIOLIB source code is hosted in the Synchronet Source Repository at [[https://gitlab.synchro.net/main/sbbs/-/tree/master/src/conio|src/conio/]].

===== UIFC =====

The Synchronet User Interface (UIFC) library is required by all locally executed full-screen console mode utilities (e.g. SCFG) and [[:SyncTERM]].

UIFC source code is hosted in the Synchronet Source Repository at [[https://gitlab.synchro.net/main/sbbs/-/tree/master/src/uifc|src/uifc/]].



===== Ncurses =====
Ncurses ("new curses") is required for [[#CIOLIB]] builds on *nix builds.

Ncurses header and library files be provided by your *nix distribution.

===== Cryptlib =====

[[http://www.cs.auckland.ac.nz/~pgut001/cryptlib/|Cryptlib]] is required for SSHv2 and SSL/TLS support in Synchronet and [[:SyncTERM]].

Cryptlib files are mirrored in the Synchronet Source Repository at [[https://gitlab.synchro.net/sbbs/sbbs/-/tree/master/3rdp|3rdp/]].
===== SpiderMonkey =====

Mozilla [[https://developer.mozilla.org/en/SpiderMonkey|SpiderMonkey]] (a.k.a. ''lib[moz]js'' and JavaScript-C) v1.8.5 is required for [[custom:JavaScript]] support in Synchronet and ''[[util:jsexec]]''.

SpiderMonkey libraries and header files for Win32 are mirrored in the Synchronet Source Repository at [[https://gitlab.synchro.net/sbbs/sbbs/-/tree/master/3rdp/win32.release/mozjs|3rdp/win32.release/mozjs/]].

SpiderMonkey source and header files for targeting [[install:nix|other platforms]] are mirrored in the Synchronet Source Repository at [[https://gitlab.synchro.net/sbbs/sbbs/-/tree/master/3rdp/dist|3rdp/dist/]].


===== NSPR =====

[[https://developer.mozilla.org/en/NSPR|Netscape Portable Runtime]] is required by [[#SpiderMonkey]]. On Linux/Unix systems, you should install the proper package for your OS distribution.

Fro Win32, ''nspr4.dll'' is mirrored in the Synchronet Source Repository at [[https://gitlab.synchro.net/sbbs/sbbs/-/tree/master/3rdp/win32.release/nspr/bin|3rdp/win32.release/nspr/bin]].

===== COMIO =====

[[person::Digital Man]]'s communication port (serial port / UART) input/output (COMIO) library is required by SEXYZ, SEXPOTS and SyncTERM.

COMIO source code is hosted in the Synchronet Source Repository at [[https://gitlab.synchro.net/sbbs/sbbs/-/tree/master/src/comio|src/comio/]].

===== OpenDoors =====

OpenDoors is required by most of the doors in the repository in [[https://gitlab.synchro.net/sbbs/sbbs/-/tree/master/src/doors/|src/doors/]]

OpenDoors source code is hosted in the Synchronet Source Repository at [[https://gitlab.synchro.net/sbbs/sbbs/-/tree/master/src/odoors/|src/odoors/]].

===== External Dependencies =====
If building and running on a *nix system (e.g. Linux), be sure to see those [[install:nix:prerequisites]] as well.
