This makes the build tree more organized, which is good for adding new
stuff. Now, it's useful for example for adding manual pages in man3/,
but it may be useful in the future for example for extending the build
system to run linters (e.g., clang-tidy(1), Clang analyzer, ...) on the
C source code.
Previously, the build tree was quite flat, and looked like this (after
`./configure && make`):
$ tree -I src build
build
├── Makefile
├── autoconf.data
├── autoconf.err
├── echo
├── libnxt.a
├── nxt_auto_config.h
├── nxt_version.h
├── unitd
└── unitd.8
1 directory, 9 files
And after this patch, it looks like this:
$ tree -I src build
build
├── Makefile
├── autoconf.data
├── autoconf.err
├── bin
│ └── echo
├── include
│ ├── nxt_auto_config.h
│ └── nxt_version.h
├── lib
│ ├── libnxt.a
│ └── unit
│ └── modules
├── sbin
│ └── unitd
├── share
│ └── man
│ └── man8
│ └── unitd.8
└── var
├── lib
│ └── unit
├── log
│ └── unit
└── run
└── unit
17 directories, 9 files
It also solves one issue introduced in
5a37171f73 ("Added default values for pathnames."). Before that
commit, it was possible to run unitd from the build system
(`./build/unitd`). Now, since it expects files in a very specific
location, that has been broken. By having a directory structure that
mirrors the installation, it's possible to trick it to believe it's
installed, and run it from there:
$ ./configure --prefix=./build
$ make
$ ./build/sbin/unitd
Fixes: 5a37171f73 ("Added default values for pathnames.")
Reported-by: Liam Crilly <liam@nginx.com>
Reviewed-by: Konstantin Pavlov <thresh@nginx.com>
Reviewed-by: Andrew Clayton <a.clayton@nginx.com>
Cc: Andrei Zeliankou <zelenkov@nginx.com>
Cc: Zhidao Hong <z.hong@f5.com>
Signed-off-by: Alejandro Colomar <alx@nginx.com>
35 lines
550 B
Plaintext
35 lines
550 B
Plaintext
|
|
# Copyright (C) Igor Sysoev
|
|
# Copyright (C) NGINX, Inc.
|
|
|
|
|
|
cat << END > $NXT_AUTOCONF_DATA
|
|
|
|
NXT_SYSTEM='$NXT_SYSTEM'
|
|
|
|
CC='$CC'
|
|
CFLAGS='$CFLAGS'
|
|
|
|
NXT_CC_NAME='$NXT_CC_NAME'
|
|
NXT_CFLAGS='$NXT_CFLAGS'
|
|
NXT_CC_OPT='$NXT_CC_OPT'
|
|
NXT_LD_OPT='$NXT_LD_OPT'
|
|
NXT_MODULE_LINK='$NXT_MODULE_LINK'
|
|
|
|
NXT_TEST_CFLAGS='$NXT_TEST_CFLAGS'
|
|
NXT_TEST_LIBS='$NXT_TEST_LIBS'
|
|
|
|
NXT_LIBRT='$NXT_LIBRT'
|
|
|
|
echo=$NXT_BUILD_DIR/bin/echo
|
|
|
|
NXT_LIB_AUX_CFLAGS=
|
|
NXT_LIB_AUX_LIBS=
|
|
|
|
NXT_LIB_UNIT_STATIC='$NXT_LIB_UNIT_STATIC'
|
|
|
|
NXT_MODULESDIR='$NXT_MODULESDIR'
|
|
NXT_TMPDIR='$NXT_TMPDIR'
|
|
|
|
END
|