master build.cfg
  1# posix: POSIX 2024
  2PRESET_FEATURES=all
  3
  4# subset of: posix linux net xsi pseudo dev
  5PRESET_UTILS="posix linux net xsi pseudo"
  6
  7# installation paths
  8VERSION=2026-06-08T05-53-UTC-03
  9PREFIX=/usr/local
 10MANPREFIX=/usr/local/share/man
 11
 12# toolchain
 13CC=cc
 14CFLAGS="-std=c99 -Wall -Wextra -pedantic"
 15LDFLAGS=""
 16LDLIBS="-lcrypt -lresolv"
 17AR=ar
 18ARFLAGS="rc"
 19RANLIB=ranlib
 20
 21# --- preset expansion: do not edit below ---
 22
 23case "$PRESET_FEATURES" in
 24posix)
 25    FEATURE_FIND_DELETE=0;            FEATURE_FIND_QUIT=0
 26    FEATURE_FIND_EMPTY=0;             FEATURE_FIND_INUM=0
 27    FEATURE_FIND_SAMEFILE=0;          FEATURE_FIND_MAXDEPTH=0
 28    FEATURE_FIND_MINDEPTH=0;          FEATURE_FIND_MMIN=0
 29    FEATURE_FIND_AMIN=0;              FEATURE_FIND_CMIN=0
 30    FEATURE_FIND_INAME=0;             FEATURE_FIND_IPATH=0
 31    FEATURE_FIND_REGEX=0;             FEATURE_FIND_PRINT0=0
 32    FEATURE_SED_INPLACE=0;            FEATURE_SED_PRESERVE_NEWLINE=0
 33    FEATURE_GREP_CONTEXT=0;           FEATURE_GREP_MAX_COUNT=0
 34    FEATURE_TAR_CREATE=0;             FEATURE_TAR_EXCLUDE=0
 35    FEATURE_STAT_FILESYSTEM=0;        FEATURE_STAT_FORMAT=0
 36    FEATURE_SORT_BIG=0;               FEATURE_SORT_STABLE=0
 37    FEATURE_OD_ENDIAN=0;
 38    FEATURE_SH_HISTEDIT=0;            FEATURE_SH_LOCAL=0
 39    FEATURE_SH_LET=0;                 FEATURE_SH_ULIMIT=0
 40    FEATURE_SH_SETVAR=0;              FEATURE_SH_WORDEXP=0
 41    FEATURE_CAL_EXT=0
 42    FEATURE_LS_COLOR=0
 43    FEATURE_MODPROBE_SHOW_DEPENDS=0;  FEATURE_MODPROBE_BLACKLIST=0
 44    FEATURE_MODPROBE_SYSLOG=0;        FEATURE_MODPROBE_DIR_OVERRIDE=0
 45    FEATURE_DEPMOD_ALIAS=0;           FEATURE_DEPMOD_SYMBOLS=0
 46    FEATURE_TAR_TTY_SAFE=0;           FEATURE_TAR_NOFOLLOW=0
 47    FEATURE_READLINK_REALPATH=0;      FEATURE_UMOUNT_OPTIONS=0
 48    FEATURE_TAR_TO_STDOUT=0;          FEATURE_TAR_KEEP_OLD=0
 49    FEATURE_TAR_STRIP_COMPONENTS=0;   FEATURE_TAR_FILES_FROM=0
 50    FEATURE_TAR_EXCLUDE_FROM=0;       FEATURE_IP_ROUTE_ADD_DEL=0
 51    FEATURE_IP_LINK_SET=0;            FEATURE_IP_ADDR_FLUSH=0
 52    ;;
 53common)
 54    FEATURE_FIND_DELETE=1;            FEATURE_FIND_QUIT=1
 55    FEATURE_FIND_EMPTY=1;             FEATURE_FIND_INUM=1
 56    FEATURE_FIND_SAMEFILE=1;          FEATURE_FIND_MAXDEPTH=1
 57    FEATURE_FIND_MINDEPTH=1;          FEATURE_FIND_MMIN=1
 58    FEATURE_FIND_AMIN=1;              FEATURE_FIND_CMIN=1
 59    FEATURE_FIND_INAME=1;             FEATURE_FIND_IPATH=1
 60    FEATURE_FIND_REGEX=1;             FEATURE_FIND_PRINT0=1
 61    FEATURE_SED_INPLACE=1;            FEATURE_SED_PRESERVE_NEWLINE=1
 62    FEATURE_GREP_CONTEXT=1;           FEATURE_GREP_MAX_COUNT=1
 63    FEATURE_TAR_CREATE=1;             FEATURE_TAR_EXCLUDE=1
 64    FEATURE_STAT_FILESYSTEM=1;        FEATURE_STAT_FORMAT=1
 65    FEATURE_SORT_BIG=0;               FEATURE_SORT_STABLE=1
 66    FEATURE_OD_ENDIAN=0;
 67    FEATURE_SH_HISTEDIT=0;            FEATURE_SH_LOCAL=1
 68    FEATURE_SH_LET=1;                 FEATURE_SH_ULIMIT=1
 69    FEATURE_SH_SETVAR=0;              FEATURE_SH_WORDEXP=0
 70    FEATURE_CAL_EXT=1
 71    FEATURE_LS_COLOR=1
 72    FEATURE_MODPROBE_SHOW_DEPENDS=1;  FEATURE_MODPROBE_BLACKLIST=1
 73    FEATURE_MODPROBE_SYSLOG=1;        FEATURE_MODPROBE_DIR_OVERRIDE=1
 74    FEATURE_DEPMOD_ALIAS=1;           FEATURE_DEPMOD_SYMBOLS=1
 75    FEATURE_TAR_TTY_SAFE=1;           FEATURE_TAR_NOFOLLOW=1
 76    FEATURE_READLINK_REALPATH=1;      FEATURE_UMOUNT_OPTIONS=1
 77    FEATURE_TAR_TO_STDOUT=1;          FEATURE_TAR_KEEP_OLD=1
 78    FEATURE_TAR_STRIP_COMPONENTS=1;   FEATURE_TAR_FILES_FROM=1
 79    FEATURE_TAR_EXCLUDE_FROM=1;       FEATURE_IP_ROUTE_ADD_DEL=1
 80    FEATURE_IP_LINK_SET=1;            FEATURE_IP_ADDR_FLUSH=1
 81    ;;
 82all)
 83    # histedit now included via redline
 84    FEATURE_FIND_DELETE=1;            FEATURE_FIND_QUIT=1
 85    FEATURE_FIND_EMPTY=1;             FEATURE_FIND_INUM=1
 86    FEATURE_FIND_SAMEFILE=1;          FEATURE_FIND_MAXDEPTH=1
 87    FEATURE_FIND_MINDEPTH=1;          FEATURE_FIND_MMIN=1
 88    FEATURE_FIND_AMIN=1;              FEATURE_FIND_CMIN=1
 89    FEATURE_FIND_INAME=1;             FEATURE_FIND_IPATH=1
 90    FEATURE_FIND_REGEX=1;             FEATURE_FIND_PRINT0=1
 91    FEATURE_SED_INPLACE=1;            FEATURE_SED_PRESERVE_NEWLINE=1
 92    FEATURE_GREP_CONTEXT=1;           FEATURE_GREP_MAX_COUNT=1
 93    FEATURE_TAR_CREATE=1;             FEATURE_TAR_EXCLUDE=1
 94    FEATURE_STAT_FILESYSTEM=1;        FEATURE_STAT_FORMAT=1
 95    FEATURE_SORT_BIG=1;               FEATURE_SORT_STABLE=1
 96    FEATURE_OD_ENDIAN=1;
 97    FEATURE_SH_HISTEDIT=1;            FEATURE_SH_LOCAL=1
 98    FEATURE_SH_LET=1;                 FEATURE_SH_ULIMIT=1
 99    FEATURE_SH_SETVAR=1;              FEATURE_SH_WORDEXP=1
