summaryrefslogblamecommitdiffhomepage
path: root/auto/make
blob: f21a2dfc51e02f8c92f97bf6cf7b009a02feba23 (plain) (tree)
1
2
3
4
5
6
7
8
9




                                    
              


                              


                          






                                      
                           
                           
 

                                                                        


                                                          
                                        
 
                        
 
                           

                                              
 


   
















                                                                 










                                                              







                                 




   



                                          
                                         







                                            





                                          
                           




                                                            


                                                                 
                                                                
                                                               








                                                            
 






                           



                                                                           
 


   



                            
                                                                             
 
                                                    

                                                                 

                                                     
                                                    

                                                  
 


                                                                  

                                                       
 




               
                                                                               


                                                   
  



                                     

                               
                                                

                                                                         
                                     
                         
                



                                



    







                                                

                                                                                          
















                                                

                                                                                          








                                     


                      
                             
 
                             
 
                                               
 




                                                            
 
                       
 



                                                                          

                                                   

                                                                                          
 
                                          
                                                          

                                                         
                                               
                                                     


                                                                        
                                                          

                                                                      

                                                        
                                                     
                                                                 
 
                                                                  
                                                          

                                                            
                                                                    
                                                     


                                                                    
                                                          

                                                             
                                                                     
                                                     

                                                                 
                                                                            
                                                       

                                                                 
                                                                         
                                                          

                                                                 

                                                                    
                                                       

                                                                       
                                                                               
                                                          



                                                                    
                                                       

                                                                       
                                                                               
                                                          

                                                                 

   














                                                                               
 
                                          


                         
                         











                                            

                    

                                      
                             
  
                           


                                                            


                      
                  
 

                           
                                                                             
                                            

                                                   
                                                                  




                                                     



                           
                                                                  
                                                                        

                                                       

                                                       
                                                



   
                    


                             



                                     

                               
                                                       

                                                 

                                             
                                 
                        



                                




    



                           
                                                                   
 
                                              
 









                                                                  

                                                     
                                                                           

                                                      

                                                    
 
                                      

                                                         

                                                                
 
                                                           
 
                                                    




                                                             



                                                                 

   



                                         
                                                        

                                                    
                                                                         
                                       



                                                                        

                                                        






                                                

                                                          
                                            
                                           



                                                            

                                                                  










                                                                 


   




                                                      

                                                








                                                                                                         

                                                          








                                                                                                         




                                           

                     
             
      
                                                     
 







                                                                     

                                                                     

                                            
   

# Copyright (C) Igor Sysoev
# Copyright (C) Valentin V. Bartenev
# Copyright (C) NGINX, Inc.

. auto/cc/deps

$echo "creating $NXT_MAKEFILE"


cat << END > $NXT_MAKEFILE

# Pretty print compiler etc actions...
PP_CC		:= @echo '  CC    '
PP_AR		:= @echo '  AR    '
PP_LD		:= @echo '  LD    '
PP_VER		:= @echo '  VER   '
PP_SED		:= @echo '  SED   '

CC =			$CC
AR =			$AR

