diff options
author | Alejandro Colomar <alx@nginx.com> | 2023-03-22 16:55:02 +0100 |
---|---|---|
committer | Alejandro Colomar <alx@nginx.com> | 2023-03-29 00:41:08 +0200 |
commit | 6e16d7ac5bb86140a55ea30a35c69ee0df3eff8d (patch) | |
tree | c0b346f2bd14433df1c1b412b5d798a0f7f1a178 | |
parent | 5ba79b9b524ef746bc3269520c3f6b893f39275c (diff) | |
download | unit-6e16d7ac5bb86140a55ea30a35c69ee0df3eff8d.tar.gz unit-6e16d7ac5bb86140a55ea30a35c69ee0df3eff8d.tar.bz2 |
Auto: mirroring installation structure in build tree.
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
5a37171f733f ("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: 5a37171f733f ("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>
-rw-r--r-- | auto/echo/build | 8 | ||||
-rw-r--r-- | auto/make | 78 | ||||
-rw-r--r-- | auto/modules/go | 6 | ||||
-rw-r--r-- | auto/modules/java | 14 | ||||
-rw-r--r-- | auto/modules/nodejs | 6 | ||||
-rw-r--r-- | auto/modules/perl | 9 | ||||
-rw-r--r-- | auto/modules/php | 8 | ||||
-rw-r--r-- | auto/modules/python | 10 | ||||
-rw-r--r-- | auto/modules/ruby | 13 | ||||
-rw-r--r-- | auto/os/conf | 22 | ||||
-rw-r--r-- | auto/save | 2 | ||||
-rwxr-xr-x | configure | 18 | ||||
-rw-r--r-- | pkg/deb/Makefile | 8 | ||||
-rw-r--r-- | pkg/deb/debian/rules.in | 6 | ||||
-rw-r--r-- | pkg/docker/template.Dockerfile | 4 | ||||
-rw-r--r-- | src/nodejs/unit-http/binding.gyp | 2 | ||||
-rw-r--r-- | test/conftest.py | 21 |
17 files changed, 122 insertions, 113 deletions
diff --git a/auto/echo/build b/auto/echo/build index d66c6951..b2396cd0 100644 --- a/auto/echo/build +++ b/auto/echo/build @@ -5,15 +5,15 @@ $echo 'building an "echo" program' -rm -f $NXT_BUILD_DIR/echo +rm -f $NXT_BUILD_DIR/bin/echo -nxt_echo_test="$CC -o $NXT_BUILD_DIR/echo -O $NXT_CC_OPT +nxt_echo_test="$CC -o $NXT_BUILD_DIR/bin/echo -O $NXT_CC_OPT auto/echo/echo.c $NXT_LD_OPT" # "|| true" is to bypass "set -e" setting. nxt_echo_err=`$nxt_echo_test 2>&1 || true` -if [ ! -x $NXT_BUILD_DIR/echo ]; then +if [ ! -x $NXT_BUILD_DIR/bin/echo ]; then $echo $echo $0: error: cannot build an \"echo\" program: $echo @@ -24,4 +24,4 @@ if [ ! -x $NXT_BUILD_DIR/echo ]; then exit 1 fi -echo=$NXT_BUILD_DIR/echo +echo=$NXT_BUILD_DIR/bin/echo @@ -7,9 +7,6 @@ $echo "creating $NXT_MAKEFILE" -mkdir -p $NXT_BUILD_DIR/src \ - $NXT_BUILD_DIR/src/test - cat << END > $NXT_MAKEFILE @@ -25,8 +22,8 @@ NXT_MODULE_LINK = $NXT_MODULE_LINK all: $NXT_DAEMON manpage .PHONY: $NXT_DAEMON manpage -$NXT_DAEMON: $NXT_BUILD_DIR/$NXT_DAEMON -manpage: $NXT_BUILD_DIR/unitd.8 +$NXT_DAEMON: $NXT_BUILD_DIR/sbin/$NXT_DAEMON +manpage: $NXT_BUILD_DIR/share/man/man8/unitd.8 END @@ -35,7 +32,7 @@ END $echo -n "NXT_LIB_INCS =" >> $NXT_MAKEFILE -for nxt_inc in src $NXT_BUILD_DIR +for nxt_inc in src $NXT_BUILD_DIR/include do $echo -n " -I $nxt_inc" >> $NXT_MAKEFILE done @@ -88,20 +85,17 @@ END cat << END >> $NXT_MAKEFILE -libnxt: $NXT_BUILD_DIR/$NXT_LIB_SHARED $NXT_BUILD_DIR/$NXT_LIB_STATIC +libnxt: $NXT_BUILD_DIR/lib/$NXT_LIB_SHARED $NXT_BUILD_DIR/lib/$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_BUILD_DIR/lib/$NXT_LIB_SHARED: \$(NXT_LIB_OBJS) + \$(NXT_SHARED_LOCAL_LINK) -o \$@ \$(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) +$NXT_BUILD_DIR/lib/$NXT_LIB_STATIC: \$(NXT_LIB_OBJS) + $NXT_STATIC_LINK \$@ \$(NXT_LIB_OBJS) -$NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC: \$(NXT_LIB_UNIT_OBJS) - $NXT_STATIC_LINK $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\ - \$(NXT_LIB_UNIT_OBJS) +$NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC: \$(NXT_LIB_UNIT_OBJS) + $NXT_STATIC_LINK \$@ \$(NXT_LIB_UNIT_OBJS) END @@ -195,55 +189,55 @@ tests: $NXT_BUILD_DIR/tests $NXT_BUILD_DIR/utf8_file_name_test \\ $NXT_BUILD_DIR/unit_websocket_echo $NXT_BUILD_DIR/tests: \$(NXT_TEST_OBJS) \\ - $NXT_BUILD_DIR/$NXT_LIB_STATIC + $NXT_BUILD_DIR/lib/$NXT_LIB_STATIC \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/tests \\ \$(CFLAGS) \$(NXT_TEST_OBJS) \\ - $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ + $NXT_BUILD_DIR/lib/$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_BUILD_DIR/lib/$NXT_LIB_STATIC \$(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_BUILD_DIR/lib/$NXT_LIB_STATIC \\ $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS $NXT_BUILD_DIR/ncq_test: $NXT_BUILD_DIR/src/test/nxt_ncq_test.o \\ - $NXT_BUILD_DIR/$NXT_LIB_STATIC + $NXT_BUILD_DIR/lib/$NXT_LIB_STATIC \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/ncq_test \\ \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_ncq_test.o \\ - $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ + $NXT_BUILD_DIR/lib/$NXT_LIB_STATIC \\ $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS $NXT_BUILD_DIR/vbcq_test: $NXT_BUILD_DIR/src/test/nxt_vbcq_test.o \\ - $NXT_BUILD_DIR/$NXT_LIB_STATIC + $NXT_BUILD_DIR/lib/$NXT_LIB_STATIC \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/vbcq_test \\ \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_vbcq_test.o \\ - $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ + $NXT_BUILD_DIR/lib/$NXT_LIB_STATIC \\ $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS $NXT_BUILD_DIR/unit_app_test: $NXT_BUILD_DIR/src/test/nxt_unit_app_test.o \\ - $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC + $NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_app_test \\ \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_app_test.o \\ - $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\ + $NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC \\ $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS $NXT_BUILD_DIR/unit_websocket_chat: \\ $NXT_BUILD_DIR/src/test/nxt_unit_websocket_chat.o \\ - $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC + $NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_websocket_chat \\ \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_websocket_chat.o \\ - $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\ + $NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC \\ $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS $NXT_BUILD_DIR/unit_websocket_echo: \\ $NXT_BUILD_DIR/src/test/nxt_unit_websocket_echo.o \\ - $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC + $NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_websocket_echo \\ \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_websocket_echo.o \\ - $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\ + $NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC \\ $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS END @@ -264,7 +258,7 @@ END fi -NXT_MAKE_INCS="src $NXT_BUILD_DIR" +NXT_MAKE_INCS="src $NXT_BUILD_DIR/include" NXT_MAKE_SRCS="$NXT_SRCS" @@ -298,10 +292,10 @@ $echo >> $NXT_MAKEFILE cat << END >> $NXT_MAKEFILE -$NXT_BUILD_DIR/$NXT_DAEMON: $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ +$NXT_BUILD_DIR/sbin/$NXT_DAEMON: $NXT_BUILD_DIR/lib/$NXT_LIB_STATIC \\ \$(NXT_OBJS) - \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/$NXT_DAEMON \$(CFLAGS) \\ - \$(NXT_OBJS) $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ + \$(NXT_EXEC_LINK) -o \$@ \$(CFLAGS) \\ + \$(NXT_OBJS) $NXT_BUILD_DIR/lib/$NXT_LIB_STATIC \\ $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS END @@ -311,7 +305,8 @@ END cat << END >> $NXT_MAKEFILE -$NXT_BUILD_DIR/unitd.8: docs/man/unitd.8.in $NXT_BUILD_DIR/nxt_auto_config.h +$NXT_BUILD_DIR/share/man/man8/unitd.8: docs/man/unitd.8.in \\ + $NXT_BUILD_DIR/include/nxt_auto_config.h sed -e "s|%%ERROR_LOG_PATH%%|$NXT_LOG|" \\ -e "s|%%PID_PATH%%|$NXT_PID|" \\ -e "s|%%SOCKET_PATH%%|$NXT_CONTROL|" \\ @@ -365,7 +360,7 @@ install-check: ${NXT_DAEMON}-install: $NXT_DAEMON install-check test -d \$(DESTDIR)$NXT_SBINDIR \ || install -d \$(DESTDIR)$NXT_SBINDIR - install -p $NXT_BUILD_DIR/$NXT_DAEMON \$(DESTDIR)$NXT_SBINDIR/ + install -p $NXT_BUILD_DIR/sbin/$NXT_DAEMON \$(DESTDIR)$NXT_SBINDIR/ test -d \$(DESTDIR)$NXT_STATEDIR \ || install -d \$(DESTDIR)$NXT_STATEDIR test -d \$(DESTDIR)$NXT_LOGDIR \ @@ -376,7 +371,8 @@ ${NXT_DAEMON}-install: $NXT_DAEMON install-check manpage-install: manpage install-check test -d \$(DESTDIR)$NXT_MANDIR/man8 \ || install -d \$(DESTDIR)$NXT_MANDIR/man8 - install -p -m644 $NXT_BUILD_DIR/unitd.8 \$(DESTDIR)$NXT_MANDIR/man8/ + install -p -m644 $NXT_BUILD_DIR/share/man/man8/unitd.8 \ + \$(DESTDIR)$NXT_MANDIR/man8/ .PHONY: uninstall ${NXT_DAEMON}-uninstall manpage-uninstall @@ -396,10 +392,10 @@ cat << END >> $NXT_MAKEFILE .PHONY: libunit-install libunit-uninstall -libunit-install: $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC +libunit-install: $NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC test -d \$(DESTDIR)$NXT_LIBDIR \ || install -d \$(DESTDIR)$NXT_LIBDIR - install -p -m u=rw,go=r $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \ + install -p -m u=rw,go=r $NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC \ \$(DESTDIR)$NXT_LIBDIR/ test -d \$(DESTDIR)$NXT_INCLUDEDIR \ || install -d \$(DESTDIR)$NXT_INCLUDEDIR @@ -410,8 +406,8 @@ libunit-install: $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC src/nxt_unit_sptr.h \ src/nxt_unit_typedefs.h \ src/nxt_unit_websocket.h \ - $NXT_BUILD_DIR/nxt_auto_config.h \ - $NXT_BUILD_DIR/nxt_version.h \ + $NXT_BUILD_DIR/include/nxt_auto_config.h \ + $NXT_BUILD_DIR/include/nxt_version.h \ src/nxt_websocket_header.h \ \$(DESTDIR)$NXT_INCLUDEDIR/ diff --git a/auto/modules/go b/auto/modules/go index a8596bf3..86dfb62d 100644 --- a/auto/modules/go +++ b/auto/modules/go @@ -119,15 +119,15 @@ ${NXT_GO}-install-src: install -p -m644 ./go/* \$(DESTDIR)\$(NXT_GO_DST)/src/${NXT_GO_PKG}/ ${NXT_GO}-install-env: \$(DESTDIR)\$(NXT_GO_DST)/src/${NXT_GO_PKG}/env.go \ - ${NXT_VERSION_H} ${NXT_BUILD_DIR}/${NXT_LIB_UNIT_STATIC} + ${NXT_VERSION_H} ${NXT_BUILD_DIR}/lib/${NXT_LIB_UNIT_STATIC} \$(DESTDIR)\$(NXT_GO_DST)/src/${NXT_GO_PKG}/env.go: install -d \$(DESTDIR)\$(NXT_GO_DST)/src/${NXT_GO_PKG} $echo "package unit" > \$@ $echo "/*" >> \$@ $echo "#cgo CFLAGS: ${CFLAGS} ${NXT_CC_OPT}" >> \$@ - $echo "#cgo CPPFLAGS: -I${PWD}/src -I${PWD}/${NXT_BUILD_DIR}" >> \$@ - $echo "#cgo LDFLAGS: -L${PWD}/${NXT_BUILD_DIR} ${NXT_GO_LDFLAGS} ${NXT_LD_OPT}" >> \$@ + $echo "#cgo CPPFLAGS: -I${PWD}/src -I${PWD}/${NXT_BUILD_DIR}/include" >> \$@ + $echo "#cgo LDFLAGS: -L${PWD}/${NXT_BUILD_DIR}/lib ${NXT_GO_LDFLAGS} ${NXT_LD_OPT}" >> \$@ $echo "*/" >> \$@ $echo 'import "C"' >> \$@ diff --git a/auto/modules/java b/auto/modules/java index a6ce5e81..d87f93c5 100644 --- a/auto/modules/java +++ b/auto/modules/java @@ -320,7 +320,7 @@ fi NXT_JAVA_MOUNTS_HEADER=nxt_${NXT_JAVA_MODULE}_mounts.h -cat << END > $NXT_BUILD_DIR/$NXT_JAVA_MOUNTS_HEADER +cat << END > $NXT_BUILD_DIR/include/$NXT_JAVA_MOUNTS_HEADER #ifndef _NXT_JAVA_MOUNTS_H_INCLUDED_ #define _NXT_JAVA_MOUNTS_H_INCLUDED_ @@ -520,23 +520,23 @@ cat << END >> $NXT_MAKEFILE all: ${NXT_JAVA_MODULE} -${NXT_JAVA_MODULE}: $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \ +${NXT_JAVA_MODULE}: $NXT_BUILD_DIR/lib/unit/modules/${NXT_JAVA_MODULE}.unit.so \ $NXT_BUILD_DIR/$NXT_UNIT_JAR \ $NXT_BUILD_DIR/$NXT_WS_API_JAR -$NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so: $nxt_objs - \$(NXT_MODULE_LINK) -o $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \\ - $nxt_objs $NXT_JAVA_LDFLAGS $NXT_LD_OPT +$NXT_BUILD_DIR/lib/unit/modules/${NXT_JAVA_MODULE}.unit.so: $nxt_objs + \$(NXT_MODULE_LINK) -o \$@ $nxt_objs $NXT_JAVA_LDFLAGS $NXT_LD_OPT install: ${NXT_JAVA_MODULE}-install -${NXT_JAVA_MODULE}-install: $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \\ +${NXT_JAVA_MODULE}-install: \\ + $NXT_BUILD_DIR/lib/unit/modules/${NXT_JAVA_MODULE}.unit.so \\ $NXT_BUILD_DIR/$NXT_UNIT_JAR \\ $NXT_BUILD_DIR/$NXT_WS_API_JAR \\ java-shared-install install -d \$(DESTDIR)$NXT_MODULESDIR - install -p $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \\ + install -p $NXT_BUILD_DIR/lib/unit/modules/${NXT_JAVA_MODULE}.unit.so \\ \$(DESTDIR)$NXT_MODULESDIR/ install -d \$(DESTDIR)$NXT_JARS install -p -m 0644 $NXT_BUILD_DIR/$NXT_UNIT_JAR \$(DESTDIR)$NXT_JARS/ diff --git a/auto/modules/nodejs b/auto/modules/nodejs index 7d4f8581..968f3fdf 100644 --- a/auto/modules/nodejs +++ b/auto/modules/nodejs @@ -129,7 +129,7 @@ NXT_NODE_VERSION_FILE=${NXT_BUILD_DIR}/src/${NXT_NODE}/version.h NXT_NODE_PACKAGE_FILE=${NXT_BUILD_DIR}/src/${NXT_NODE}/package.json NXT_NODE_EXPORTS="export UNIT_SRC_PATH=${PWD}/src \ && export UNIT_BUILD_PATH=${PWD}/${NXT_BUILD_DIR} \ - && export UNIT_LIB_STATIC_PATH=${PWD}/${NXT_BUILD_DIR}/libunit.a" + && export UNIT_LIB_STATIC_PATH=${PWD}/${NXT_BUILD_DIR}/lib/libunit.a" if [ -n "$NXT_NODE_LOCAL" ]; then NXT_NODE_INSTALL=local-install @@ -149,7 +149,7 @@ cat << END >> $NXT_MAKEFILE .PHONY: ${NXT_NODE}-build .PHONY: ${NXT_NODE}-publish -${NXT_NODE}: ${NXT_NODE}-copy $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC +${NXT_NODE}: ${NXT_NODE}-copy $NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC ${NXT_NODE_EXPORTS} && \\ cd ${NXT_NODE_TMP} && ${NXT_NODE_GYP} configure build clean @@ -201,7 +201,7 @@ ${NXT_NODE}-local-check: exit 1) ${NXT_NODE}-local-install: ${NXT_NODE_TARBALL} ${NXT_NODE}-local-check \ - $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC + $NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC ${NXT_NODE_EXPORTS} && \\ mkdir -p \$(DESTDIR)${NXT_NODE_LOCAL} && \\ cd \$(DESTDIR)${NXT_NODE_LOCAL} && \\ diff --git a/auto/modules/perl b/auto/modules/perl index 94f06879..3c88ef0e 100644 --- a/auto/modules/perl +++ b/auto/modules/perl @@ -185,18 +185,17 @@ cat << END >> $NXT_MAKEFILE all: ${NXT_PERL_MODULE} -${NXT_PERL_MODULE}: $NXT_BUILD_DIR/${NXT_PERL_MODULE}.unit.so +${NXT_PERL_MODULE}: $NXT_BUILD_DIR/lib/unit/modules/${NXT_PERL_MODULE}.unit.so -$NXT_BUILD_DIR/${NXT_PERL_MODULE}.unit.so: $nxt_objs - \$(NXT_MODULE_LINK) -o $NXT_BUILD_DIR/${NXT_PERL_MODULE}.unit.so \\ - $nxt_objs $NXT_PERL_LDOPTS $NXT_LD_OPT +$NXT_BUILD_DIR/lib/unit/modules/${NXT_PERL_MODULE}.unit.so: $nxt_objs + \$(NXT_MODULE_LINK) -o \$@ $nxt_objs $NXT_PERL_LDOPTS $NXT_LD_OPT install: ${NXT_PERL_MODULE}-install ${NXT_PERL_MODULE}-install: ${NXT_PERL_MODULE} install-check install -d \$(DESTDIR)$NXT_MODULESDIR - install -p $NXT_BUILD_DIR/${NXT_PERL_MODULE}.unit.so \\ + install -p $NXT_BUILD_DIR/lib/unit/modules/${NXT_PERL_MODULE}.unit.so \\ \$(DESTDIR)$NXT_MODULESDIR/ diff --git a/auto/modules/php b/auto/modules/php index 21dec215..a0f5379c 100644 --- a/auto/modules/php +++ b/auto/modules/php @@ -265,10 +265,10 @@ cat << END >> $NXT_MAKEFILE all: ${NXT_PHP_MODULE} -${NXT_PHP_MODULE}: $NXT_BUILD_DIR/${NXT_PHP_MODULE}.unit.so +${NXT_PHP_MODULE}: $NXT_BUILD_DIR/lib/unit/modules/${NXT_PHP_MODULE}.unit.so -$NXT_BUILD_DIR/${NXT_PHP_MODULE}.unit.so: $nxt_objs - \$(NXT_MODULE_LINK) -o $NXT_BUILD_DIR/${NXT_PHP_MODULE}.unit.so \\ +$NXT_BUILD_DIR/lib/unit/modules/${NXT_PHP_MODULE}.unit.so: $nxt_objs + \$(NXT_MODULE_LINK) -o \$@ \\ $nxt_objs ${NXT_PHP_LIB} ${NXT_PHP_LDFLAGS} $NXT_LD_OPT @@ -276,7 +276,7 @@ install: ${NXT_PHP_MODULE}-install ${NXT_PHP_MODULE}-install: ${NXT_PHP_MODULE} install-check install -d \$(DESTDIR)$NXT_MODULESDIR - install -p $NXT_BUILD_DIR/${NXT_PHP_MODULE}.unit.so \\ + install -p $NXT_BUILD_DIR/lib/unit/modules/${NXT_PHP_MODULE}.unit.so \\ \$(DESTDIR)$NXT_MODULESDIR/ diff --git a/auto/modules/python b/auto/modules/python index d7504fc8..dfd632a1 100644 --- a/auto/modules/python +++ b/auto/modules/python @@ -157,7 +157,7 @@ for p in sys.path: print("};\n\n") -' > $NXT_BUILD_DIR/$NXT_PYTHON_MOUNTS_HEADER +' > $NXT_BUILD_DIR/include/$NXT_PYTHON_MOUNTS_HEADER $echo " + Python module: ${NXT_PYTHON_MODULE}.unit.so" @@ -213,10 +213,10 @@ cat << END >> $NXT_MAKEFILE all: ${NXT_PYTHON_MODULE} -${NXT_PYTHON_MODULE}: $NXT_BUILD_DIR/${NXT_PYTHON_MODULE}.unit.so +${NXT_PYTHON_MODULE}: $NXT_BUILD_DIR/lib/unit/modules/${NXT_PYTHON_MODULE}.unit.so -$NXT_BUILD_DIR/${NXT_PYTHON_MODULE}.unit.so: $nxt_objs - \$(NXT_MODULE_LINK) -o $NXT_BUILD_DIR/${NXT_PYTHON_MODULE}.unit.so \\ +$NXT_BUILD_DIR/lib/unit/modules/${NXT_PYTHON_MODULE}.unit.so: $nxt_objs + \$(NXT_MODULE_LINK) -o \$@ \\ $nxt_objs $NXT_PYTHON_LIBS $NXT_PYTHON_LDFLAGS $NXT_LD_OPT @@ -224,7 +224,7 @@ install: ${NXT_PYTHON_MODULE}-install ${NXT_PYTHON_MODULE}-install: ${NXT_PYTHON_MODULE} install-check install -d \$(DESTDIR)$NXT_MODULESDIR - install -p $NXT_BUILD_DIR/${NXT_PYTHON_MODULE}.unit.so \\ + install -p $NXT_BUILD_DIR/lib/unit/modules/${NXT_PYTHON_MODULE}.unit.so \\ \$(DESTDIR)$NXT_MODULESDIR/ diff --git a/auto/modules/ruby b/auto/modules/ruby index 99f6b286..7a7c9bd3 100644 --- a/auto/modules/ruby +++ b/auto/modules/ruby @@ -176,7 +176,7 @@ fi NXT_RUBY_MOUNTS_HEADER=nxt_${NXT_RUBY_MODULE}_mounts.h -NXT_RUBY_MOUNTS_PATH=$NXT_BUILD_DIR/$NXT_RUBY_MOUNTS_HEADER +NXT_RUBY_MOUNTS_PATH=$NXT_BUILD_DIR/include/$NXT_RUBY_MOUNTS_HEADER cat << END > $NXT_RUBY_MOUNTS_PATH @@ -234,7 +234,7 @@ $NXT_BUILD_DIR/$nxt_obj: $nxt_src $NXT_VERSION_H \$(CC) -c \$(CFLAGS) $NXT_RUBY_CFLAGS -DNXT_RUBY_MOUNTS_H=\"$NXT_RUBY_MOUNTS_HEADER\" \\ \$(NXT_INCS) $NXT_RUBY_INCPATH \\ $nxt_dep_flags \\ - -o $NXT_BUILD_DIR/$nxt_obj $nxt_src + -o \$@ $nxt_src $nxt_dep_post -include $NXT_BUILD_DIR/$nxt_dep @@ -251,18 +251,17 @@ cat << END >> $NXT_MAKEFILE all: ${NXT_RUBY_MODULE} -${NXT_RUBY_MODULE}: $NXT_BUILD_DIR/${NXT_RUBY_MODULE}.unit.so +${NXT_RUBY_MODULE}: $NXT_BUILD_DIR/lib/unit/modules/${NXT_RUBY_MODULE}.unit.so -$NXT_BUILD_DIR/${NXT_RUBY_MODULE}.unit.so: $nxt_objs - \$(NXT_MODULE_LINK) -o $NXT_BUILD_DIR/${NXT_RUBY_MODULE}.unit.so \\ - $nxt_objs $NXT_RUBY_LIBS $NXT_LD_OPT +$NXT_BUILD_DIR/lib/unit/modules/${NXT_RUBY_MODULE}.unit.so: $nxt_objs + \$(NXT_MODULE_LINK) -o \$@ $nxt_objs $NXT_RUBY_LIBS $NXT_LD_OPT install: ${NXT_RUBY_MODULE}-install ${NXT_RUBY_MODULE}-install: ${NXT_RUBY_MODULE} install-check install -d \$(DESTDIR)$NXT_MODULESDIR - install -p $NXT_BUILD_DIR/${NXT_RUBY_MODULE}.unit.so \\ + install -p $NXT_BUILD_DIR/lib/unit/modules/${NXT_RUBY_MODULE}.unit.so \\ \$(DESTDIR)$NXT_MODULESDIR/ diff --git a/auto/os/conf b/auto/os/conf index 02c4afaf..bc1f5ef7 100644 --- a/auto/os/conf +++ b/auto/os/conf @@ -33,7 +33,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.so" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.so" NXT_LIB_UNIT_STATIC="libunit.a" @@ -57,7 +57,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.so" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.so" NXT_LIB_UNIT_STATIC="libunit.a" @@ -88,7 +88,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.so" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.so" NXT_LIB_UNIT_STATIC="libunit.a" @@ -117,7 +117,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.dylib" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.dylib" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.dylib" NXT_LIB_UNIT_STATIC="libunit.a" @@ -141,7 +141,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.so" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.so" NXT_LIB_UNIT_STATIC="libunit.a" @@ -163,7 +163,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.so" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.so" NXT_LIB_UNIT_STATIC="libunit.a" @@ -185,7 +185,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.so" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.so" NXT_LIB_UNIT_STATIC="libunit.a" @@ -206,7 +206,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.so" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.so" NXT_LIB_UNIT_STATIC="libunit.a" @@ -227,7 +227,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.so" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.so" NXT_LIB_UNIT_STATIC="libunit.a" @@ -248,7 +248,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.so" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.so" NXT_LIB_UNIT_STATIC="libunit.a" @@ -268,7 +268,7 @@ case "$NXT_SYSTEM" in NXT_LIB_STATIC="libnxt.a" NXT_LIB_SHARED="libnxt.so" - NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/libnxt.so" + NXT_LIB_SHARED_LOCAL="$NXT_BUILD_DIR/lib/libnxt.so" NXT_LIB_UNIT_STATIC="libunit.a" @@ -21,7 +21,7 @@ NXT_TEST_LIBS='$NXT_TEST_LIBS' NXT_LIBRT='$NXT_LIBRT' -echo=$NXT_BUILD_DIR/echo +echo=$NXT_BUILD_DIR/bin/echo NXT_LIB_AUX_CFLAGS= NXT_LIB_AUX_LIBS= @@ -24,8 +24,8 @@ NXT_BUILD_DIR=${NXT_BUILD_DIR:-build} NXT_AUTOTEST=$NXT_BUILD_DIR/autotest NXT_AUTOCONF_ERR=$NXT_BUILD_DIR/autoconf.err NXT_AUTOCONF_DATA=$NXT_BUILD_DIR/autoconf.data -NXT_AUTO_CONFIG_H=$NXT_BUILD_DIR/nxt_auto_config.h -NXT_VERSION_H=$NXT_BUILD_DIR/nxt_version.h +NXT_AUTO_CONFIG_H=$NXT_BUILD_DIR/include/nxt_auto_config.h +NXT_VERSION_H=$NXT_BUILD_DIR/include/nxt_version.h NXT_MAKEFILE=$NXT_BUILD_DIR/Makefile CC=${CC:-cc} @@ -55,7 +55,19 @@ esac . auto/os/test . auto/options -test -d $NXT_BUILD_DIR || mkdir $NXT_BUILD_DIR +mkdir -p $NXT_BUILD_DIR +mkdir -p $NXT_BUILD_DIR/bin +mkdir -p $NXT_BUILD_DIR/include +mkdir -p $NXT_BUILD_DIR/lib +mkdir -p $NXT_BUILD_DIR/lib/unit/modules +mkdir -p $NXT_BUILD_DIR/sbin +mkdir -p $NXT_BUILD_DIR/share/man/man8 +mkdir -p $NXT_BUILD_DIR/src +mkdir -p $NXT_BUILD_DIR/src/test +mkdir -p $NXT_BUILD_DIR/var/lib/unit +mkdir -p $NXT_BUILD_DIR/var/log/unit +mkdir -p $NXT_BUILD_DIR/var/run/unit + > $NXT_AUTOCONF_ERR > $NXT_AUTO_CONFIG_H diff --git a/pkg/deb/Makefile b/pkg/deb/Makefile index 788bbe5a..fc631c6d 100644 --- a/pkg/deb/Makefile +++ b/pkg/deb/Makefile @@ -288,8 +288,8 @@ test: unit modules for so in `find debuild-*/unit-$(VERSION)/debian/build-unit/ -type f \( -name "*.so" -o -name "*.jar" \)`; do \ soname=`basename $${so}` ; \ test "$${soname}" = "java.unit.so" && continue ; \ - test -h debuild/unit-$(VERSION)/debian/build-unit/build/$${soname} || \ - ln -fs `pwd`/$${so} debuild/unit-$(VERSION)/debian/build-unit/build/$${soname} ; \ + test -h debuild/unit-$(VERSION)/debian/build-unit/build/lib/$${soname} || \ + ln -fs `pwd`/$${so} debuild/unit-$(VERSION)/debian/build-unit/build/lib/$${soname} ; \ done ; \ ( cd debuild/unit-$(VERSION)/debian/build-unit && env python3 -m pytest --user=nobody $(PYTEST_ARGS) ) ; \ } @@ -299,8 +299,8 @@ test-debug: unit modules for so in `find debuild-*/unit-$(VERSION)/debian/build-unit-debug/ -type f \( -name "*.so" -o -name "*.jar" \)`; do \ soname=`basename $${so}` ; \ test "$${soname}" = "java.unit.so" && continue ; \ - test -h debuild/unit-$(VERSION)/debian/build-unit-debug/build/$${soname} || \ - ln -fs `pwd`/$${so} debuild/unit-$(VERSION)/debian/build-unit-debug/build/$${soname} ; \ + test -h debuild/unit-$(VERSION)/debian/build-unit-debug/build/lib/$${soname} || \ + ln -fs `pwd`/$${so} debuild/unit-$(VERSION)/debian/build-unit-debug/build/lib/$${soname} ; \ done ; \ ( cd debuild/unit-$(VERSION)/debian/build-unit-debug && env python3 -m pytest --user=nobody $(PYTEST_ARGS) ) ; \ } diff --git a/pkg/deb/debian/rules.in b/pkg/deb/debian/rules.in index 0fe34b72..01604e86 100644 --- a/pkg/deb/debian/rules.in +++ b/pkg/deb/debian/rules.in @@ -69,7 +69,7 @@ configure.unit_debug: config.env.unit_debug build-arch.%: configure.% dh_testdir $(MAKE) -C $(BUILDDIR_$*) - $(MAKE) -C $(BUILDDIR_$*) build/libunit.a + $(MAKE) -C $(BUILDDIR_$*) build/lib/libunit.a ifeq ($(DOTESTS), 1) $(MAKE) -C $(BUILDDIR_$*) tests endif @@ -112,8 +112,8 @@ install: build do.tests dh_installlogrotate cd $(BUILDDIR_unit) && DESTDIR=$(INSTALLDIR) make install cd $(BUILDDIR_unit) && DESTDIR=$(INSTALLDIR_dev) make libunit-install - install -m 755 $(BUILDDIR_unit_debug)/build/unitd $(INSTALLDIR)/usr/sbin/unitd-debug - install -m 644 $(BUILDDIR_unit_debug)/build/libunit.a $(INSTALLDIR_dev)/usr/lib/$(DEB_HOST_MULTIARCH)/libunit-debug.a + install -m 755 $(BUILDDIR_unit_debug)/build/sbin/unitd $(INSTALLDIR)/usr/sbin/unitd-debug + install -m 644 $(BUILDDIR_unit_debug)/build/lib/libunit.a $(INSTALLDIR_dev)/usr/lib/$(DEB_HOST_MULTIARCH)/libunit-debug.a mkdir -p $(INSTALLDIR)/usr/share/doc/unit/examples install -m 644 debian/unit.example.config $(INSTALLDIR)/usr/share/doc/unit/examples/example.config install -m 644 CHANGES $(INSTALLDIR)/usr/share/doc/unit/changelog diff --git a/pkg/docker/template.Dockerfile b/pkg/docker/template.Dockerfile index ea3224cc..b655ca73 100644 --- a/pkg/docker/template.Dockerfile +++ b/pkg/docker/template.Dockerfile @@ -26,11 +26,11 @@ RUN set -ex \ --libdir=/usr/lib/$DEB_HOST_MULTIARCH" \ && ./configure $CONFIGURE_ARGS --cc-opt="$CC_OPT" --ld-opt="$LD_OPT" --modulesdir=/usr/lib/unit/debug-modules --debug \ && make -j $NCPU unitd \ - && install -pm755 build/unitd /usr/sbin/unitd-debug \ + && install -pm755 build/sbin/unitd /usr/sbin/unitd-debug \ && make clean \ && ./configure $CONFIGURE_ARGS --cc-opt="$CC_OPT" --ld-opt="$LD_OPT" --modulesdir=/usr/lib/unit/modules \ && make -j $NCPU unitd \ - && install -pm755 build/unitd /usr/sbin/unitd \ + && install -pm755 build/sbin/unitd /usr/sbin/unitd \ && make clean \ && ./configure $CONFIGURE_ARGS --cc-opt="$CC_OPT" --modulesdir=/usr/lib/unit/debug-modules --debug \ && ./configure @@CONFIGURE@@ \ diff --git a/src/nodejs/unit-http/binding.gyp b/src/nodejs/unit-http/binding.gyp index 55d965bd..e41db7c4 100644 --- a/src/nodejs/unit-http/binding.gyp +++ b/src/nodejs/unit-http/binding.gyp @@ -12,7 +12,7 @@ ], 'sources': ["unit.cpp", "addon.cpp"], 'include_dirs': [ - "<!(echo $UNIT_SRC_PATH)", "<!(echo $UNIT_BUILD_PATH)" + "<!(echo $UNIT_SRC_PATH)", "<!(echo $UNIT_BUILD_PATH/include)" ], 'libraries': [ "<!(echo $UNIT_LIB_STATIC_PATH)" diff --git a/test/conftest.py b/test/conftest.py index 06d63389..6d8e59fd 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -350,8 +350,11 @@ def unit_run(state_dir=None): if not option.restart and 'unitd' in unit_instance: return unit_instance - build_dir = f'{option.current_dir}/build' - unitd = f'{build_dir}/unitd' + builddir = f'{option.current_dir}/build' + libdir = f'{builddir}/lib' + modulesdir = f'{libdir}/unit/modules' + sbindir = f'{builddir}/sbin' + unitd = f'{sbindir}/unitd' if not os.path.isfile(unitd): exit('Could not find unit') @@ -359,12 +362,12 @@ def unit_run(state_dir=None): temp_dir = tempfile.mkdtemp(prefix='unit-test-') public_dir(temp_dir) - if oct(stat.S_IMODE(os.stat(build_dir).st_mode)) != '0o777': - public_dir(build_dir) + if oct(stat.S_IMODE(os.stat(builddir).st_mode)) != '0o777': + public_dir(builddir) - state = f'{temp_dir}/state' if state_dir is None else state_dir - if not os.path.isdir(state): - os.mkdir(state) + statedir = f'{temp_dir}/state' if state_dir is None else state_dir + if not os.path.isdir(statedir): + os.mkdir(statedir) control_sock = f'{temp_dir}/control.unit.sock' @@ -372,9 +375,9 @@ def unit_run(state_dir=None): unitd, '--no-daemon', '--modulesdir', - build_dir, + modulesdir, '--statedir', - state, + statedir, '--pid', f'{temp_dir}/unit.pid', '--log', |