Makefile variables - lwfitzgerald/spksrc GitHub Wiki

Available Variables in cross/ Makefiles

Variable name Explanation Example
%_TARGET ability to overwrite the default target values: (CONFIGURE, BUILD, INSTALL, PATCH, PATCH, DOWNLOAD, STRIP) also every PRE_ and POST_ state CONFIGURE_TARGET=umurmur_configure POST_PATCH_TARGET=python_post_patch
GNU_CONFIGURE Use GNU Configure (adds --host --target flags) GNU_CONFIGURE = 1
CONFIGURE_ARGS add some extra flags to the configure option CONFIGURE_ARGS = --disable-test
ADDITIONAL_%FLAGS add some extra flags besides the one set by spksrc values (ld, cxx, c) ADDITIONAL_LDFLAGS = -L$(STAGING_INSTALL_PREFIX)/lib
DEPENDS package depends on those tools or libraries. DEPENDS = cross/openssl
BUILD_DEPENDS package depends only needed for build (will not be included in spk) BUILD_DEPENDS = cross/ffmpeg
UNSUPPORTED_ARCHS exclude those arches from being build UNSUPPORTED_ARCHS=cedarview
REQUIRED_DSM The build process will exit when a lower than required DSM toolchain is used. Used for DSM archs only. REQUIRED_DSM = 5.2
REQUIRED_SRM The build process will exit when a lower than required SRM toolchain is used. Used for SRM archs only. REQUIRED_SRM = 1.2
PKG_DIST_FILE Provide a custom Name for the downloaded source file. Needed when filename does not contain package name (i.e. version only) to avoid conflicts in distrib folder. PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)

Available Variables in native/ Makefiles

Variable name Explanation Example
%_TARGET ability to overwrite the default target values: (CONFIGURE, BUILD, INSTALL, PATCH, PATCH, DOWNLOAD, STRIP) also every PRE_ and POST_ state PRE_INSTALL_TARGET=mysql-connector-c_pre_install
GNU_CONFIGURE Use GNU Configure (adds --host --target flags) GNU_CONFIGURE = 1
CONFIGURE_ARGS add some extra flags to the configure option CONFIGURE_ARGS = --disable-test
NATIVE_%_FLAGS add some extra flags besides the one set by spksrc values (ld, cxx, c) NATIVE_LD_FLAGS=-L/some/path
DEPENDS package depends on those tools DEPENDS = native/go-1.4
PKG_DIST_FILE Provide a custom Name for the downloaded source file. Needed when filename does not contain package name (i.e. version only) to avoid conflicts in distrib folder. PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)

Available Variables in spk/ Makefiles

