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_VERSION_H=$NXT_BUILD_DIR/nxt_version.h 29NXT_MAKEFILE=$NXT_BUILD_DIR/Makefile 30 31CC=${CC:-cc} 32 33NXT_DAEMON=unitd 34NXT_BINDIR="bin" 35NXT_SBINDIR="sbin" 36NXT_LIBDIR="lib" 37NXT_INCDIR="include" 38NXT_MANDIR="share/man" 39NXT_MODULES="modules" 40NXT_STATE="state" 41NXT_TMP="tmp" 42NXT_PID="unit.pid" 43NXT_LOG="unit.log" 44NXT_CONTROL="unix:control.unit.sock" 45NXT_USER="nobody" 46NXT_GROUP= 47 48nxt_module=${1:-""} 49 50case $nxt_module in 51 --help) 52 . auto/help 53 exit 0 54 ;; 55 56 ""|--*) 57 ;; 58 59 unit) 60 shift 61 ;; 62 63 *) 64 . auto/modules/conf 65 exit 0 66 ;; 67esac 68 69 70. auto/os/test 71. auto/options 72 73test -d $NXT_BUILD_DIR || mkdir $NXT_BUILD_DIR 74 75> $NXT_AUTOCONF_ERR 76> $NXT_AUTO_CONFIG_H 77 78. auto/cc/test 79 80 81cat << END >> $NXT_AUTO_CONFIG_H 82 83#define NXT_CONFIGURE_OPTIONS "$NXT_CONFIGURE_OPTIONS" 84#define NXT_SYSTEM_VERSION "$NXT_SYSTEM $NXT_SYSTEM_VERSION $NXT_SYSTEM_PLATFORM" 85#define NXT_COMPILER_VERSION "$NXT_CC_VERSION" 86 87#define NXT_PID "$NXT_PID" 88#define NXT_LOG "$NXT_LOG" 89#define NXT_MODULES "$NXT_MODULES" 90#define NXT_STATE "$NXT_STATE" 91#define NXT_TMP "$NXT_TMP" 92 93#define NXT_CONTROL_SOCK "$NXT_CONTROL" 94 95#define NXT_USER "$NXT_USER" 96#define NXT_GROUP "$NXT_GROUP" 97 98END 99 100 101if [ $echo = echo ]; then 102 # Build a portable "echo" program that supports only "-n" option. 103 # This also tests C compiler ability to create executables. 104 . auto/echo/build 105fi 106 107 108nxt_have=NXT_UNIX . auto/have 109 110if [ $NXT_UNIX_DOMAIN = YES ]; then 111 nxt_have=NXT_HAVE_UNIX_DOMAIN . auto/have 112fi 113 114NXT_LIBRT= 115 116. auto/types 117. auto/clang 118. auto/atomic 119. auto/malloc 120. auto/mmap 121. auto/shmem 122. auto/time 123. auto/threads 124. auto/events 125. auto/sockets 126. auto/sendfile 127. auto/files 128. auto/unix 129. auto/os/conf 130. auto/ssltls 131 132if [ $NXT_REGEX = YES ]; then 133 . auto/pcre 134fi 135 136. auto/isolation 137. auto/capability 138 139 140case "$NXT_SYSTEM_PLATFORM" in 141 i386 | amd64 | x86_64) 142 nxt_have=NXT_HAVE_LITTLE_ENDIAN . auto/have 143 nxt_have=NXT_HAVE_NONALIGNED . auto/have 144 ;; 145esac 146 147 148if [ $NXT_DEBUG = YES ]; then 149 nxt_debug=1 150else 151 nxt_debug=0 152fi 153 154cat << END >> $NXT_AUTO_CONFIG_H 155 156#ifndef NXT_DEBUG 157#define NXT_DEBUG $nxt_debug 158#endif 159 160#define NXT_SHM_PREFIX "$NXT_SHM_PREFIX" 161 162END 163 164. auto/test_build 165. auto/sources 166. auto/save 167 168# LOOK 169 170NXT_LIB_AUX_CFLAGS="$NXT_OPENSSL_CFLAGS $NXT_GNUTLS_CFLAGS \\ 171 $NXT_CYASSL_CFLAGS $NXT_POLARSSL_CFLAGS \\ 172 $NXT_PCRE_CFLAGS" 173 174NXT_LIB_AUX_LIBS="$NXT_OPENSSL_LIBS $NXT_GNUTLS_LIBS \\ 175 $NXT_CYASSL_LIBS $NXT_POLARSSL_LIBS \\ 176 $NXT_PCRE_LIB" 177 178. auto/make 179. auto/summary 180