[PATCH] Dynamic modules: add as a dependency to "make install" target

Maxim Dounin mdounin at mdounin.ru
Sat Feb 13 04:25:34 UTC 2016


Hello!

On Fri, Feb 12, 2016 at 02:55:22PM -0800, Piotr Sikora wrote:

> # HG changeset patch
> # User Piotr Sikora <piotrsikora at google.com>
> # Date 1455317648 28800
> #      Fri Feb 12 14:54:08 2016 -0800
> # Node ID 4dfe52452f0d343b08b85089aa5ac98120d67ecc
> # Parent  dcfe355dfda4693ac1f3aa8fb9705812c2485bac
> Dynamic modules: add as a dependency to "make install" target.
> 
> Reported by badfiles on GitHub.
> 
> Signed-off-by: Piotr Sikora <piotrsikora at google.com>
> 
> diff -r dcfe355dfda4 -r 4dfe52452f0d auto/install
> --- a/auto/install
> +++ b/auto/install
> @@ -105,6 +105,7 @@ manpage:	$NGX_OBJS/nginx.8
>  		< $NGX_MAN > \$@
>  
>  install:	$NGX_OBJS${ngx_dirsep}nginx${ngx_binext} \
> +		modules \
>  		$NGX_INSTALL_PERL_MODULES
>  	test -d '\$(DESTDIR)$NGX_PREFIX' || mkdir -p '\$(DESTDIR)$NGX_PREFIX'

We've discussed "make install" problem with Ruslan a couple of 
days ago, and tend to think that something like this would be a 
better option:

# HG changeset patch
# User Maxim Dounin <mdounin at mdounin.ru>
# Date 1455337144 -10800
#      Sat Feb 13 07:19:04 2016 +0300
# Node ID d1fc94a6bbecfb2fd59c550c5eebbce0fd4a6500
# Parent  317abf4680eb22d80f5127c55a966366e8ab522b
Configure: added "build" targed.

The "build" targed introduced to do all build-related tasks, and
it is now used in Makefile and in objs/Makefile as a dependency for
the "install" targed.

In particular, this resolves problems as observed with dynamic modules
by people trying to do "make install" without calling "make" first.

diff --git a/auto/install b/auto/install
--- a/auto/install
+++ b/auto/install
@@ -104,8 +104,7 @@ manpage:	$NGX_OBJS/nginx.8
 		-e "s|%%ERROR_LOG_PATH%%|${NGX_ERROR_LOG_PATH:-stderr}|" \\
 		< $NGX_MAN > \$@
 
-install:	$NGX_OBJS${ngx_dirsep}nginx${ngx_binext} \
-		$NGX_INSTALL_PERL_MODULES
+install:	build $NGX_INSTALL_PERL_MODULES
 	test -d '\$(DESTDIR)$NGX_PREFIX' || mkdir -p '\$(DESTDIR)$NGX_PREFIX'
 
 	test -d '\$(DESTDIR)`dirname "$NGX_SBIN_PATH"`' \
@@ -187,8 +186,6 @@ cat << END >> Makefile
 
 build:
 	\$(MAKE) -f $NGX_MAKEFILE
-	\$(MAKE) -f $NGX_MAKEFILE modules
-	\$(MAKE) -f $NGX_MAKEFILE manpage
 
 install:
 	\$(MAKE) -f $NGX_MAKEFILE install
diff --git a/auto/make b/auto/make
--- a/auto/make
+++ b/auto/make
@@ -223,6 +223,8 @@ ngx_main_link=${MAIN_LINK:+`echo $MAIN_L
 
 cat << END                                                    >> $NGX_MAKEFILE
 
+build:	$NGX_OBJS${ngx_dirsep}nginx${ngx_binext} modules manpage
+
 $NGX_OBJS${ngx_dirsep}nginx${ngx_binext}:	$ngx_deps$ngx_spacer
 	\$(LINK) ${ngx_long_start}${ngx_binout}$NGX_OBJS${ngx_dirsep}nginx$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_main_link
 	$ngx_rcc


-- 
Maxim Dounin
http://nginx.org/



More information about the nginx-devel mailing list