====== Options ====== The Synchronet builds system supports a vast array of build options most of which are only slightly supported. This page attempts to document them for advanced users. ===== Supported Options ===== * ''DEBUG'' * If defined, or if ''RELEASE'' is not defined, does a debug build. * ''FORTIFY'' * When combined with ''DEBUG'', will build with ''[[https://www.redhat.com/en/blog/enhance-application-security-fortifysource|_FORTIFY_SOURCE]]'' option (and enable basic optimization). * ''SANITIZE'' * When combined with ''DEBUG'', will build with AddressSanitizer (ASan) and Undefined Behavior (UB) Sanitizer (not currently recommended/supported). * ''RELEASE'' * If defined, does a release build (no debug information). ===== SpiderMonkey Options ===== * ''JS_CFLAGS'' * Extra CFLAGS for compiling against JS * ''JS_LDFLAGS'' * Extra LDFLAGS for linking agsint JS * ''JSINCLUDE'' * Path to JS headers * ''JSLIBDIR'' * Path to JS library. * ''JSLIB'' * Library name for SpiderMonkey. * ''EXTRA_JS_CONFIGURE_ARGS'' * Pass these arguments IN ADDITION TO THE BUILDIN ONES to the ''configure'' command when building the included SpiderMonkey. * Adding ''--disable-tracejit'' is commonly needed to build JS on less common OSs/Architectures. Please [[https://gitlab.synchro.net/main/sbbs/-/issues/new|file a bug]] if it's required. * ''JS_CONFIGURE_ARGS'' * Pass to the ''configure'' command when building the included SpiderMonkey. ===== Cryptlib Options ===== * ''CRYPTLIBINCLUDE'' * Path to Cryptlib header files * ''CRYPTLIBDIR'' * Path to Cyrptlib library * ''CRYPT_LIBS'' * Library link specifier (ie: -lcl or /path/to/libcl.a) ===== SDL Options ===== * ''USE_SDL_AUDIO'' * Use SDL for audio only, not graphics. * ''WITHOUT_SDL'' * Do not attempt to use the SDL library for anything. * ''SDL_CONFIG'' * Command-line for the sdl-config utility ===== nspr4 options ===== * ''NSPRDIR'' * Path to the nspr4 library * ''NSPRINCLUDE'' * Path to the nspr4 header files * ''NSPR_CFLAGS'' * Extra CFLAGS for compiling against nspr4 * ''NSPR_LDFLAGS'' * Extra linker flags for linking against nspr4 ===== Other Options ===== * ''SRC_ROOT'' * Overrides the path to the src directory. Normally set in the makefile. * ''3RDP_ROOT'' * Overrides the path to the 3rdp directory. Normally set in the makefile. * ''PROFILE'' * Generates binaries that create gprof detail files (GCC/DEBUG only) * ''UPROFILE'' * Generates binaries which generate profile-driven optimizartion data (GCC/DEBUG only) * ''USE_UPROFILE'' * Builds ising information generated by a ''UPROFIE'' build (RELEASE builds only) * ''GCOV'' * Generates binaries that produce gcov data * ''DONT_CLOBBER_CC'' (Removed Fri Feb 6 23:58:56 2015 UTC - gcc no longer forced) * By default, the build system will force CC to be ''gcc''. To use a different compiler, you will need to set both CC *and* this option. * ''OBJPATH_SUFFIX'' * Adds the specified string to the object path. * ''STATIC'' * Attempts to statically link everything. Unlikely to work. * ''BUILDPATH'' * Changes the "debug" or "release" suffix on output directories to this value. Useful when building for multiple systems with the same machine/compiler/release options. * ''NO_X'' * Prevents the use of X11. * ''WITHOUT_PORTAUDIO'' * Do not attempt to support portaudio. * ''DONT_BLAME_SYNCHRONET'' * Reduces the importance of security to allow rebinding of ports. Please don't use this. ===== See Also ===== * [[:install:nix:|install:nix index]]