Configuration and building example:
./configure
./configure python
./configure php
./configure go
make all
or
./configure
make nginext
./configure python
make python
./configure php
make php
./configure go
make go
Modules configuration options and building examples:
./configure python --module=python2 --config=python2.7-config
make python2
./configure php --module=php7 --config=php7.0-config
--lib-path=/usr/local/php7.0
make php7
./configure go --go=go1.6 --go-path=${HOME}/go1.6
make go1.6
232 lines
4.5 KiB
Plaintext
232 lines
4.5 KiB
Plaintext
|
|
# Copyright (C) Igor Sysoev
|
|
# Copyright (C) Valentin V. Bartenev
|
|
# Copyright (C) NGINX, Inc.
|
|
|
|
|
|
$echo "creating $NXT_MAKEFILE"
|
|
|
|
mkdir -p $NXT_BUILD_DIR/src \
|
|
$NXT_BUILD_DIR/test
|
|
|
|
|
|
cat << END > $NXT_MAKEFILE
|
|
|
|
CC = $CC
|
|
|
|
CFLAGS = $NXT_CFLAGS $NXT_CC_OPT $CFLAGS
|
|
|
|
NXT_EXEC_LINK = $NXT_EXEC_LINK $NXT_LD_OPT
|
|
NXT_SHARED_LOCAL_LINK = $NXT_SHARED_LOCAL_LINK $NXT_LD_OPT
|
|
NXT_MODULE_LINK = $NXT_MODULE_LINK $NXT_LD_OPT
|
|
|
|
.PHONY: $NXT_BIN
|
|
$NXT_BIN: $NXT_BUILD_DIR/$NXT_BIN
|
|
|
|
all: $NXT_BIN
|
|
|
|
END
|
|
|
|
|
|
# The include paths list.
|
|
|
|
$echo -n "NXT_LIB_INCS =" >> $NXT_MAKEFILE
|
|
|
|
for nxt_inc in src $NXT_BUILD_DIR
|
|
do
|
|
$echo -n " -I $nxt_inc" >> $NXT_MAKEFILE
|
|
done
|
|
|
|
$echo >> $NXT_MAKEFILE
|
|
$echo >> $NXT_MAKEFILE
|
|
|
|
|
|
# The include files dependences list.
|
|
|
|
$echo "NXT_LIB_DEPS = \\" >> $NXT_MAKEFILE
|
|
|
|
for nxt_dep in $NXT_LIB_DEPS $NXT_LIB_UNIT_TEST_DEPS $NXT_AUTO_CONFIG_H
|
|
do
|
|
$echo " $nxt_dep \\" >> $NXT_MAKEFILE
|
|
done
|
|
|
|
$echo >> $NXT_MAKEFILE
|
|
$echo >> $NXT_MAKEFILE
|
|
|
|
|
|
# Library object files list.
|
|
|
|
$echo "NXT_LIB_OBJS = \\" >> $NXT_MAKEFILE
|
|
|
|
for nxt_src in $NXT_LIB_SRCS
|
|
do
|
|
nxt_obj=`$echo $nxt_src | sed -e "s/\.c$/\.o/"`
|
|
$echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
|
|
done
|
|
|
|
$echo >> $NXT_MAKEFILE
|
|
|
|
|
|
# Shared and static library.
|
|
|
|
cat << END >> $NXT_MAKEFILE
|
|
|
|
libnxt: $NXT_BUILD_DIR/$NXT_LIB_SHARED $NXT_BUILD_DIR/$NXT_LIB_STATIC
|
|
|
|
$NXT_BUILD_DIR/$NXT_LIB_SHARED: \$(NXT_LIB_OBJS)
|
|
\$(NXT_SHARED_LOCAL_LINK) -o $NXT_BUILD_DIR/$NXT_LIB_SHARED \\
|
|
\$(NXT_LIB_OBJS) \\
|
|
$NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
|
|
|
|
$NXT_BUILD_DIR/$NXT_LIB_STATIC: \$(NXT_LIB_OBJS)
|
|
$NXT_STATIC_LINK $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
|
|
\$(NXT_LIB_OBJS)
|
|
|
|
END
|
|
|
|
|
|
# Object files.
|
|
|
|
for nxt_src in $NXT_LIB_SRCS $NXT_LIB_UNIT_TEST_SRCS
|
|
do
|
|
nxt_obj=`$echo $nxt_src | sed -e "s/\.c$/\.o/"`
|
|
cat << END >> $NXT_MAKEFILE
|
|
|
|
$NXT_BUILD_DIR/$nxt_obj: $nxt_src \$(NXT_LIB_DEPS)
|
|
\$(CC) -c \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\
|
|
-o $NXT_BUILD_DIR/$nxt_obj \\
|
|
$nxt_src
|
|
END
|
|
|
|
done
|
|
|
|
$echo >> $NXT_MAKEFILE
|
|
|
|
|
|
# Unit test object files list.
|
|
|
|
$echo "NXT_LIB_UNIT_TEST_OBJS = \\" >> $NXT_MAKEFILE
|
|
|
|
for nxt_src in $NXT_LIB_UNIT_TEST_SRCS
|
|
do
|
|
nxt_obj=`$echo $nxt_src | sed -e "s/\.c$/\.o/"`
|
|
$echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
|
|
done
|
|
|
|
|
|
# Unit test and utf8 test executables.
|
|
|
|
cat << END >> $NXT_MAKEFILE
|
|
|
|
$NXT_BUILD_DIR/lib_unit_test: \$(NXT_LIB_UNIT_TEST_OBJS) \\
|
|
$NXT_BUILD_DIR/$NXT_LIB_STATIC \$(NXT_LIB_DEPS)
|
|
\$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/lib_unit_test \\
|
|
\$(CFLAGS) \$(NXT_LIB_UNIT_TEST_OBJS) \\
|
|
$NXT_BUILD_DIR/$NXT_LIB_STATIC \\
|
|
$NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
|
|
|
|
$NXT_BUILD_DIR/utf8_file_name_test: $NXT_LIB_UTF8_FILE_NAME_TEST_SRCS \\
|
|
$NXT_BUILD_DIR/$NXT_LIB_STATIC \$(NXT_LIB_DEPS)
|
|
\$(CC) \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\
|
|
-o $NXT_BUILD_DIR/utf8_file_name_test \\
|
|
$NXT_LIB_UTF8_FILE_NAME_TEST_SRCS \\
|
|
$NXT_BUILD_DIR/$NXT_LIB_STATIC \\
|
|
$NXT_LD_OPT $NXT_LIBM $NXT_LIBS
|
|
|
|
END
|
|
|
|
|
|
if [ $NXT_LIB_UNIT_TEST = YES ]; then
|
|
NXT_UNIT_TEST_TARGETS="$NXT_UNIT_TEST_TARGETS lib_test"
|
|
fi
|
|
|
|
|
|
NXT_MAKE_INCS="src $NXT_BUILD_DIR"
|
|
NXT_MAKE_DEPS="\$(NXT_LIB_DEPS) $NXT_DEPS"
|
|
NXT_MAKE_SRCS="$NXT_SRCS"
|
|
|
|
|
|
# The include pathes list.
|
|
|
|
$echo -n "NXT_INCS =" >> $NXT_MAKEFILE
|
|
|
|
for nxt_inc in $NXT_MAKE_INCS
|
|
do
|
|
$echo -n " -I $nxt_inc" >> $NXT_MAKEFILE
|
|
done
|
|
|
|
$echo >> $NXT_MAKEFILE
|
|
$echo >> $NXT_MAKEFILE
|
|
|
|
|
|
# The include files dependences list.
|
|
|
|
$echo "NXT_DEPS = \\" >> $NXT_MAKEFILE
|
|
|
|
for nxt_dep in $NXT_MAKE_DEPS
|
|
do
|
|
$echo " $nxt_dep \\" >> $NXT_MAKEFILE
|
|
done
|
|
|
|
$echo >> $NXT_MAKEFILE
|
|
$echo >> $NXT_MAKEFILE
|
|
|
|
|
|
# Object files list.
|
|
|
|
$echo "NXT_OBJS = \\" >> $NXT_MAKEFILE
|
|
|
|
for nxt_src in $NXT_MAKE_SRCS
|
|
do
|
|
nxt_obj=`$echo $nxt_src | sed -e "s/\.c$/\.o/"`
|
|
$echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
|
|
done
|
|
|
|
$echo >> $NXT_MAKEFILE
|
|
|
|
|
|
# nginext executable.
|
|
|
|
cat << END >> $NXT_MAKEFILE
|
|
|
|
$NXT_BUILD_DIR/$NXT_BIN: $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
|
|
\$(NXT_OBJS)
|
|
\$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/$NXT_BIN \$(CFLAGS) \\
|
|
\$(NXT_OBJS) $NXT_BUILD_DIR/$NXT_LIB_STATIC \\
|
|
$NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS
|
|
|
|
END
|
|
|
|
|
|
# nginext object files.
|
|
|
|
for nxt_src in $NXT_MAKE_SRCS
|
|
do
|
|
nxt_obj=`$echo $nxt_src | sed -e "s/\.c$/\.o/"`
|
|
cat << END >> $NXT_MAKEFILE
|
|
|
|
$NXT_BUILD_DIR/$nxt_obj: $nxt_src \$(NXT_DEPS)
|
|
\$(CC) -c \$(CFLAGS) \$(NXT_INCS) \\
|
|
$NXT_LIB_AUX_CFLAGS \\
|
|
-o $NXT_BUILD_DIR/$nxt_obj \\
|
|
$nxt_src
|
|
END
|
|
|
|
done
|
|
|
|
|
|
# Makefile.
|
|
# *.dSYM is MacOSX Clang debug information.
|
|
|
|
cat << END > Makefile
|
|
|
|
include $NXT_MAKEFILE
|
|
|
|
.PHONY: lib_test
|
|
lib_test: $NXT_BUILD_DIR/lib_unit_test $NXT_BUILD_DIR/utf8_file_name_test
|
|
|
|
clean:
|
|
rm -rf $NXT_BUILD_DIR *.dSYM Makefile
|
|
|
|
END
|