Open Files 5.3.0
Multi-Platform Event-Driven Application Framework
Configuring a Platform Build

ConnectSMB has both runtime and build time configuration settings.

Static Build Settings

The build settings are grouped into the following configuration buckets:

  • platform (macos, linux, win, android)
  • debug (debug, nodebug)
  • smb (nosmb, smbclient, smbserver)
  • cipher (openssl, gnutls, mbedtls)
  • jni (jni, nojni)

The high level makefile contains targets for a build tuple. Tuples are formed by concatenating configuration buckets. For example, the following tuples are supported:

macos-debug-nosmb-openssl-nojni
linux-nodebug-smbclient-openssl-nojni

A target further appends a build phase. The phases of a build are:

  • clean: clean the build
  • config: Configure a build
  • build: Perform a build
  • install: Install build artifacts into system
  • uninstall: Remove build artifats from system
  • test: Run Unit Tests on build
  • docs: Build this document for that platform
  • reinstall: Build and Reinstall
  • info: Echo the build tuple
  • full: Perform a clean, config, build, install, and test

For instance, to make and install an smbclient package using opensl on linux for production, one would issue:

make linux-nodebug-smbclient-openssl-nojni-full

There is a special target that will build all supported tuples for a platform. For building all linux targets, one coud type:

make linux-full

There is another special target for building a production smbclient using openssl on linux.

make linux-smb-client-<phase>

Where phase is any of the build phases (clean, config, etc.)

Configuration Parameter Documentation is available here: Static Configuration Parameters