EXTRA_CFLAGS =
CFLAGS = 		$NXT_CFLAGS $NXT_CC_OPT $CFLAGS \$(EXTRA_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

all: $NXT_DAEMON manpage

.PHONY: $NXT_DAEMON manpage
$NXT_DAEMON: $NXT_BUILD_DIR/sbin/$NXT_DAEMON
manpage: $NXT_BUILD_DIR/share/man/man8/unitd.8

END


NXT_OS=$(uname -s)
NXT_GNU_MAKE=$(make --version | grep GNU || true)

# Requires GNU make. On OpenIndiana at least we have to use gmake
if [ -n "$NXT_GNU_MAKE" ] || [ $NXT_OS = "SunOS" ]; then

	cat << END >> $NXT_MAKEFILE
# By default compiler etc output is hidden, use
#   make V=1 ...
# to show it.
V := 0

v := @
ifeq (\$V,1)
        v :=
endif

# Optionally enable debugging builds with
#   make D=1 ...
# -g is always used, this just changes the optimisation level.
# On GCC this would be -Og, however according to the clang(1)
# man page, -O0 'generates the most debuggable code'.
D := 0

ifeq (\$D,1)
        CFLAGS += -O0
endif

# Optionally disable -Werror with
#   make E=0 ...
E := 1

ifeq (\$E,0)
        CFLAGS += -Wno-error
endif

END

fi


# The include paths list.

$echo -n "NXT_LIB_INCS =" >> $NXT_MAKEFILE

for nxt_inc in src $NXT_BUILD_DIR/include
do
    $echo -n " -I $nxt_inc" >> $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=${nxt_src%.c}.o
    $echo "	$NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
done

$echo >> $NXT_MAKEFILE

$echo "NXT_LIB_UNIT_OBJS = \\" >> $NXT_MAKEFILE
$echo "	$NXT_BUILD_DIR/src/nxt_lvlhsh.o \\" >> $NXT_MAKEFILE
$echo "	$NXT_BUILD_DIR/src/nxt_murmur_hash.o \\" >> $NXT_MAKEFILE
$echo "	$NXT_BUILD_DIR/src/nxt_socket_msg.o \\" >> $NXT_MAKEFILE
$echo "	$NXT_BUILD_DIR/src/nxt_websocket.o \\" >> $NXT_MAKEFILE

for nxt_src in $NXT_LIB_UNIT_SRCS
do
    nxt_obj=${nxt_src%.c}.o
    $echo "	$NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
done

$echo >> $NXT_MAKEFILE


# The version file.

cat << END >> $NXT_MAKEFILE

include version

$NXT_VERSION_H: version
	\$(PP_VER) \$@ \(NXT_VERSION\)
	\$(v)$echo '#define NXT_VERSION "\$(NXT_VERSION)"' > $NXT_VERSION_H
	\$(PP_VER) \$@ \(NXT_VERNUM\)
	\$(v)$echo '#define NXT_VERNUM  \$(NXT_VERNUM)' >> $NXT_VERSION_H

END


# Shared and static library.

cat << END >> $NXT_MAKEFILE

libnxt:	$NXT_BUILD_DIR/lib/$NXT_LIB_SHARED $NXT_BUILD_DIR/lib/$NXT_LIB_STATIC

$NXT_BUILD_DIR/lib/$NXT_LIB_SHARED: \$(NXT_LIB_OBJS)
	\$(PP_LD) \$@
	\$(v)\$(NXT_SHARED_LOCAL_LINK) -o \$@ \$(NXT_LIB_OBJS) \\
		$NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS

$NXT_BUILD_DIR/lib/$NXT_LIB_STATIC: \$(NXT_LIB_OBJS)
	\$(PP_AR) \$@
	\$(v)$NXT_STATIC_LINK \$@ \$(NXT_LIB_OBJS)

$NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC: \$(NXT_LIB_UNIT_OBJS) \\
		$NXT_BUILD_DIR/share/pkgconfig/unit.pc \\
		$NXT_BUILD_DIR/share/pkgconfig/unit-uninstalled.pc
	\$(PP_AR) \$@
	\$(v)$NXT_STATIC_LINK \$@ \$(NXT_LIB_UNIT_OBJS)

END


# Object files.

for nxt_src in $NXT_LIB_SRCS $NXT_TEST_SRCS $NXT_FUZZ_SRCS $NXT_LIB_UNIT_SRCS \
               src/test/nxt_unit_app_test.c \
               src/test/nxt_unit_websocket_chat.c \
               src/test/nxt_unit_websocket_echo.c
do
    nxt_obj=${nxt_src%.c}.o
    nxt_dep=${nxt_src%.c}.dep
    nxt_dep_flags=`nxt_gen_dep_flags`
    nxt_dep_post=`nxt_gen_dep_post`
    cat << END >> $NXT_MAKEFILE

$NXT_BUILD_DIR/$nxt_obj: $nxt_src $NXT_VERSION_H
	\$(PP_CC) \$@
	\$(v)\$(CC) -c \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\
	-o $NXT_BUILD_DIR/$nxt_obj \\
	$nxt_dep_flags \\
	$nxt_src
	$nxt_dep_post

-include $NXT_BUILD_DIR/$nxt_dep

END

done

nxt_src=src/test/nxt_cq_test.c
nxt_obj=src/test/nxt_ncq_test.o
nxt_dep=src/test/nxt_ncq_test.dep
nxt_dep_flags=`nxt_gen_dep_flags`
nxt_dep_post=`nxt_gen_dep_post`
cat << END >> $NXT_MAKEFILE

$NXT_BUILD_DIR/$nxt_obj: $nxt_src $NXT_VERSION_H
	\$(PP_CC) \$@
	\$(v)\$(CC) -c \$(CFLAGS) -DNXT_NCQ_TEST=1 \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\
	-o $NXT_BUILD_DIR/$nxt_obj \\
	$nxt_dep_flags \\
	$nxt_src
	$nxt_dep_post

-include $NXT_BUILD_DIR/$nxt_dep

END

nxt_src=src/test/nxt_cq_test.c
nxt_obj=src/test/nxt_vbcq_test.o
nxt_dep=src/test/nxt_vbcq_test.dep
nxt_dep_flags=`nxt_gen_dep_flags`
nxt_dep_post=`nxt_gen_dep_post`
cat << END >> $NXT_MAKEFILE

$NXT_BUILD_DIR/$nxt_obj: $nxt_src $NXT_VERSION_H
	\$(PP_CC) \$@
	\$(v)\$(CC) -c \$(CFLAGS) -DNXT_NCQ_TEST=0 \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\
	-o $NXT_BUILD_DIR/$nxt_obj \\
	$nxt_dep_flags \\
	$nxt_src
	$nxt_dep_post

-include $NXT_BUILD_DIR/$nxt_dep

END

$echo >> $NXT_MAKEFILE


if [ $NXT_TESTS = YES ]; then

    # Test object files list.

    $echo "NXT_TEST_OBJS = \\" >> $NXT_MAKEFILE

    for nxt_src in $NXT_TEST_SRCS
    do
        nxt_obj=${nxt_src%.c}.o
        $echo "	$NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
    done

    # Test executables.

    cat << END >> $NXT_MAKEFILE

.PHONY: tests
tests:		$NXT_BUILD_DIR/tests $NXT_BUILD_DIR/utf8_file_name_test \\
			$NXT_BUILD_DIR/ncq_test \\
			$NXT_BUILD_DIR/vbcq_test \\
			$NXT_BUILD_DIR/unit_app_test $NXT_BUILD_DIR/unit_websocket_chat \\
			$NXT_BUILD_DIR/unit_websocket_echo

$NXT_BUILD_DIR/tests: \$(NXT_TEST_OBJS) \\
			$NXT_BUILD_DIR/lib/$NXT_LIB_STATIC
	\$(PP_LD) \$@
	\$(v)\$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/tests \\
		\$(CFLAGS) \$(NXT_TEST_OBJS) \\
		$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/lib/$NXT_LIB_STATIC
	\$(PP_LD) \$@
	\$(v)\$(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/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/lib/$NXT_LIB_STATIC
	\$(PP_LD) \$@
	\$(v)\$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/ncq_test \\
		\$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_ncq_test.o \\
		$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/lib/$NXT_LIB_STATIC
	\$(PP_LD) \$@
	\$(v)\$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/vbcq_test \\
		\$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_vbcq_test.o \\
		$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/lib/$NXT_LIB_UNIT_STATIC
	\$(PP_LD) \$@
	\$(v)\$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_app_test \\
		\$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_app_test.o \\
		$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/lib/$NXT_LIB_UNIT_STATIC
	\$(PP_LD) \$@
	\$(v)\$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_websocket_chat \\
		\$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_websocket_chat.o \\
		$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/lib/$NXT_LIB_UNIT_STATIC
	\$(PP_LD) \$@
	\$(v)\$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_websocket_echo \\
		\$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_websocket_echo.o \\
		$NXT_BUILD_DIR/lib/$NXT_LIB_UNIT_STATIC \\
		$NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS

END

else

    cat << END >> $NXT_MAKEFILE

.PHONY: tests
tests:
	@(echo; \\
	  echo "error: to make tests you need to configure --tests option."; \\
	  echo; \\
	  exit 1)

END

fi


NXT_MAKE_INCS="src $NXT_BUILD_DIR/include"
NXT_MAKE_SRCS="$NXT_SRCS"


# The include paths 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


# Object files list.

$echo "NXT_OBJS = \\" >> $NXT_MAKEFILE

for nxt_src in $NXT_MAKE_SRCS
do
    nxt_obj=${nxt_src%.c}.o
    $echo "	$NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE
done

$echo >> $NXT_MAKEFILE


# unit executable.

cat << END >> $NXT_MAKEFILE

$NXT_BUILD_DIR/sbin/$NXT_DAEMON:	$NXT_BUILD_DIR/lib/$NXT_LIB_STATIC \\
				\$(NXT_OBJS)
	\$(PP_LD) \$@
	\$(v)\$(NXT_EXEC_LINK) -o \$@ \$(CFLAGS) \\
		\$(NXT_OBJS) $NXT_BUILD_DIR/lib/$NXT_LIB_STATIC \\
		$NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS

END


# unitd man page

cat << END >> $NXT_MAKEFILE

$NXT_BUILD_DIR/share/man/man8/unitd.8: docs/man/man8/unitd.8.in \\
				$NXT_BUILD_DIR/include/nxt_auto_config.h
	\$(PP_SED) \$@
	\$(v)sed -e "s|%%ERROR_LOG_PATH%%|$NXT_LOG|" \\
		-e "s|%%PID_PATH%%|$NXT_PID|" \\
		-e "s|%%SOCKET_PATH%%|$NXT_CONTROL|" \\
		< docs/man/man8/unitd.8.in > \$@

END


# unit object files.

for nxt_src in $NXT_MAKE_SRCS
do
    nxt_obj=${nxt_src%.c}.o
    nxt_dep=${nxt_src%.c}.dep
    nxt_dep_flags=`nxt_gen_dep_flags`
    nxt_dep_post=`nxt_gen_dep_post`
    cat << END >> $NXT_MAKEFILE

$NXT_BUILD_DIR/$nxt_obj:	$nxt_src $NXT_VERSION_H
	\$(PP_CC) \$@
	\$(v)\$(CC) -c \$(CFLAGS) \$(NXT_INCS) \\
		$NXT_LIB_AUX_CFLAGS \\
		-o $NXT_BUILD_DIR/$nxt_obj \\
		$nxt_dep_flags \\
		$nxt_src
	$nxt_dep_post

-include $NXT_BUILD_DIR/$nxt_dep

END

done


# install

cat << END >> $NXT_MAKEFILE

.PHONY: install ${NXT_DAEMON}-install install-check manpage-install

install: ${NXT_DAEMON}-install manpage-install

install-check:
	@test -n "\$(DESTDIR)$NXT_PREFIX" \\
	|| (echo; \\
	    echo "error: to make install you need either"; \\
	    echo "    to configure --prefix option"; \\
	    echo "    or to set DESTDIR environment variable."; \\
	    echo; \\
	    exit 1)

${NXT_DAEMON}-install: $NXT_DAEMON install-check
	test -d \$(DESTDIR)$NXT_SBINDIR \
		|| install -d \$(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 \
		|| install -d \$(DESTDIR)$NXT_LOGDIR

manpage-install: manpage install-check
	test -d \$(DESTDIR)$NXT_MANDIR/man8 \
		|| install -d \$(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

uninstall: ${NXT_DAEMON}-uninstall manpage-uninstall

${NXT_DAEMON}-uninstall:
	rm -f \$(DESTDIR)$NXT_SBINDIR/$NXT_DAEMON
	@rmdir -p \$(DESTDIR)$NXT_SBINDIR 2>/dev/null || true

manpage-uninstall:
	rm -f \$(DESTDIR)$NXT_MANDIR/man8/unitd.8
	@rmdir -p \$(DESTDIR)$NXT_MANDIR/man8 2>/dev/null || true

END

cat << END >> $NXT_MAKEFILE

.PHONY: libunit-install libunit-uninstall

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/lib/$NXT_LIB_UNIT_STATIC \
		\$(DESTDIR)$NXT_LIBDIR/
	test -d \$(DESTDIR)$NXT_PKGCONFIGDIR \
		|| install -d \$(DESTDIR)$NXT_PKGCONFIGDIR
	install -p -m u=rw,go=r $NXT_BUILD_DIR/share/pkgconfig/unit.pc \
		\$(DESTDIR)$NXT_PKGCONFIGDIR/
	test -d \$(DESTDIR)$NXT_INCLUDEDIR \
		|| install -d \$(DESTDIR)$NXT_INCLUDEDIR
	install -p -m u=rw,go=r src/nxt_unit.h \
		src/nxt_unit_field.h \
		src/nxt_unit_request.h \
		src/nxt_unit_response.h \
		src/nxt_unit_sptr.h \
		src/nxt_unit_typedefs.h \
		src/nxt_unit_websocket.h \
		$NXT_BUILD_DIR/include/nxt_auto_config.h \
		$NXT_BUILD_DIR/include/nxt_version.h \
		src/nxt_websocket_header.h \
		\$(DESTDIR)$NXT_INCLUDEDIR/

libunit-uninstall:
	rm -f \$(DESTDIR)$NXT_LIBDIR/$NXT_LIB_UNIT_STATIC
	@rmdir -p \$(DESTDIR)$NXT_LIBDIR 2>/dev/null || true
	rm -f \$(DESTDIR)$NXT_PKGCONFIGDIR/unit.pc
	@rmdir -p \$(DESTDIR)$NXT_PKGCONFIGDIR 2>/dev/null || true
	rm -f \$(DESTDIR)$NXT_INCLUDEDIR/nxt_unit.h \
		\$(DESTDIR)$NXT_INCLUDEDIR/nxt_unit_field.h \
		\$(DESTDIR)$NXT_INCLUDEDIR/nxt_unit_request.h \
		\$(DESTDIR)$NXT_INCLUDEDIR/nxt_unit_response.h \
		\$(DESTDIR)$NXT_INCLUDEDIR/nxt_unit_sptr.h \
		\$(DESTDIR)$NXT_INCLUDEDIR/nxt_unit_typedefs.h \
		\$(DESTDIR)$NXT_INCLUDEDIR/nxt_unit_websocket.h \
		\$(DESTDIR)$NXT_INCLUDEDIR/nxt_auto_config.h \
		\$(DESTDIR)$NXT_INCLUDEDIR/nxt_version.h \
		\$(DESTDIR)$NXT_INCLUDEDIR/nxt_websocket_header.h
	@rmdir -p \$(DESTDIR)$NXT_INCLUDEDIR 2>/dev/null || true

END

# pkg-config files

cat << END >> $NXT_MAKEFILE

$NXT_BUILD_DIR/share/pkgconfig/unit.pc: src/unit.pc.in
	\$(PP_SED) \$@
	\$(v)sed -e "s|@PREFIX@|$NXT_PREFIX|" \\
		-e "s|@LIBDIR@|$NXT_LIBDIR|" \\
		-e "s|@CFLAGS@|-I$NXT_INCLUDEDIR|" \\
		-e "s|@VERSION@|\$(NXT_VERSION)|" \\
		-e "s|@EXTRA_LIBS@|$NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS|" \\
		-e "s|@CONFARGS@|$(echo $NXT_CONFIGURE_OPTIONS | sed -e 's| -pie||' -e 's| --njs||')|" \\
		-e "s|@MODULESDIR@|$NXT_MODULESDIR|" \\
	< src/unit.pc.in > \$@

$NXT_BUILD_DIR/share/pkgconfig/unit-uninstalled.pc: src/unit.pc.in
	\$(PP_SED) \$@
	\$(v)sed -e "s|@PREFIX@|$(pwd)/$NXT_BUILD_DIR|" \\
		-e "s|@LIBDIR@|$(pwd)/$NXT_BUILD_DIR/lib|" \\
		-e "s|@CFLAGS@|-I$(pwd)/src -I$(pwd)$NXT_BUILD_DIR/include|" \\
		-e "s|@VERSION@|\$(NXT_VERSION)|" \\
		-e "s|@EXTRA_LIBS@|$NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS|" \\
		-e "s|@CONFARGS@|$(echo $NXT_CONFIGURE_OPTIONS | sed -e 's| -pie||' -e 's| --njs||')|" \\
	< src/unit.pc.in > \$@

END

# Makefile.
# *.dSYM is MacOSX Clang debug information.

cat << END > Makefile

include $NXT_MAKEFILE

.PHONY: clean
clean:
		rm -rf $NXT_BUILD_DIR *.dSYM Makefile

.PHONY: help
help:
	@echo "Variables to control make/build behaviour:"
	@echo
	@echo "  make V=1 ...           - Enables verbose output"
	@echo "  make D=1 ...           - Enables debug builds (-O0)"
	@echo "  make E=0 ...           - Disables -Werror"
	@echo
	@echo "  make EXTRA_CFLAGS= ... - Add extra compiler options"
	@echo
	@echo "  Variables can be combined."

END