100    FEATURE_CAL_EXT=1
101    FEATURE_LS_COLOR=1
102    FEATURE_MODPROBE_SHOW_DEPENDS=1;  FEATURE_MODPROBE_BLACKLIST=1
103    FEATURE_MODPROBE_SYSLOG=1;        FEATURE_MODPROBE_DIR_OVERRIDE=1
104    FEATURE_DEPMOD_ALIAS=1;           FEATURE_DEPMOD_SYMBOLS=1
105    FEATURE_TAR_TTY_SAFE=1;           FEATURE_TAR_NOFOLLOW=1
106    FEATURE_READLINK_REALPATH=1;      FEATURE_UMOUNT_OPTIONS=1
107    FEATURE_TAR_TO_STDOUT=1;          FEATURE_TAR_KEEP_OLD=1
108    FEATURE_TAR_STRIP_COMPONENTS=1;   FEATURE_TAR_FILES_FROM=1
109    FEATURE_TAR_EXCLUDE_FROM=1;       FEATURE_IP_ROUTE_ADD_DEL=1
110    FEATURE_IP_LINK_SET=1;            FEATURE_IP_ADDR_FLUSH=1
111    ;;
112*)
113    printf 'build.cfg: unknown PRESET_FEATURES value: %s\n' "$PRESET_FEATURES" >&2
114    return 1 2>/dev/null || exit 1
115    ;;
116esac
117
118BUILD_POSIX=0; BUILD_LINUX=0; BUILD_NET=0; BUILD_XSI=0
119BUILD_PSEUDO=0; BUILD_DEV=0
120for _p in $PRESET_UTILS; do
121    case "$_p" in
122        posix)  BUILD_POSIX=1  ;;
123        linux)  BUILD_LINUX=1  ;;
124        net)    BUILD_NET=1    ;;
125        xsi)    BUILD_XSI=1    ;;
126        pseudo) BUILD_PSEUDO=1 ;;
127        dev)    BUILD_DEV=1    ;;
128        *)
129            printf 'build.cfg: unknown util preset: %s\n' "$_p" >&2
130            return 1 2>/dev/null || exit 1
131            ;;
132    esac
133done
134unset _p
135
136# --- per-item overrides (after preset expansion) ---
137# BUILD_POSIX_SH=0       # disable a tool when its group is active
138# BUILD_DEV_AS=1         # enable a tool whose group isnt in PRESET_UTILS
139FEATURE_SH_HISTEDIT=1
140# tls backend: set exactly one to 1 to enable tls
141FEATURE_USE_BEARSSL=0
142FEATURE_USE_LIBRESSL=0
143FEATURE_USE_OPENSSL=0
144FEATURE_USE_SSL=1
145
146if [ "$FEATURE_USE_SSL" = 1 ]; then
147    if [ "$FEATURE_USE_BEARSSL" = 0 ] && [ "$FEATURE_USE_LIBRESSL" = 0 ] && [ "$FEATURE_USE_OPENSSL" = 0 ]; then
148        if pkg-config --exists libbearssl 2>/dev/null || pkg-config --exists bearssl 2>/dev/null; then
149            FEATURE_USE_BEARSSL=1
150        elif pkg-config --exists libtls 2>/dev/null; then
151            FEATURE_USE_LIBRESSL=1
152        elif pkg-config --exists openssl 2>/dev/null; then
153            FEATURE_USE_OPENSSL=1
154        fi
155    fi
156fi