Variable name Explanation Example
SPK_NAME Package name SPK_NAME = deluge
SPK_VERS Software version SPK_VERS = 1.3.12
SPK_REV Package Revision number. Starts at 1, goes up 1 for every subsequent release unrelated to SPK_VERS SPK_REV = 5
SPK_ICON Icon to be used in DSM. Must be of quadratic shape. Use at least 256x256 pixel. SPK_ICON = src/deluge.png
DSM_UI_DIR DSM UI directory location, relative to /var/packages/$PACKAGE/target/ DSM_UI_DIR = app
BETA Marks a package as beta. Remove variable if not BETA=1
REPORT_URL Link to beta package feedback submission. In local.mk REPORT_URL = https://github.com/SynoCommunity/spksrc/issues
ARCH Sets the arch to the specified value. Omitting a value sets noarch ARCH =
BUILD_DEPENDS Dependencies declared here are used during the build process, but are not included in the final package. BUILD_DEPENDS = cross/python cross/setuptools cross/pip cross/wheel
DEPENDS Requirements to compile and/or run the software after packaging DEPENDS = cross/libtorrent cross/$(SPK_NAME)
WHEELS See Using Python wheels WHEELS = characteristic chardet pyasn1-modules python_libtorrent pyxdg Mako service-identity
SPK_DEPENDS Packages that must be installed before installation of this package is allowed SPK_DEPENDS = "python>=2.7.6-8"
REQUIRED_DSM The build process will exit when a lower than required DSM toolchain is used. Used for DSM archs only. REQUIRED_DSM = 5.0
REQUIRED_SRM The build process will exit when a lower than required SRM toolchain is used. Used for SRM archs only. REQUIRED_SRM = 1.2
FIRMWARE The minimum DSM version for DSM < 6.1 FIRMWARE = 4.3-3776
OS_MIN_VERS The minimum DSM version for DSM >= 6.1 OS_MIN_VERS = 6.2-23739
UNSUPPORTED_ARCHS Exclude these arches from being built UNSUPPORTED_ARCHS=cedarview
MAINTAINER The creator of the package or current maintainer MAINTAINER = Diaoul
DESCRIPTION Package description shown in Package Center. Multiple languages are supported. Quotes and parentheses must be escaped by backslash. DESCRIPTION = It\'s a \"great\" package, DESCRIPTION_FRE = C\'est un \"super\" package in French
ADMIN_PORT Port for web based management interface of package. For new packages please choose a free port and update the list SynoCommunity Used Ports ADMIN_PORT = 9091
ADMIN_PROTOCOL Protocol for web based management interface. Optional ADMIN_PROTOCOL = http
ADMIN_URL URL context for web based management interface. Optional ADMIN_URL = /
RELOAD_UI RELOAD_UI = yes
DISPLAY_NAME The name displayed in Package Center DISPLAY_NAME = Transmission
CHANGELOG Description of changes related to the SPK_REV. CHANGELOG = "Enable sc-download group", CHANGELOG = "1. First entry<br>2. Second entry"
HOMEPAGE Software homepage HOMEPAGE = http://www.transmissionbt.com
LICENSE Software license LICENSE = GPLv2/GPLv3
WIZARDS_DIR Location of the wizard UI files WIZARDS_DIR = src/wizard
CONF_DIR Location of the conf/ directory to include in package CONF_DIR = src/conf
STARTABLE Required. Declares if package starts a service STARTABLE = no
SERVICE_USER Runtime user account for generic service support. auto is recommended SERVICE_USER=auto
SERVICE_SETUP Shell script functions and variables for package specific installation or service startup/stop process. Is not DSM start-stop-status script. When ever possible prefere SERVICE_SETUP over SSS_SCRIPT and INSTALLER_SCRIPT. SERVICE_SETUP = src/service-setup.sh
SERVICE_PORT TCP port of generic service support for firewall and DSM shortcut. May be identical to ADMIN_PORT SERVICE_PORT = $(ADMIN_PORT)
SERVICE_PORT_TITLE Protocol name for firewall interface. Default is package name SERVICE_PORT_TITLE=imaps
SERVICE_PORT_PROTOCOL Protocol for DSM shortcut. Default is http SERVICE_PORT_PROTOCOL=https
SERVICE_PORT_URL URL context path to access application from DSM shortcut. Default is / SERVICE_PORT_URL=/myapp
SERVICE_PORT_ALL_USERS Grant access to DSM shortcut for all users. Default is true SERVICE_PORT_ALL_USERS = true
NO_SERVICE_SHORTCUT Prevents DSM shortcut generation if set, when SERVICE_PORT does not provide http NO_SERVICE_SHORTCUT = true
SERVICE_WIZARD_SHARE Variable name from wizard which holds service storage on Shared Folder SERVICE_WIZARD_SHARE = wizard_share
SERVICE_WIZARD_GROUP Variable name from wizard which holds group name which controls service permissions to files on Shared Folder SERVICE_WIZARD_GROUP = wizard_group
SERVICE_COMMAND Service complete command line to fork with generic service support SERVICE_COMMAND = $${SYNOPKG_PKGDEST}/bin/myservice --port $${SERVICE_PORT}
SERVICE_EXE Process executable absolute path for BusyBox start-stop-daemon with generic service support SERVICE_EXE = $${SYNOPKG_PKGDEST}/bin/myservice
SERVICE_OPTIONS Process options for BusyBox start-stop-daemon with generic service support SERVICE_OPTIONS = --configuration $${SYNOPKG_PKGDEST}/var/myservice.conf --port $${SERVICE_PORT}
INSTALLER_SCRIPT Location of package specific installer script. Replace generic installer. Use SERVICE_SETUP instead, when possible. INSTALLER_SCRIPT = src/installer.sh
SSS_SCRIPT Location of package specific DSM start-stop-status. Use SERVICE_SETUP instead, when possible. SSS_SCRIPT = src/dsm-control.sh
FWPORTS Location of custom service configure file. Allows user to create firewall rules for this package. See SynoCommunity Ports FWPORTS = src/${SPK_NAME}.sc
INSTALL_PREFIX Obsolete. Default is INSTALL_PREFIX = /var/packages/$(SPK_NAME)/target and must not be changed.
POST_STRIP_TARGET Process extra installation after the stripping to the target files. POST_STRIP_TARGET = deluge_extra_install
SPK_COMMANDS List of commands to create soft links in /usr/local/ for command line tools.That requires not to use custom INSTALLER_SCRIPT nor SERVICE_SETUP. SPK_COMMANDS = bin/lua bin/luac
SPK_LINKS List of target:command to create soft links with different names for command line tools.That requires not to use custom INSTALLER_SCRIPT nor SERVICE_SETUP. SPK_LINKS = /usr/local/bin/mutt:bin/mutt-utf8