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 6396Smax.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 24698Smax.romanov@nginx.comall: $NXT_DAEMON 25698Smax.romanov@nginx.com 26265Smax.romanov@nginx.com.PHONY: $NXT_DAEMON 27265Smax.romanov@nginx.com$NXT_DAEMON: $NXT_BUILD_DIR/$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 51396Smax.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 57743Smax.romanov@nginx.com$echo "NXT_LIB_UNIT_OBJS = \\" >> $NXT_MAKEFILE 58743Smax.romanov@nginx.com$echo " $NXT_BUILD_DIR/src/nxt_lvlhsh.o \\" >> $NXT_MAKEFILE 59743Smax.romanov@nginx.com$echo " $NXT_BUILD_DIR/src/nxt_murmur_hash.o \\" >> $NXT_MAKEFILE 60743Smax.romanov@nginx.com 61743Smax.romanov@nginx.comfor nxt_src in $NXT_LIB_UNIT_SRCS 62743Smax.romanov@nginx.comdo 63743Smax.romanov@nginx.com nxt_obj=${nxt_src%.c}.o 64743Smax.romanov@nginx.com $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE 65743Smax.romanov@nginx.comdone 66743Smax.romanov@nginx.com 67743Smax.romanov@nginx.com$echo >> $NXT_MAKEFILE 68743Smax.romanov@nginx.com 690Sigor@sysoev.ru 700Sigor@sysoev.ru# Shared and static library. 710Sigor@sysoev.ru 720Sigor@sysoev.rucat << END >> $NXT_MAKEFILE 730Sigor@sysoev.ru 740Sigor@sysoev.rulibnxt: $NXT_BUILD_DIR/$NXT_LIB_SHARED $NXT_BUILD_DIR/$NXT_LIB_STATIC 750Sigor@sysoev.ru 760Sigor@sysoev.ru$NXT_BUILD_DIR/$NXT_LIB_SHARED: \$(NXT_LIB_OBJS) 770Sigor@sysoev.ru \$(NXT_SHARED_LOCAL_LINK) -o $NXT_BUILD_DIR/$NXT_LIB_SHARED \\ 780Sigor@sysoev.ru \$(NXT_LIB_OBJS) \\ 790Sigor@sysoev.ru $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS 800Sigor@sysoev.ru 810Sigor@sysoev.ru$NXT_BUILD_DIR/$NXT_LIB_STATIC: \$(NXT_LIB_OBJS) 820Sigor@sysoev.ru $NXT_STATIC_LINK $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ 830Sigor@sysoev.ru \$(NXT_LIB_OBJS) 840Sigor@sysoev.ru 85743Smax.romanov@nginx.com$NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC: \$(NXT_LIB_UNIT_OBJS) 86743Smax.romanov@nginx.com $NXT_STATIC_LINK $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\ 87743Smax.romanov@nginx.com \$(NXT_LIB_UNIT_OBJS) 88743Smax.romanov@nginx.com 890Sigor@sysoev.ruEND 900Sigor@sysoev.ru 910Sigor@sysoev.ru 920Sigor@sysoev.ru# Object files. 930Sigor@sysoev.ru 94743Smax.romanov@nginx.comfor nxt_src in $NXT_LIB_SRCS $NXT_TEST_SRCS $NXT_LIB_UNIT_SRCS \ 95743Smax.romanov@nginx.com src/test/nxt_unit_app_test.c 960Sigor@sysoev.rudo 97396Smax.romanov@nginx.com nxt_obj=${nxt_src%.c}.o 98396Smax.romanov@nginx.com nxt_dep=${nxt_src%.c}.dep 99396Smax.romanov@nginx.com nxt_dep_flags=`nxt_gen_dep_flags` 100396Smax.romanov@nginx.com nxt_dep_post=`nxt_gen_dep_post` 1010Sigor@sysoev.ru cat << END >> $NXT_MAKEFILE 1020Sigor@sysoev.ru 103396Smax.romanov@nginx.com$NXT_BUILD_DIR/$nxt_obj: $nxt_src 1040Sigor@sysoev.ru \$(CC) -c \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\ 1050Sigor@sysoev.ru -o $NXT_BUILD_DIR/$nxt_obj \\ 106396Smax.romanov@nginx.com $nxt_dep_flags \\ 1070Sigor@sysoev.ru $nxt_src 108396Smax.romanov@nginx.com $nxt_dep_post 109396Smax.romanov@nginx.com 110396Smax.romanov@nginx.com-include $NXT_BUILD_DIR/$nxt_dep 111396Smax.romanov@nginx.com 1120Sigor@sysoev.ruEND 1130Sigor@sysoev.ru 1140Sigor@sysoev.rudone 1150Sigor@sysoev.ru 1160Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 1170Sigor@sysoev.ru 1180Sigor@sysoev.ru 119752Svbart@nginx.comif [ $NXT_TESTS = YES ]; then 1200Sigor@sysoev.ru 121752Svbart@nginx.com # Test object files list. 122752Svbart@nginx.com 123752Svbart@nginx.com $echo "NXT_TEST_OBJS = \\" >> $NXT_MAKEFILE 1240Sigor@sysoev.ru 125752Svbart@nginx.com for nxt_src in $NXT_TEST_SRCS 126752Svbart@nginx.com do 127752Svbart@nginx.com nxt_obj=${nxt_src%.c}.o 128752Svbart@nginx.com $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE 129752Svbart@nginx.com done 1300Sigor@sysoev.ru 131752Svbart@nginx.com # Test executables. 1320Sigor@sysoev.ru 133752Svbart@nginx.com cat << END >> $NXT_MAKEFILE 1340Sigor@sysoev.ru 135752Svbart@nginx.com.PHONY: tests 136752Svbart@nginx.comtests: $NXT_BUILD_DIR/tests $NXT_BUILD_DIR/utf8_file_name_test \\ 137752Svbart@nginx.com $NXT_BUILD_DIR/unit_app_test 1380Sigor@sysoev.ru 139246Sigor@sysoev.ru$NXT_BUILD_DIR/tests: \$(NXT_TEST_OBJS) \\ 140396Smax.romanov@nginx.com $NXT_BUILD_DIR/$NXT_LIB_STATIC 141246Sigor@sysoev.ru \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/tests \\ 142246Sigor@sysoev.ru \$(CFLAGS) \$(NXT_TEST_OBJS) \\ 1430Sigor@sysoev.ru $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ 1440Sigor@sysoev.ru $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS 1450Sigor@sysoev.ru 1460Sigor@sysoev.ru$NXT_BUILD_DIR/utf8_file_name_test: $NXT_LIB_UTF8_FILE_NAME_TEST_SRCS \\ 147396Smax.romanov@nginx.com $NXT_BUILD_DIR/$NXT_LIB_STATIC 1480Sigor@sysoev.ru \$(CC) \$(CFLAGS) \$(NXT_LIB_INCS) $NXT_LIB_AUX_CFLAGS \\ 1490Sigor@sysoev.ru -o $NXT_BUILD_DIR/utf8_file_name_test \\ 1500Sigor@sysoev.ru $NXT_LIB_UTF8_FILE_NAME_TEST_SRCS \\ 1510Sigor@sysoev.ru $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ 152771Sigor@sysoev.ru $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS 1530Sigor@sysoev.ru 154743Smax.romanov@nginx.com$NXT_BUILD_DIR/unit_app_test: $NXT_BUILD_DIR/src/test/nxt_unit_app_test.o \\ 155743Smax.romanov@nginx.com $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC 156743Smax.romanov@nginx.com \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/unit_app_test \\ 157743Smax.romanov@nginx.com \$(CFLAGS) $NXT_BUILD_DIR/src/test/nxt_unit_app_test.o \\ 158743Smax.romanov@nginx.com $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \\ 159743Smax.romanov@nginx.com $NXT_LD_OPT $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS 160743Smax.romanov@nginx.com 1610Sigor@sysoev.ruEND 1620Sigor@sysoev.ru 163752Svbart@nginx.comelse 164752Svbart@nginx.com 165752Svbart@nginx.com cat << END >> $NXT_MAKEFILE 166752Svbart@nginx.com 167752Svbart@nginx.com.PHONY: tests 168752Svbart@nginx.comtests: 169752Svbart@nginx.com @(echo; \\ 170752Svbart@nginx.com echo "error: to make tests you need to configure --tests option."; \\ 171752Svbart@nginx.com echo; \\ 172752Svbart@nginx.com exit 1) 173752Svbart@nginx.com 174752Svbart@nginx.comEND 175752Svbart@nginx.com 176752Svbart@nginx.comfi 177752Svbart@nginx.com 1780Sigor@sysoev.ru 1790Sigor@sysoev.ruNXT_MAKE_INCS="src $NXT_BUILD_DIR" 1800Sigor@sysoev.ruNXT_MAKE_SRCS="$NXT_SRCS" 1810Sigor@sysoev.ru 1820Sigor@sysoev.ru 183762Svbart@nginx.com# The include paths list. 1840Sigor@sysoev.ru 1850Sigor@sysoev.ru$echo -n "NXT_INCS =" >> $NXT_MAKEFILE 1860Sigor@sysoev.ru 1870Sigor@sysoev.rufor nxt_inc in $NXT_MAKE_INCS 1880Sigor@sysoev.rudo 1890Sigor@sysoev.ru $echo -n " -I $nxt_inc" >> $NXT_MAKEFILE 1900Sigor@sysoev.rudone 1910Sigor@sysoev.ru 1920Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 1930Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 1940Sigor@sysoev.ru 1950Sigor@sysoev.ru 1960Sigor@sysoev.ru# Object files list. 1970Sigor@sysoev.ru 1980Sigor@sysoev.ru$echo "NXT_OBJS = \\" >> $NXT_MAKEFILE 1990Sigor@sysoev.ru 200216Sigor@sysoev.rufor nxt_src in $NXT_MAKE_SRCS 2010Sigor@sysoev.rudo 202396Smax.romanov@nginx.com nxt_obj=${nxt_src%.c}.o 2030Sigor@sysoev.ru $echo " $NXT_BUILD_DIR/$nxt_obj \\" >> $NXT_MAKEFILE 2040Sigor@sysoev.rudone 2050Sigor@sysoev.ru 2060Sigor@sysoev.ru$echo >> $NXT_MAKEFILE 2070Sigor@sysoev.ru 2080Sigor@sysoev.ru 209259Sigor@sysoev.ru# unit executable. 2100Sigor@sysoev.ru 2110Sigor@sysoev.rucat << END >> $NXT_MAKEFILE 2120Sigor@sysoev.ru 213265Smax.romanov@nginx.com$NXT_BUILD_DIR/$NXT_DAEMON: $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ 2140Sigor@sysoev.ru \$(NXT_OBJS) 215265Smax.romanov@nginx.com \$(NXT_EXEC_LINK) -o $NXT_BUILD_DIR/$NXT_DAEMON \$(CFLAGS) \\ 2160Sigor@sysoev.ru \$(NXT_OBJS) $NXT_BUILD_DIR/$NXT_LIB_STATIC \\ 2170Sigor@sysoev.ru $NXT_LIBM $NXT_LIBS $NXT_LIB_AUX_LIBS 2180Sigor@sysoev.ru 2190Sigor@sysoev.ruEND 2200Sigor@sysoev.ru 2210Sigor@sysoev.ru 222259Sigor@sysoev.ru# unit object files. 2230Sigor@sysoev.ru 2240Sigor@sysoev.rufor nxt_src in $NXT_MAKE_SRCS 2250Sigor@sysoev.rudo 226396Smax.romanov@nginx.com nxt_obj=${nxt_src%.c}.o 227396Smax.romanov@nginx.com nxt_dep=${nxt_src%.c}.dep 228396Smax.romanov@nginx.com nxt_dep_flags=`nxt_gen_dep_flags` 229396Smax.romanov@nginx.com nxt_dep_post=`nxt_gen_dep_post` 2300Sigor@sysoev.ru cat << END >> $NXT_MAKEFILE 2310Sigor@sysoev.ru 232396Smax.romanov@nginx.com$NXT_BUILD_DIR/$nxt_obj: $nxt_src 2330Sigor@sysoev.ru \$(CC) -c \$(CFLAGS) \$(NXT_INCS) \\ 2340Sigor@sysoev.ru $NXT_LIB_AUX_CFLAGS \\ 2350Sigor@sysoev.ru -o $NXT_BUILD_DIR/$nxt_obj \\ 236396Smax.romanov@nginx.com $nxt_dep_flags \\ 2370Sigor@sysoev.ru $nxt_src 238396Smax.romanov@nginx.com $nxt_dep_post 239396Smax.romanov@nginx.com 240396Smax.romanov@nginx.com-include $NXT_BUILD_DIR/$nxt_dep 241396Smax.romanov@nginx.com 2420Sigor@sysoev.ruEND 2430Sigor@sysoev.ru 2440Sigor@sysoev.rudone 2450Sigor@sysoev.ru 2460Sigor@sysoev.ru 247265Smax.romanov@nginx.com# install 248265Smax.romanov@nginx.com 249265Smax.romanov@nginx.comcat << END >> $NXT_MAKEFILE 250265Smax.romanov@nginx.com 251706Sigor@sysoev.ru.PHONY: install ${NXT_DAEMON}-install install-check 252265Smax.romanov@nginx.com 253265Smax.romanov@nginx.cominstall: ${NXT_DAEMON}-install 254265Smax.romanov@nginx.com 255706Sigor@sysoev.ruinstall-check: 256706Sigor@sysoev.ru @test -n "\$(DESTDIR)$NXT_PREFIX" \\ 257706Sigor@sysoev.ru || (echo; \\ 258706Sigor@sysoev.ru echo "error: to make install you need either"; \\ 259706Sigor@sysoev.ru echo " to configure --prefix option"; \\ 260706Sigor@sysoev.ru echo " or to set DESTDIR environment variable."; \\ 261706Sigor@sysoev.ru echo; \\ 262706Sigor@sysoev.ru exit 1) 263706Sigor@sysoev.ru 264706Sigor@sysoev.ru${NXT_DAEMON}-install: $NXT_DAEMON install-check 265265Smax.romanov@nginx.com install -d \$(DESTDIR)$NXT_SBINDIR 266265Smax.romanov@nginx.com install -p $NXT_BUILD_DIR/$NXT_DAEMON \$(DESTDIR)$NXT_SBINDIR/ 267331Sigor@sysoev.ru install -d \$(DESTDIR)$NXT_STATE 268265Smax.romanov@nginx.com 269265Smax.romanov@nginx.com 270265Smax.romanov@nginx.com.PHONY: uninstall ${NXT_DAEMON}-uninstall 271265Smax.romanov@nginx.com 272265Smax.romanov@nginx.comuninstall: ${NXT_DAEMON}-uninstall 273265Smax.romanov@nginx.com 274265Smax.romanov@nginx.com${NXT_DAEMON}-uninstall: 275265Smax.romanov@nginx.com rm -f \$(DESTDIR)$NXT_SBINDIR/$NXT_DAEMON 276265Smax.romanov@nginx.com @rmdir -p \$(DESTDIR)$NXT_SBINDIR 2>/dev/null || true 277265Smax.romanov@nginx.com 278265Smax.romanov@nginx.comEND 279265Smax.romanov@nginx.com 280*805Smax.romanov@nginx.comcat << END >> $NXT_MAKEFILE 281*805Smax.romanov@nginx.com 282*805Smax.romanov@nginx.com.PHONY: libunit-install libunit-uninstall 283*805Smax.romanov@nginx.com 284*805Smax.romanov@nginx.comlibunit-install: $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC 285*805Smax.romanov@nginx.com install -d \$(DESTDIR)$NXT_LIBDIR 286*805Smax.romanov@nginx.com install -p -m u=rw,go=r $NXT_BUILD_DIR/$NXT_LIB_UNIT_STATIC \ 287*805Smax.romanov@nginx.com \$(DESTDIR)$NXT_LIBDIR/ 288*805Smax.romanov@nginx.com install -d \$(DESTDIR)$NXT_INCDIR 289*805Smax.romanov@nginx.com install -p -m u=rw,go=r src/nxt_unit.h src/nxt_unit_field.h \ 290*805Smax.romanov@nginx.com src/nxt_unit_request.h src/nxt_unit_response.h src/nxt_unit_sptr.h \ 291*805Smax.romanov@nginx.com src/nxt_unit_typedefs.h \$(DESTDIR)$NXT_INCDIR/ 292*805Smax.romanov@nginx.com 293*805Smax.romanov@nginx.comlibunit-uninstall: 294*805Smax.romanov@nginx.com rm -f \$(DESTDIR)$NXT_LIBDIR/$NXT_LIB_UNIT_STATIC 295*805Smax.romanov@nginx.com @rmdir -p \$(DESTDIR)$NXT_LIBDIR 2>/dev/null || true 296*805Smax.romanov@nginx.com rm -f \$(DESTDIR)$NXT_INCDIR/nxt_unit.h \ 297*805Smax.romanov@nginx.com \$(DESTDIR)$NXT_INCDIR/nxt_unit_field.h \ 298*805Smax.romanov@nginx.com \$(DESTDIR)$NXT_INCDIR/nxt_unit_request.h \ 299*805Smax.romanov@nginx.com \$(DESTDIR)$NXT_INCDIR/nxt_unit_response.h \ 300*805Smax.romanov@nginx.com \$(DESTDIR)$NXT_INCDIR/nxt_unit_sptr.h \ 301*805Smax.romanov@nginx.com \$(DESTDIR)$NXT_INCDIR/nxt_unit_typedefs.h 302*805Smax.romanov@nginx.com @rmdir -p \$(DESTDIR)$NXT_INCDIR 2>/dev/null || true 303*805Smax.romanov@nginx.com 304*805Smax.romanov@nginx.comEND 305*805Smax.romanov@nginx.com 3060Sigor@sysoev.ru# Makefile. 3070Sigor@sysoev.ru# *.dSYM is MacOSX Clang debug information. 3080Sigor@sysoev.ru 3090Sigor@sysoev.rucat << END > Makefile 3100Sigor@sysoev.ru 311191Smax.romanov@nginx.cominclude $NXT_MAKEFILE 3120Sigor@sysoev.ru 313304Smax.romanov@nginx.com.PHONY: clean 3140Sigor@sysoev.ruclean: 315216Sigor@sysoev.ru rm -rf $NXT_BUILD_DIR *.dSYM Makefile 3160Sigor@sysoev.ru 3170Sigor@sysoev.ruEND 318