xref: /unit/auto/os/conf (revision 216)
10Sigor@sysoev.ru
20Sigor@sysoev.ru# Copyright (C) Igor Sysoev
30Sigor@sysoev.ru# Copyright (C) NGINX, Inc.
40Sigor@sysoev.ru
50Sigor@sysoev.ru
60Sigor@sysoev.ru# To support dynamically loaded modules libnxt library must be a shared
70Sigor@sysoev.ru# object itself because an application linked with static libnxt library
80Sigor@sysoev.ru# may lack code required by the modules.  Dynamic linkers allow to specify
90Sigor@sysoev.ru# relative path in SONAME library entry or in RPATH executable entry.
100Sigor@sysoev.ru#
110Sigor@sysoev.ru# Solaris 7, Linux 2.2, and FreeBSD 7.3 support $ORIGIN variable.
120Sigor@sysoev.ru# MacOSX supports @executable_path variable.
130Sigor@sysoev.ru# NetBSD does not support $ORIGIN variable.
140Sigor@sysoev.ru#
150Sigor@sysoev.ru# "ar -r" is enough to create a static library, ranlib is surplus.
160Sigor@sysoev.ru# "ar -c" disables the "creating archive" warning.
170Sigor@sysoev.ru
180Sigor@sysoev.ru
190Sigor@sysoev.rucase "$NXT_SYSTEM" in
200Sigor@sysoev.ru
210Sigor@sysoev.ru    Linux)
220Sigor@sysoev.ru        nxt_have=NXT_LINUX . auto/have
230Sigor@sysoev.ru
240Sigor@sysoev.ru        NXT_STATIC_LINK="ar -r -c"
250Sigor@sysoev.ru        NXT_SHARED_LINK="\$(CC) -shared -Wl,-soname,libnxt.so"
260Sigor@sysoev.ru        NXT_SHARED_LOCAL_LINK="\$(CC) -shared \
270Sigor@sysoev.ru                               -Wl,-soname,\\\$\$ORIGIN/libnxt.so"
280Sigor@sysoev.ru        NXT_MODULE_LINK="\$(CC) -shared"
290Sigor@sysoev.ru
300Sigor@sysoev.ru        # "-Wl,-E" exports symbols of executable file.
310Sigor@sysoev.ru        NXT_EXEC_LINK="\$(CC) -Wl,-E"
320Sigor@sysoev.ru        NXT_SHARED_LOCAL_EXEC_LINK=
330Sigor@sysoev.ru
340Sigor@sysoev.ru        NXT_LIB_STATIC="libnxt.a"
350Sigor@sysoev.ru        NXT_LIB_SHARED="libnxt.so"
360Sigor@sysoev.ru        NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so"
370Sigor@sysoev.ru
380Sigor@sysoev.ru        NXT_LIBM="-lm"
390Sigor@sysoev.ru        NXT_LIBS="$NXT_LIBRT $NXT_LIBDL $NXT_PTHREAD"
400Sigor@sysoev.ru    ;;
410Sigor@sysoev.ru
420Sigor@sysoev.ru    FreeBSD)
430Sigor@sysoev.ru        nxt_have=NXT_FREEBSD . auto/have
440Sigor@sysoev.ru
450Sigor@sysoev.ru        NXT_STATIC_LINK="ar -r -c"
460Sigor@sysoev.ru        NXT_SHARED_LINK="\$(CC) -shared -Wl,-soname,libnxt.so"
470Sigor@sysoev.ru        NXT_SHARED_LOCAL_LINK="\$(CC) -shared \
480Sigor@sysoev.ru                               -Wl,-soname,\\\$\$ORIGIN/libnxt.so"
490Sigor@sysoev.ru        NXT_MODULE_LINK="\$(CC) -shared"
500Sigor@sysoev.ru
510Sigor@sysoev.ru        # "-Wl,-E" exports symbols of executable file.
520Sigor@sysoev.ru        NXT_EXEC_LINK="\$(CC) -Wl,-E"
530Sigor@sysoev.ru        # "-Wl,-z,origin" enables $ORIGIN processing.
540Sigor@sysoev.ru        NXT_SHARED_LOCAL_EXEC_LINK="-Wl,-z,origin"
550Sigor@sysoev.ru
560Sigor@sysoev.ru        NXT_LIB_STATIC="libnxt.a"
570Sigor@sysoev.ru        NXT_LIB_SHARED="libnxt.so"
580Sigor@sysoev.ru        NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so"
590Sigor@sysoev.ru
600Sigor@sysoev.ru        NXT_LIBM="-lm"
610Sigor@sysoev.ru        NXT_LIBS="$NXT_PTHREAD"
620Sigor@sysoev.ru    ;;
630Sigor@sysoev.ru
640Sigor@sysoev.ru    SunOS)
650Sigor@sysoev.ru        nxt_have=NXT_SOLARIS . auto/have
660Sigor@sysoev.ru
670Sigor@sysoev.ru        case "$NXT_CC_NAME" in
680Sigor@sysoev.ru
690Sigor@sysoev.ru            SunC):
700Sigor@sysoev.ru                NXT_STATIC_LINK="ar -r -c"
710Sigor@sysoev.ru                NXT_SHARED_LINK="\$(CC) -G -h libnxt.so"
720Sigor@sysoev.ru                NXT_SHARED_LOCAL_LINK="\$(CC) -G -h \\\$\$ORIGIN/libnxt.so"
730Sigor@sysoev.ru                NXT_MODULE_LINK="\$(CC) -G"
740Sigor@sysoev.ru            ;;
750Sigor@sysoev.ru
760Sigor@sysoev.ru            *)
770Sigor@sysoev.ru                NXT_STATIC_LINK="ar -r -c"
780Sigor@sysoev.ru                NXT_SHARED_LINK="\$(CC) -shared -Wl,-soname,libnxt.so"
790Sigor@sysoev.ru                NXT_SHARED_LOCAL_LINK="\$(CC) -shared \
800Sigor@sysoev.ru                                       -Wl,-soname,\\\$\$ORIGIN/libnxt.so"
810Sigor@sysoev.ru                NXT_MODULE_LINK="\$(CC) -shared"
820Sigor@sysoev.ru            ;;
830Sigor@sysoev.ru        esac
840Sigor@sysoev.ru
850Sigor@sysoev.ru        NXT_LIB_STATIC="libnxt.a"
860Sigor@sysoev.ru        NXT_LIB_SHARED="libnxt.so"
870Sigor@sysoev.ru        NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so"
880Sigor@sysoev.ru
890Sigor@sysoev.ru        NXT_EXEC_LINK="\$(CC)"
900Sigor@sysoev.ru        NXT_SHARED_LOCAL_EXEC_LINK=
910Sigor@sysoev.ru
920Sigor@sysoev.ru        NXT_LIBM="-lm"
930Sigor@sysoev.ru        NXT_LIBS="-lsocket $NXT_LIBSENDFILE"
940Sigor@sysoev.ru        NXT_LIBS="$NXT_LIBS $NXT_LIBRT $NXT_LIBDL $NXT_PTHREAD"
950Sigor@sysoev.ru    ;;
960Sigor@sysoev.ru
970Sigor@sysoev.ru    Darwin)
980Sigor@sysoev.ru        nxt_have=NXT_MACOSX . auto/have
990Sigor@sysoev.ru
1000Sigor@sysoev.ru        # HFS+ volumes are caseless by default.
1010Sigor@sysoev.ru        nxt_have=NXT_HAVE_CASELESS_FILESYSTEM . auto/have
1020Sigor@sysoev.ru
1030Sigor@sysoev.ru        # MacOSX 10.6 (Snow Leopard) has deprecated ucontext(3).
1040Sigor@sysoev.ru        # MacOSX 10.7 (Lion) has deprecated system OpenSSL.
1050Sigor@sysoev.ru        # MAC_OS_X_VERSION_MIN_REQUIRED macro does not help.
106*216Sigor@sysoev.ru        # "-rpath" is supported since MacOSX 10.5 (Leopard).
107*216Sigor@sysoev.ru        NXT_CFLAGS="$NXT_CFLAGS -mmacosx-version-min=10.5"
1080Sigor@sysoev.ru
1090Sigor@sysoev.ru        NXT_STATIC_LINK="ar -r -c"
1100Sigor@sysoev.ru        NXT_SHARED_LINK="\$(CC) -dynamiclib"
1110Sigor@sysoev.ru        NXT_SHARED_LOCAL_LINK="\$(CC) -dynamiclib \
1120Sigor@sysoev.ru                               -install_name @executable_path/libnxt.dylib"
1130Sigor@sysoev.ru
1140Sigor@sysoev.ru        # Prior to MacOSX 10.5 (Leopard) only bundles could be unloaded.
115*216Sigor@sysoev.ru        # NXT_MODULE_LINK="\$(CC) -bundle -undefined dynamic_lookup"
116*216Sigor@sysoev.ru        NXT_MODULE_LINK="\$(CC) -dynamiclib -undefined dynamic_lookup"
1170Sigor@sysoev.ru
1180Sigor@sysoev.ru        NXT_EXEC_LINK="\$(CC)"
1190Sigor@sysoev.ru        NXT_SHARED_LOCAL_EXEC_LINK=
1200Sigor@sysoev.ru
1210Sigor@sysoev.ru        NXT_LIB_STATIC="libnxt.a"
1220Sigor@sysoev.ru        NXT_LIB_SHARED="libnxt.dylib"
1230Sigor@sysoev.ru        NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.dylib"
1240Sigor@sysoev.ru
1250Sigor@sysoev.ru        # MacOSX libm.dylib is a symlink to libSystem.dylib.
1260Sigor@sysoev.ru        NXT_LIBM=
1270Sigor@sysoev.ru        NXT_LIBS=
1280Sigor@sysoev.ru
1290Sigor@sysoev.ru    ;;
1300Sigor@sysoev.ru
1310Sigor@sysoev.ru    NetBSD)
1320Sigor@sysoev.ru        nxt_have=NXT_NETBSD . auto/have
1330Sigor@sysoev.ru
1340Sigor@sysoev.ru        NXT_STATIC_LINK="ar -r -c"
1350Sigor@sysoev.ru        NXT_SHARED_LINK="\$(CC) -shared"
1360Sigor@sysoev.ru        NXT_SHARED_LOCAL_LINK="\$(CC) -shared"
1370Sigor@sysoev.ru        NXT_MODULE_LINK="\$(CC) -shared"
1380Sigor@sysoev.ru
1390Sigor@sysoev.ru        NXT_EXEC_LINK="\$(CC)"
1400Sigor@sysoev.ru        NXT_SHARED_LOCAL_EXEC_LINK=
1410Sigor@sysoev.ru
1420Sigor@sysoev.ru        NXT_LIB_STATIC="libnxt.a"
1430Sigor@sysoev.ru        NXT_LIB_SHARED="libnxt.so"
1440Sigor@sysoev.ru        NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so"
1450Sigor@sysoev.ru
1460Sigor@sysoev.ru        NXT_LIBM="-lm"
1470Sigor@sysoev.ru        NXT_LIBS="$NXT_PTHREAD"
1480Sigor@sysoev.ru    ;;
1490Sigor@sysoev.ru
1500Sigor@sysoev.ru    OpenBSD)
1510Sigor@sysoev.ru        nxt_have=NXT_OPENBSD . auto/have
1520Sigor@sysoev.ru
1530Sigor@sysoev.ru        NXT_STATIC_LINK="ar -r -c"
1540Sigor@sysoev.ru        NXT_SHARED_LINK="\$(CC) -shared"
1550Sigor@sysoev.ru        NXT_SHARED_LOCAL_LINK="\$(CC) -shared"
1560Sigor@sysoev.ru        NXT_MODULE_LINK="\$(CC) -shared"
1570Sigor@sysoev.ru
1580Sigor@sysoev.ru        NXT_EXEC_LINK="\$(CC)"
1590Sigor@sysoev.ru        NXT_SHARED_LOCAL_EXEC_LINK=
1600Sigor@sysoev.ru
1610Sigor@sysoev.ru        NXT_LIB_STATIC="libnxt.a"
1620Sigor@sysoev.ru        NXT_LIB_SHARED="libnxt.so"
1630Sigor@sysoev.ru        NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so"
1640Sigor@sysoev.ru
1650Sigor@sysoev.ru        NXT_LIBM="-lm"
1660Sigor@sysoev.ru        NXT_LIBS="$NXT_PTHREAD"
1670Sigor@sysoev.ru    ;;
1680Sigor@sysoev.ru
1690Sigor@sysoev.ru    AIX)
1700Sigor@sysoev.ru        nxt_have=NXT_AIX . auto/have
1710Sigor@sysoev.ru
1720Sigor@sysoev.ru        NXT_STATIC_LINK="ar -r -c"
1730Sigor@sysoev.ru        NXT_SHARED_LINK="\$(CC) -G"
1740Sigor@sysoev.ru        NXT_SHARED_LOCAL_LINK="\$(CC) -G"
1750Sigor@sysoev.ru        NXT_MODULE_LINK="\$(CC) -G"
1760Sigor@sysoev.ru
1770Sigor@sysoev.ru        NXT_EXEC_LINK="\$(CC)"
1780Sigor@sysoev.ru        NXT_SHARED_LOCAL_EXEC_LINK=
1790Sigor@sysoev.ru
1800Sigor@sysoev.ru        NXT_LIB_STATIC="libnxt.a"
1810Sigor@sysoev.ru        NXT_LIB_SHARED="libnxt.so"
1820Sigor@sysoev.ru        NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so"
1830Sigor@sysoev.ru
1840Sigor@sysoev.ru        NXT_LIBM="-lm"
1850Sigor@sysoev.ru        NXT_LIBS="$NXT_PTHREAD"
1860Sigor@sysoev.ru    ;;
1870Sigor@sysoev.ru
1880Sigor@sysoev.ru    HP-UX)
1890Sigor@sysoev.ru        nxt_have=NXT_HPUX . auto/have
1900Sigor@sysoev.ru
1910Sigor@sysoev.ru        NXT_EXEC_LINK="\$(CC)"
1920Sigor@sysoev.ru        NXT_SHARED_LOCAL_EXEC_LINK=
1930Sigor@sysoev.ru
1940Sigor@sysoev.ru        NXT_STATIC_LINK="ar -r -c"
1950Sigor@sysoev.ru        NXT_SHARED_LINK="\$(CC) -shared"
1960Sigor@sysoev.ru        NXT_SHARED_LOCAL_LINK="\$(CC) -shared"
1970Sigor@sysoev.ru        NXT_MODULE_LINK="\$(CC) -shared"
1980Sigor@sysoev.ru
1990Sigor@sysoev.ru        NXT_LIB_STATIC="libnxt.a"
2000Sigor@sysoev.ru        NXT_LIB_SHARED="libnxt.so"
2010Sigor@sysoev.ru        NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so"
2020Sigor@sysoev.ru
2030Sigor@sysoev.ru        NXT_LIBM="-lm"
2040Sigor@sysoev.ru        NXT_LIBS="$NXT_PTHREAD $NXT_LIBHG"
2050Sigor@sysoev.ru    ;;
2060Sigor@sysoev.ru
2070Sigor@sysoev.ru    QNX)
2080Sigor@sysoev.ru        nxt_have=NXT_QNX . auto/have
2090Sigor@sysoev.ru
2100Sigor@sysoev.ru        NXT_STATIC_LINK="ar -r -c"
2110Sigor@sysoev.ru        NXT_SHARED_LINK="\$(CC) -shared"
2120Sigor@sysoev.ru        NXT_SHARED_LOCAL_LINK="\$(CC) -shared"
2130Sigor@sysoev.ru        NXT_MODULE_LINK="\$(CC) -shared"
2140Sigor@sysoev.ru
2150Sigor@sysoev.ru        NXT_EXEC_LINK="\$(CC)"
2160Sigor@sysoev.ru        NXT_SHARED_LOCAL_EXEC_LINK=
2170Sigor@sysoev.ru
2180Sigor@sysoev.ru        NXT_LIB_STATIC="libnxt.a"
2190Sigor@sysoev.ru        NXT_LIB_SHARED="libnxt.so"
2200Sigor@sysoev.ru        NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so"
2210Sigor@sysoev.ru
2220Sigor@sysoev.ru        NXT_LIBM="-lm"
2230Sigor@sysoev.ru        NXT_LIBS="$NXT_PTHREAD"
2240Sigor@sysoev.ru    ;;
2250Sigor@sysoev.ru
2260Sigor@sysoev.ru    *)
2270Sigor@sysoev.ru        NXT_STATIC_LINK="ar -r -c"
2280Sigor@sysoev.ru        NXT_SHARED_LINK="\$(CC) -shared"
2290Sigor@sysoev.ru        NXT_SHARED_LOCAL_LINK="\$(CC) -shared"
2300Sigor@sysoev.ru        NXT_MODULE_LINK="\$(CC) -shared"
2310Sigor@sysoev.ru
2320Sigor@sysoev.ru        # "-Wl,-E" exports symbols of executable file.
2330Sigor@sysoev.ru        NXT_EXEC_LINK="\$(CC) -Wl,-E"
2340Sigor@sysoev.ru        NXT_SHARED_LOCAL_EXEC_LINK=
2350Sigor@sysoev.ru
2360Sigor@sysoev.ru        NXT_LIB_STATIC="libnxt.a"
2370Sigor@sysoev.ru        NXT_LIB_SHARED="libnxt.so"
2380Sigor@sysoev.ru        NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so"
2390Sigor@sysoev.ru
2400Sigor@sysoev.ru        NXT_LIBM="-lm"
2410Sigor@sysoev.ru        NXT_LIBS="$NXT_LIBRT $NXT_LIBDL $NXT_PTHREAD"
2420Sigor@sysoev.ru    ;;
2430Sigor@sysoev.ruesac
244