xref: /unit/configure (revision 805:9d08482cca9c)
1#!/bin/sh
2
3# Copyright (C) Igor Sysoev
4# Copyright (C) NGINX, Inc.
5
6
7# Disable localized program messages.
8LC_ALL=C
9export LC_ALL
10
11# Stop on error exit status.
12set -e
13
14# Stop on uninitialized variable.
15set -u
16
17# Initialize variables with null values if they are not defined.
18CFLAGS=${CFLAGS=}
19NXT_TEST_CFLAGS=${NXT_TEST_CFLAGS=}
20NXT_TEST_LIBS=${NXT_TEST_LIBS=}
21
22NXT_BUILD_DIR=${NXT_BUILD_DIR:-build}
23
24NXT_AUTOTEST=$NXT_BUILD_DIR/autotest
25NXT_AUTOCONF_ERR=$NXT_BUILD_DIR/autoconf.err
26NXT_AUTOCONF_DATA=$NXT_BUILD_DIR/autoconf.data
27NXT_AUTO_CONFIG_H=$NXT_BUILD_DIR/nxt_auto_config.h
28NXT_MAKEFILE=$NXT_BUILD_DIR/Makefile
29
30CC=${CC:-cc}
31
32NXT_DAEMON=unitd
33NXT_BINDIR="bin"
34NXT_SBINDIR="sbin"
35NXT_LIBDIR="lib"
36NXT_INCDIR="include"
37NXT_MODULES="modules"
38NXT_STATE="state"
39NXT_PID="unit.pid"
40NXT_LOG="unit.log"
41NXT_CONTROL="unix:control.unit.sock"
42NXT_USER="nobody"
43NXT_GROUP=
44
45nxt_module=${1:-""}
46
47case $nxt_module in
48    --help)
49        . auto/help
50        exit 0
51    ;;
52
53    ""|--*)
54    ;;
55
56    unit)
57        shift
58    ;;
59
60    *)
61        . auto/modules/conf
62        exit 0
63    ;;
64esac
65
66
67. auto/os/test
68. auto/options
69
70test -d $NXT_BUILD_DIR || mkdir $NXT_BUILD_DIR
71
72> $NXT_AUTOCONF_ERR
73> $NXT_AUTO_CONFIG_H
74
75. auto/cc/test
76
77
78cat << END >> $NXT_AUTO_CONFIG_H
79
80#define NXT_CONFIGURE_OPTIONS  "$NXT_CONFIGURE_OPTIONS"
81#define NXT_SYSTEM_VERSION     "$NXT_SYSTEM $NXT_SYSTEM_VERSION $NXT_SYSTEM_PLATFORM"
82#define NXT_COMPILER_VERSION   "$NXT_CC_VERSION"
83
84#define NXT_PID                "$NXT_PID"
85#define NXT_LOG                "$NXT_LOG"
86#define NXT_MODULES            "$NXT_MODULES"
87#define NXT_STATE              "$NXT_STATE"
88
89#define NXT_CONTROL_SOCK       "$NXT_CONTROL"
90
91#define NXT_USER               "$NXT_USER"
92#define NXT_GROUP              "$NXT_GROUP"
93
94END
95
96
97if [ $echo = echo ]; then
98    # Build a portable "echo" program that supports only "-n" option.
99    # This also tests C compiler ability to create executables.
100    . auto/echo/build
101fi
102
103
104nxt_have=NXT_UNIX . auto/have
105
106if [ $NXT_UNIX_DOMAIN = YES ]; then
107    nxt_have=NXT_HAVE_UNIX_DOMAIN . auto/have
108fi
109
110NXT_LIBRT=
111
112. auto/types
113. auto/clang
114. auto/atomic
115. auto/malloc
116. auto/mmap
117. auto/shmem
118. auto/time
119. auto/threads
120. auto/events
121. auto/sockets
122. auto/sendfile
123. auto/files
124. auto/unix
125. auto/os/conf
126. auto/ssltls
127. auto/pcre
128
129
130case "$NXT_SYSTEM_PLATFORM" in
131    i386 | amd64 | x86_64)
132        nxt_have=NXT_HAVE_LITTLE_ENDIAN . auto/have
133        nxt_have=NXT_HAVE_NONALIGNED . auto/have
134    ;;
135esac
136
137
138if [ $NXT_DEBUG = YES ]; then
139    nxt_debug=1
140else
141    nxt_debug=0
142fi
143
144cat << END >> $NXT_AUTO_CONFIG_H
145
146#ifndef NXT_DEBUG
147#define NXT_DEBUG  $nxt_debug
148#endif
149
150#define NXT_SHM_PREFIX  "$NXT_SHM_PREFIX"
151
152END
153
154. auto/test_build
155. auto/sources
156. auto/save
157
158# LOOK
159
160NXT_LIB_AUX_CFLAGS="$NXT_OPENSSL_CFLAGS $NXT_GNUTLS_CFLAGS \\
161                    $NXT_CYASSL_CFLAGS $NXT_POLARSSL_CFLAGS \\
162                    $NXT_PCRE_CFLAGS"
163
164NXT_LIB_AUX_LIBS="$NXT_OPENSSL_LIBS $NXT_GNUTLS_LIBS \\
165                    $NXT_CYASSL_LIBS $NXT_POLARSSL_LIBS \\
166                    $NXT_PCRE_LIB"
167
168. auto/make
169. auto/summary
170