10Sigor@sysoev.ru 20Sigor@sysoev.ru# Copyright (C) Igor Sysoev 30Sigor@sysoev.ru# Copyright (C) Valentin V. Bartenev 40Sigor@sysoev.ru# Copyright (C) NGINX, Inc. 50Sigor@sysoev.ru 6*396Smax.romanov@nginx.com. auto/cc/deps 70Sigor@sysoev.ru 80Sigor@sysoev.ru$echo "creating $NXT_MAKEFILE" 90Sigor@sysoev.ru 100Sigor@sysoev.rumkdir -p $NXT_BUILD_DIR/src \ 11384Szelenkov@nginx.com $NXT_BUILD_DIR/src/test 120Sigor@sysoev.ru 130Sigor@sysoev.ru 140Sigor@sysoev.rucat << END > $NXT_MAKEFILE 150Sigor@sysoev.ru 160Sigor@sysoev.ruCC = $CC 170Sigor@sysoev.ru 183Sigor@sysoev.ruCFLAGS = $NXT_CFLAGS $NXT_CC_OPT $CFLAGS 190Sigor@sysoev.ru 200Sigor@sysoev.ruNXT_EXEC_LINK = $NXT_EXEC_LINK $NXT_LD_OPT 210Sigor@sysoev.ruNXT_SHARED_LOCAL_LINK = $NXT_SHARED_LOCAL_LINK $NXT_LD_OPT 22395Smax.romanov@nginx.comNXT_MODULE_LINK = $NXT_MODULE_LINK 230Sigor@sysoev.ru 24265Smax.romanov@nginx.com.PHONY: $NXT_DAEMON 25265Smax.romanov@nginx.com$NXT_DAEMON: $NXT_BUILD_DIR/$NXT_DAEMON 26216Sigor@sysoev.ru 27265Smax.romanov@nginx.comall: $NXT_DAEMON 28216Sigor@sysoev.ru 290Sigor@sysoev.ruEND 300Sigor@sysoev.ru 310Sigor@sysoev.ru 320Sigor@sysoev.ru# The include paths list. 330Sigor@sysoev.ru 340Sigor@sysoev.ru$echo -n "NXT_LIB_INCS =" >> $NXT_MAKEFILE 350Sigor@sysoev.ru 360Sigor@sysoev.rufor nxt_inc in src $NXT_BUILD_DIR 370Sigor@sysoev.rudo 380Sigor@sysoev.ru $echo -n " -I $nxt_inc" >> $NXT_MAKEFILE 390Sigor@sysoev.rudone 400Sigor@sysoev.ru 410Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 420Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 430Sigor@sysoev.ru 440Sigor@sysoev.ru 450Sigor@sysoev.ru# Library object files list. 460Sigor@sysoev.ru 470Sigor@sysoev.ru$echo "NXT_LIB_OBJS = \\" >> $NXT_MAKEFILE 480Sigor@sysoev.ru 490Sigor@sysoev.rufor nxt_src in $NXT_LIB_SRCS 500Sigor@sysoev.rudo 51*396Smax.romanov@nginx.com nxt_obj=${nxt_src%.c}.o 520Sigor@sysoev.ru $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE 530Sigor@sysoev.rudone 540Sigor@sysoev.ru 550Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 560Sigor@sysoev.ru 570Sigor@sysoev.ru 580Sigor@sysoev.ru# Shared and static library. 590Sigor@sysoev.ru 600Sigor@sysoev.rucat << END >> $NXT_MAKEFILE 610Sigor@sysoev.ru 620Sigor@sysoev.rulibnxt: $NXT_BUILD_DIR/$NXT_LIB_SHARED $NXT_BUILD_DIR/$NXT_LIB_STATIC 630Sigor@sysoev.ru 640Sigor@sysoev.ru$NXT_BUILD_DIR/$NXT_LIB_SHARED: \$(NXT_LIB_OBJS) 650Sigor@sysoev.ru \$(NXT_SHARED_LOCAL_LINK) -o $NXT_BUILD_DIR/$NXT_LIB_SHARED \\ 660Sigor@sysoev.ru \$(NXT_LIB_OBJS) \\ 670Sigor@sysoev.ru $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS 680Sigor@sysoev.ru 690Sigor@sysoev.ru$NXT_BUILD_DIR/$NXT_LIB_STATIC: \$(NXT_LIB_OBJS) 700Sigor@sysoev.ru $NXT_STATIC_LINK $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ 710Sigor@sysoev.ru \$(NXT_LIB_OBJS) 720Sigor@sysoev.ru 730Sigor@sysoev.ruEND 740Sigor@sysoev.ru 750Sigor@sysoev.ru 760Sigor@sysoev.ru# Object files. 770Sigor@sysoev.ru 78246Sigor@sysoev.rufor nxt_src in $NXT_LIB_SRCS $NXT_TEST_SRCS 790Sigor@sysoev.rudo 80*396Smax.romanov@nginx.com nxt_obj=${nxt_src%.c}.o 81*396Smax.romanov@nginx.com nxt_dep=${nxt_src%.c}.dep 82*396Smax.romanov@nginx.com nxt_dep_flags=`nxt_gen_dep_flags` 83*396Smax.romanov@nginx.com nxt_dep_post=`nxt_gen_dep_post` 840Sigor@sysoev.ru cat << END >> $NXT_MAKEFILE 850Sigor@sysoev.ru 86*396Smax.romanov@nginx.com$NXT_BUILD_DIR/$nxt_obj: $nxt_src 870Sigor@sysoev.ru \$(CC) -c \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\ 880Sigor@sysoev.ru -o $NXT_BUILD_DIR/$nxt_obj \\ 89*396Smax.romanov@nginx.com $nxt_dep_flags \\ 900Sigor@sysoev.ru $nxt_src 91*396Smax.romanov@nginx.com $nxt_dep_post 92*396Smax.romanov@nginx.com 93*396Smax.romanov@nginx.com-include $NXT_BUILD_DIR/$nxt_dep 94*396Smax.romanov@nginx.com 950Sigor@sysoev.ruEND 960Sigor@sysoev.ru 970Sigor@sysoev.rudone 980Sigor@sysoev.ru 990Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 1000Sigor@sysoev.ru 1010Sigor@sysoev.ru 102246Sigor@sysoev.ru# Test object files list. 1030Sigor@sysoev.ru 104246Sigor@sysoev.ru$echo "NXT_TEST_OBJS = \\" >> $NXT_MAKEFILE 1050Sigor@sysoev.ru 106246Sigor@sysoev.rufor nxt_src in $NXT_TEST_SRCS 1070Sigor@sysoev.rudo 108*396Smax.romanov@nginx.com nxt_obj=${nxt_src%.c}.o 1090Sigor@sysoev.ru $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE 1100Sigor@sysoev.rudone 1110Sigor@sysoev.ru 1120Sigor@sysoev.ru 113246Sigor@sysoev.ru# Test executables. 1140Sigor@sysoev.ru 1150Sigor@sysoev.rucat << END >> $NXT_MAKEFILE 1160Sigor@sysoev.ru 117246Sigor@sysoev.ru$NXT_BUILD_DIR/tests: \$(NXT_TEST_OBJS) \\ 118*396Smax.romanov@nginx.com $NXT_BUILD_DIR/$NXT_LIB_STATIC 119246Sigor@sysoev.ru \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/tests \\ 120246Sigor@sysoev.ru \$(CFLAGS) \$(NXT_TEST_OBJS) \\ 1210Sigor@sysoev.ru $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ 1220Sigor@sysoev.ru $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS 1230Sigor@sysoev.ru 1240Sigor@sysoev.ru$NXT_BUILD_DIR/utf8_file_name_test: $NXT_LIB_UTF8_FILE_NAME_TEST_SRCS \\ 125*396Smax.romanov@nginx.com $NXT_BUILD_DIR/$NXT_LIB_STATIC 1260Sigor@sysoev.ru \$(CC) \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\ 1270Sigor@sysoev.ru -o $NXT_BUILD_DIR/utf8_file_name_test \\ 1280Sigor@sysoev.ru $NXT_LIB_UTF8_FILE_NAME_TEST_SRCS \\ 1290Sigor@sysoev.ru $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ 1300Sigor@sysoev.ru $NXT_LD_OPT $NXT_LIBM $NXT_LIBS 1310Sigor@sysoev.ru 1320Sigor@sysoev.ruEND 1330Sigor@sysoev.ru 1340Sigor@sysoev.ru 1350Sigor@sysoev.ruNXT_MAKE_INCS="src $NXT_BUILD_DIR" 1360Sigor@sysoev.ruNXT_MAKE_SRCS="$NXT_SRCS" 1370Sigor@sysoev.ru 1380Sigor@sysoev.ru 1390Sigor@sysoev.ru# The include pathes list. 1400Sigor@sysoev.ru 1410Sigor@sysoev.ru$echo -n "NXT_INCS =" >> $NXT_MAKEFILE 1420Sigor@sysoev.ru 1430Sigor@sysoev.rufor nxt_inc in $NXT_MAKE_INCS 1440Sigor@sysoev.rudo 1450Sigor@sysoev.ru $echo -n " -I $nxt_inc" >> $NXT_MAKEFILE 1460Sigor@sysoev.rudone 1470Sigor@sysoev.ru 1480Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 1490Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 1500Sigor@sysoev.ru 1510Sigor@sysoev.ru 1520Sigor@sysoev.ru# Object files list. 1530Sigor@sysoev.ru 1540Sigor@sysoev.ru$echo "NXT_OBJS = \\" >> $NXT_MAKEFILE 1550Sigor@sysoev.ru 156216Sigor@sysoev.rufor nxt_src in $NXT_MAKE_SRCS 1570Sigor@sysoev.rudo 158*396Smax.romanov@nginx.com nxt_obj=${nxt_src%.c}.o 1590Sigor@sysoev.ru $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE 1600Sigor@sysoev.rudone 1610Sigor@sysoev.ru 1620Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 1630Sigor@sysoev.ru 1640Sigor@sysoev.ru 165259Sigor@sysoev.ru# unit executable. 1660Sigor@sysoev.ru 1670Sigor@sysoev.rucat << END >> $NXT_MAKEFILE 1680Sigor@sysoev.ru 169265Smax.romanov@nginx.com$NXT_BUILD_DIR/$NXT_DAEMON: $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ 1700Sigor@sysoev.ru \$(NXT_OBJS) 171265Smax.romanov@nginx.com \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/$NXT_DAEMON \$(CFLAGS) \\ 1720Sigor@sysoev.ru \$(NXT_OBJS) $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ 1730Sigor@sysoev.ru $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS 1740Sigor@sysoev.ru 1750Sigor@sysoev.ruEND 1760Sigor@sysoev.ru 1770Sigor@sysoev.ru 178259Sigor@sysoev.ru# unit object files. 1790Sigor@sysoev.ru 1800Sigor@sysoev.rufor nxt_src in $NXT_MAKE_SRCS 1810Sigor@sysoev.rudo 182*396Smax.romanov@nginx.com nxt_obj=${nxt_src%.c}.o 183*396Smax.romanov@nginx.com nxt_dep=${nxt_src%.c}.dep 184*396Smax.romanov@nginx.com nxt_dep_flags=`nxt_gen_dep_flags` 185*396Smax.romanov@nginx.com nxt_dep_post=`nxt_gen_dep_post` 1860Sigor@sysoev.ru cat << END >> $NXT_MAKEFILE 1870Sigor@sysoev.ru 188*396Smax.romanov@nginx.com$NXT_BUILD_DIR/$nxt_obj: $nxt_src 1890Sigor@sysoev.ru \$(CC) -c \$(CFLAGS) \$(NXT_INCS) \\ 1900Sigor@sysoev.ru $NXT_LIB_AUX_CFLAGS \\ 1910Sigor@sysoev.ru -o $NXT_BUILD_DIR/$nxt_obj \\ 192*396Smax.romanov@nginx.com $nxt_dep_flags \\ 1930Sigor@sysoev.ru $nxt_src 194*396Smax.romanov@nginx.com $nxt_dep_post 195*396Smax.romanov@nginx.com 196*396Smax.romanov@nginx.com-include $NXT_BUILD_DIR/$nxt_dep 197*396Smax.romanov@nginx.com 1980Sigor@sysoev.ruEND 1990Sigor@sysoev.ru 2000Sigor@sysoev.rudone 2010Sigor@sysoev.ru 2020Sigor@sysoev.ru 203265Smax.romanov@nginx.com# install 204265Smax.romanov@nginx.com 205265Smax.romanov@nginx.comcat << END >> $NXT_MAKEFILE 206265Smax.romanov@nginx.com 207265Smax.romanov@nginx.com.PHONY: install ${NXT_DAEMON}-install 208265Smax.romanov@nginx.com 209265Smax.romanov@nginx.cominstall: ${NXT_DAEMON}-install 210265Smax.romanov@nginx.com 211265Smax.romanov@nginx.com${NXT_DAEMON}-install: $NXT_DAEMON 212265Smax.romanov@nginx.com install -d \$(DESTDIR)$NXT_SBINDIR 213265Smax.romanov@nginx.com install -p $NXT_BUILD_DIR/$NXT_DAEMON \$(DESTDIR)$NXT_SBINDIR/ 214331Sigor@sysoev.ru install -d \$(DESTDIR)$NXT_STATE 215265Smax.romanov@nginx.com 216265Smax.romanov@nginx.com 217265Smax.romanov@nginx.com.PHONY: uninstall ${NXT_DAEMON}-uninstall 218265Smax.romanov@nginx.com 219265Smax.romanov@nginx.comuninstall: ${NXT_DAEMON}-uninstall 220265Smax.romanov@nginx.com 221265Smax.romanov@nginx.com${NXT_DAEMON}-uninstall: 222265Smax.romanov@nginx.com rm -f \$(DESTDIR)$NXT_SBINDIR/$NXT_DAEMON 223265Smax.romanov@nginx.com @rmdir -p \$(DESTDIR)$NXT_SBINDIR 2>/dev/null || true 224265Smax.romanov@nginx.com 225265Smax.romanov@nginx.comEND 226265Smax.romanov@nginx.com 227376Sigor@sysoev.runxt_version=`grep NXT_VERSION src/nxt_main.h | sed -e 's/.*"\(.*\)".*/\1/'` 228265Smax.romanov@nginx.com 2290Sigor@sysoev.ru# Makefile. 2300Sigor@sysoev.ru# *.dSYM is MacOSX Clang debug information. 2310Sigor@sysoev.ru 2320Sigor@sysoev.rucat << END > Makefile 2330Sigor@sysoev.ru 234376Sigor@sysoev.ruNXT_VERSION = $nxt_version 235287Sigor@sysoev.ru 236191Smax.romanov@nginx.cominclude $NXT_MAKEFILE 2370Sigor@sysoev.ru 238246Sigor@sysoev.ru.PHONY: tests 239246Sigor@sysoev.rutests: $NXT_BUILD_DIR/tests $NXT_BUILD_DIR/utf8_file_name_test 2400Sigor@sysoev.ru 241304Smax.romanov@nginx.com.PHONY: clean 2420Sigor@sysoev.ruclean: 243216Sigor@sysoev.ru rm -rf $NXT_BUILD_DIR *.dSYM Makefile 2440Sigor@sysoev.ru 245304Smax.romanov@nginx.com.PHONY: dist 246287Sigor@sysoev.rudist: 247287Sigor@sysoev.ru rm -f unit-\$(NXT_VERSION).tar.gz 248287Sigor@sysoev.ru mkdir unit-\$(NXT_VERSION) 249333Sigor@sysoev.ru cp -rp LICENSE NOTICE CHANGES README \\ 250287Sigor@sysoev.ru configure auto src test \\ 251287Sigor@sysoev.ru unit-\$(NXT_VERSION) 252287Sigor@sysoev.ru tar czf unit-\$(NXT_VERSION).tar.gz unit-\$(NXT_VERSION) 253287Sigor@sysoev.ru rm -rf unit-\$(NXT_VERSION) 254287Sigor@sysoev.ru 2550Sigor@sysoev.ruEND 256