MAKEDEFS(1)
π¦ MAKEDEFS π
okay so quick vibe check first: this page lives in the General Commands Manual section, and it's all about makedefs, the Postfix makefile configuration utility. it's giving build-system main character energy, and honestly? we're obsessed. β¨
πΈ NAME πΈ
makedefs β Postfix makefile configuration utility
β¨ SYNOPSIS β¨
make makefiles name=value...
π DESCRIPTION π
so makedefs is the little detective that π figures out what your compilation environment looks like, and then it yells macro definitions onto the standard output stream β which you can prepend to template Makefiles. iconic behavior.
real talk though: these macros implement an internal interface and are subject to change without notice. no cap. build your whole life on them at your own risk, bestie π
π NAME=VALUE OVERRIDES π
the defaults? yeah, they're not the boss of you. you can overrule them by spelling them out as environment variables (or as name=value pairs right on the "make" command line). and if your variables contain whitespace or shell meta characters β wrap them in quotes, or chaos. π
okay now pay attention, this is important:
the command make makefiles name=value... will replace the string MAIL_VERSION at the end of a value with the Postfix version. that version is major.minor.patchlevel for a stable release, and major.minor-date for a development release. slay.
β οΈ do not try to specify something like$mail_version: that produces inconsistent results with different implementations of themake(1)command. just don't. π
π§ the actual options (yes, all of them)
AUXLIBS=object_library...β tells it about one or more non-default object libraries. Postfix 3.0 and later specify some of their database library dependencies withAUXLIBS_CDB,AUXLIBS_LDAP,AUXLIBS_LMDB,AUXLIBS_MONGODB,AUXLIBS_MYSQL,AUXLIBS_PCRE,AUXLIBS_PGSQL,AUXLIBS_SDBM, andAUXLIBS_SQLITE, respectively.CC=compiler_commandβ picks a non-default compiler. on many systems, the default isgcc.CCARGS=compiler_argumentsβ non-default compiler arguments, like, say, a non-default include directory. the following directives are special β:-DNO_CLOSEFROMβ do not use the systemclosefom()implementation.-DNO_DBβ do not build with Berkeley DB support.-DNO_DEVPOLLβ do not build with Solaris/dev/pollsupport. by default,/dev/pollsupport is compiled in on platforms that are known to support it.-DNO_DNSSECβ do not build with DNSSEC support, even if the resolver library appears to support it.-DNO_EPOLLβ do not build with Linux EPOLL support. by default, EPOLL support is compiled in on platforms that are known to support it.-DNO_EAIβ do not build with EAI (SMTPUTF8) support. by default, EAI support is compiled in when the"pkgconf"or"pkg-config"command are found, or the deprecated"icu-config"command.-DNO_INLINEβ do not require support for C99"inline"functions. instead, implement argument typechecks for non-(printf/scanf)-like functions with ternary operators and unreachable code.-DNO_IPV6β do not build with IPv6 support. by default, IPv6 support is compiled in on platforms that are known to have IPv6 support.
note: this directive is for debugging and testing only. it is not guaranteed to work on all platforms. if you don't want IPv6 support, set"inet_protocols = ipv4"inmain.cf. periodt. π
-DNO_IP_CYRUS_SASL_AUTHβ don't pass remote SMTP client and Postfix SMTP server IP address and port information to the Cyrus SASL library. this is compatible with Postfix < 3.2.-DNO_KQUEUEβ do not build with FreeBSD/NetBSD/OpenBSD/MacOSX KQUEUE support. by default, KQUEUE support is compiled in on platforms that are known to support it.-DNO_NISβ do not build with NIS or NISPLUS support. support for NIS is unavailable on some recent Linux distributions.-DNO_NISPLUSβ do not build with NISPLUS support. support for NISPLUS is unavailable on some recent Solaris distributions.-DNO_PCREβ do not build with PCRE support. by default, PCRE support is compiled in when thepcre2-configorpcre-configutility are installed.-DNO_POSIX_GETPW_Rβ disable support for POSIXgetpwnam_r/getpwuid_r.-DNO_RES_NCALLSβ do not build with the threadsaferesolver(5)API (res_ninit()etc.).-DNO_SIGSETJMPβ usesetjmp()/longjmp()instead ofsigsetjmp()/siglongjmp(). by default, Postfix usessigsetjmp()/siglongjmp()when they appear to work.-DNO_SNPRINTFβ usesprintf()instead ofsnprintf(). by default, Postfix usessnprintf()except on ancient systems.-DNO_STDBOOLβ don't use<stdbool.h>. this is usually auto-detected.
DEBUG=debug_levelβ sets a non-default debugging level. the default is-g. specifyDEBUG=to turn debugging off.OPT=optimization_levelβ sets a non-default optimization level. the default is-O. specifyOPT=to turn optimization off.POSTFIX_INSTALL_OPTS=-option...β options for thepostfix-installcommand, separated by whitespace. currently, the only supported option is-keep-build-mtime.SHLIB_CFLAGS=flagsβ override the compiler flags (typically,"-fPIC") for Postfix dynamically-linked libraries and database plugins.
this feature was introduced with Postfix 3.0.
SHLIB_RPATH=rpathβ override the runpath (typically,"'-Wl,-rpath,${SHLIB_DIR}'") for Postfix dynamically-linked libraries.
this feature was introduced with Postfix 3.0.
SHLIB_SUFFIX=suffixβ override the filename suffix (typically,".so") for Postfix dynamically-linked libraries and database plugins.
this feature was introduced with Postfix 3.0.
shared=yesβ enable Postfix builds with dynamically-linked libraries typically named$shlib_directory/libpostfix-*.so.*.
this feature was introduced with Postfix 3.0.
shared=noβ disable Postfix builds with dynamically-linked libraries typically named$shlib_directory/libpostfix-*.so.*.
this feature was introduced with Postfix 3.0.
dynamicmaps=yesβ enable Postfix builds with the configuration file$meta_directory/dynamicmaps.cfand dynamically-loadable database plugins typically namedpostfix-*.so.*. the setting"dynamicmaps=yes"implicitly enables Postfix dynamically-linked libraries.
this feature was introduced with Postfix 3.0.
dynamicmaps=noβ disable Postfix builds with the configuration file$meta_directory/dynamicmaps.cfand dynamically-loadable database plugins typically namedpostfix-*.so.*.
this feature was introduced with Postfix 3.0.
pie=yesβ enable Postfix builds with position-independent executables, on platforms where this is supported.
this feature was introduced with Postfix 3.0.
pie=noβ disable Postfix builds with position-independent executables, on platforms where this is supported.
this feature was introduced with Postfix 3.0.
installation_parameter=value...β override the compiled-in default value of the specified installation parameter(s). the following parameters are supported in this context:
command_directory config_directory daemon_directory
data_directory default_cache_db_type default_database_type
html_directory mail_spool_directory mailq_path manpage_directory
meta_directory newaliases_path queue_directory readme_directory
sendmail_path shlib_directory openssl_path
see the postconf(5) manpage for a description of these parameters.
this feature was introduced with Postfix 3.0.
WARN=warning_flagsβ non-default gcc compiler warning options, for use when"make"is invoked in a source subdirectory only.
π LICENSE π
the Secure Mailer license must be distributed with this software. fr fr, don't skip this one. π«Ά
π AUTHOR(S) π
Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA
Wietse Venema Google, Inc. 111 8th Avenue New York, NY 10011, USA
and that's the whole page, bestie π this was MAKEDEFS(1) from the General Commands Manual β the footer's just the section name with no extra source/version or date info attached, so that's literally all the metadata we're getting. slay, go build something. πΈβ¨π
π¦ where this page comes from
- ubuntu stonking: postfix 3.11.7-1ubuntu2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms