blob: b34be7245370c3c006fd928487caa83d42f1c04a [file] [log] [blame]
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00001
Igor Sysoevff8da912004-09-29 16:00:49 +00002# Copyright (C) Igor Sysoev
3
4
Igor Sysoevc2068d02005-10-19 12:33:58 +00005echo "checking for $NGX_SYSTEM specific features"
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00006
Igor Sysoevd039a2e2005-02-22 14:40:13 +00007case "$NGX_PLATFORM" in
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00008
Igor Sysoevaa542632006-09-07 20:17:19 +00009 FreeBSD:*)
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000010 . auto/os/freebsd
11 ;;
12
Igor Sysoevc0f8d912003-11-26 15:42:18 +000013 Linux:*)
14 . auto/os/linux
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000015 ;;
16
Igor Sysoevc0f8d912003-11-26 15:42:18 +000017 SunOS:*)
18 . auto/os/solaris
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000019 ;;
20
21 win32)
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000022 . auto/os/win32
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000023 ;;
24
Igor Sysoevaa542632006-09-07 20:17:19 +000025 DragonFly:*)
26 have=NGX_FREEBSD . auto/have_headers
27 CORE_INCS="$UNIX_INCS"
28 CORE_DEPS="$UNIX_DEPS $FREEBSD_DEPS"
29 CORE_SRCS="$UNIX_SRCS $FREEBSD_SRCS"
30
31 echo " + sendfile() found"
32 have=NGX_HAVE_SENDFILE . auto/have
33 CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS"
34
35 ngx_spacer='
36'
37 ;;
38
Igor Sysoeve31e90b2005-05-19 13:25:22 +000039 Darwin:*)
40 have=NGX_DARWIN . auto/have_headers
41 have=NGX_HAVE_INHERITED_NONBLOCK . auto/have
42 CORE_INCS="$UNIX_INCS"
43 CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
44 CORE_SRCS="$UNIX_SRCS"
Igor Sysoevea2f6af2006-12-22 12:54:08 +000045
46 ngx_feature="atomic(3)"
47 ngx_feature_name=NGX_DARWIN_ATOMIC
48 ngx_feature_run=no
49 ngx_feature_incs="#include <libkern/OSAtomic.h>"
50 ngx_feature_path=
51 ngx_feature_libs=
52 ngx_feature_test="int32_t lock, n;
53 n = OSAtomicCompareAndSwap32Barrier(0, 1, lock)"
54 . auto/feature
Igor Sysoeve31e90b2005-05-19 13:25:22 +000055 ;;
56
57 HP-UX:*)
58 # HP/UX
59 have=NGX_HPUX . auto/have_headers
60 CORE_INCS="$UNIX_INCS"
61 CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
62 CORE_SRCS="$UNIX_SRCS"
63 CC_AUX_FLAGS="$CC_AUX_FLAGS -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
64 ;;
65
66 OSF1:*)
Igor Sysoev4959ec42005-05-23 12:07:45 +000067 # Tru64 UNIX
Igor Sysoeve31e90b2005-05-19 13:25:22 +000068 have=NGX_TRU64 . auto/have_headers
Igor Sysoev4959ec42005-05-23 12:07:45 +000069 have=NGX_HAVE_STRERROR_R . auto/nohave
Igor Sysoeve31e90b2005-05-19 13:25:22 +000070 CORE_INCS="$UNIX_INCS"
71 CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
72 CORE_SRCS="$UNIX_SRCS"
73 ;;
74
Igor Sysoevd09f7a12004-06-15 17:47:16 +000075 *)
76 CORE_INCS="$UNIX_INCS"
77 CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
78 CORE_SRCS="$UNIX_SRCS"
79 ;;
80
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000081esac
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000082
83
Igor Sysoevd039a2e2005-02-22 14:40:13 +000084case "$NGX_MACHINE" in
Igor Sysoev02025fd2005-01-18 13:03:58 +000085
Igor Sysoev24025022005-12-16 15:07:08 +000086 i386 | i686 | i86pc)
Igor Sysoev899b44e2005-05-12 14:58:06 +000087 have=NGX_HAVE_NONALIGNED . auto/have
Igor Sysoev24025022005-12-16 15:07:08 +000088 NGX_MACH_CACHE_LINE=32
Igor Sysoev899b44e2005-05-12 14:58:06 +000089 ;;
Igor Sysoev02025fd2005-01-18 13:03:58 +000090
Igor Sysoev305a9d82005-12-26 17:07:48 +000091 amd64 | x86_64)
Igor Sysoev24025022005-12-16 15:07:08 +000092 have=NGX_HAVE_NONALIGNED . auto/have
93 NGX_MACH_CACHE_LINE=64
94 ;;
95
Igor Sysoev852cde42006-10-06 13:02:23 +000096 sun4u | sun4v | sparc | sparc64)
Igor Sysoevc31a9bb2005-11-26 10:11:11 +000097 have=NGX_ALIGNMENT value=16 . auto/define
Igor Sysoev24025022005-12-16 15:07:08 +000098 # TODO
99 NGX_MACH_CACHE_LINE=64
100 ;;
101
102 ia64 )
103 have=NGX_ALIGNMENT value=16 . auto/define
104 # TODO
105 NGX_MACH_CACHE_LINE=64
106 ;;
107
108 *)
109 NGX_MACH_CACHE_LINE=32
Igor Sysoevc31a9bb2005-11-26 10:11:11 +0000110 ;;
111
Igor Sysoev02025fd2005-01-18 13:03:58 +0000112esac
Igor Sysoev24025022005-12-16 15:07:08 +0000113
114if test -z "$NGX_CPU_CACHE_LINE"; then
115 NGX_CPU_CACHE_LINE=$NGX_MACH_CACHE_LINE
116fi
117
118have=NGX_CPU_CACHE_LINE value=$NGX_CPU_CACHE_LINE . auto/define