
mkdir -p $OBJS/src/core $OBJS/src/event $OBJS/src/event/modules \
         $OBJS/src/os/unix $OBJS/src/os/win32 \
         $OBJS/src/http $OBJS/src/http/modules $OBJS/src/http/modules/proxy


echo "CC = $CC"                                                   > $MAKEFILE
echo "CPP = $CPP"                                                 >> $MAKEFILE
echo "LINK = $LINK"                                               >> $MAKEFILE
if [ $CC = wcl386 ]; then
    echo MAKE = wmake                                             >> $MAKEFILE
fi
echo "CFLAGS = $CFLAGS"                                           >> $MAKEFILE
echo                                                              >> $MAKEFILE


if [ $MAKE_SL = YES ]; then
    echo                                                          >> $MAKEFILE
fi

all_inc="$CORE_INCS -I $OBJS $HTTP_INCS"
if [ $INC_EQ = YES ]; then
    all_inc=`echo $all_inc | sed -e "s/-I /-i=/g"`
fi

if [ $MAKE_BS = YES ]; then
    all_inc=`echo $all_inc | sed -e "s/\//\\\\\\/g"`
fi

echo "ALL_INCS = $all_inc"                                        >> $MAKEFILE
echo                                                              >> $MAKEFILE


# CORE_DEPS

if [ $MAKE_SL = YES ]; then
    echo $ngx_n "CORE_DEPS =" $ngx_c                              >> $MAKEFILE
else
    echo "CORE_DEPS = \\"                                         >> $MAKEFILE
fi

for dep in $CORE_DEPS
do
    if [ $MAKE_BS = YES ]; then
        dep=`echo $dep | sed -e "s/\//\\\\\\/g"`
    fi

    if [ $MAKE_SL = YES ]; then
        echo $ngx_n " $dep" $ngx_c                                >> $MAKEFILE
    else
        echo "	$dep \\"                                          >> $MAKEFILE
    fi
done
echo                                                              >> $MAKEFILE


# CORE_INCS

if [ $MAKE_SL = YES ]; then
    echo                                                          >> $MAKEFILE
fi

inc="$CORE_INCS -I $OBJS"
if [ $INC_EQ = YES ]; then
    inc=`echo $inc | sed -e "s/-I /-i=/g"`
fi

if [ $MAKE_BS = YES ]; then
    inc=`echo $inc | sed -e "s/\//\\\\\\/g"`
fi

echo "CORE_INCS = $inc"                                           >> $MAKEFILE
echo                                                              >> $MAKEFILE


# HTTP_DEPS

if [ $MAKE_SL = YES ]; then
    echo $ngx_n "HTTP_DEPS =" $ngx_c                              >> $MAKEFILE
else
    echo "HTTP_DEPS = \\"                                         >> $MAKEFILE
fi

for dep in $HTTP_DEPS
do
    if [ $MAKE_BS = YES ]; then
        dep=`echo $dep | sed -e "s/\//\\\\\\/g"`
    fi

    if [ $MAKE_SL = YES ]; then
        echo $ngx_n " $dep" $ngx_c                                >> $MAKEFILE
    else
        echo "	$dep \\"                                          >> $MAKEFILE
    fi
done
echo                                                              >> $MAKEFILE


# HTTP_INCS

if [ $MAKE_SL = YES ]; then
    echo                                                          >> $MAKEFILE
fi

inc="$HTTP_INCS -I $OBJS"
if [ $INC_EQ = YES ]; then
    inc=`echo $inc | sed -e "s/-I /-i=/g"`
fi

if [ $MAKE_BS = YES ]; then
    inc=`echo $inc | sed -e "s/\//\\\\\\/g"`
fi

echo "HTTP_INCS = $inc"                                           >> $MAKEFILE
echo                                                              >> $MAKEFILE


# nginx

if [ $MAKE_SL = YES ]; then
    echo $ngx_n "nginx$BINEXT:	" $ngx_c                          >> $MAKEFILE
else
    echo "nginx$BINEXT: \\"                                       >> $MAKEFILE
fi


# nginx deps

for src in $CORE_SRCS $HTTP_SRCS
do
    obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/" -e "s/\.S\$/.$OBJEXT/"`
    obj="$OBJS/$obj"

    if [ $MAKE_BS = YES ]; then
        obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
    fi

    if [ $MAKE_SL = YES ]; then
        echo $ngx_n " $obj" $ngx_c                                >> $MAKEFILE
    else
        echo "	$obj \\"                                          >> $MAKEFILE
    fi
done

for src in $NGX_MODULES_C $LINK_DEPS
do
    obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/"`

    if [ $MAKE_BS = YES ]; then
        obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
    fi

    if [ $MAKE_SL = YES ]; then
        echo $ngx_n " $obj" $ngx_c                                >> $MAKEFILE
    else
        echo "	$obj \\"                                          >> $MAKEFILE
    fi
done
echo                                                              >> $MAKEFILE


# nginx build

if [ $MAKE_SL = YES ]; then
    echo $ngx_n "	\$(LINK) ${BINOUT}nginx" $ngx_c           >> $MAKEFILE
else
    echo "	\$(LINK) ${BINOUT}nginx \\"                       >> $MAKEFILE
fi


# nginx build sources

for src in $CORE_SRCS $HTTP_SRCS
do
    obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/" -e "s/\.S\$/.$OBJEXT/"`
    obj="$OBJS/$obj"

    if [ $MAKE_BS = YES ]; then
        obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
    fi

    if [ $MAKE_SL = YES ]; then
        echo $ngx_n " $obj" $ngx_c                                >> $MAKEFILE
    else
        echo "	$obj \\"                                          >> $MAKEFILE
    fi
done


# nginx build ngx_modules.c and libs

obj=`echo $NGX_MODULES_C | sed -e "s/\.c\$/.$OBJEXT/"`
libs=`echo $CORE_LIBS | sed -e "s/\.c\$/.$OBJEXT/"`
src=$NGX_MODULES_C
if [ $MAKE_BS = YES ]; then
    obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
    src=`echo $src | sed -e "s/\//\\\\\\/g"`
    libs=`echo $libs | sed -e "s/\//\\\\\\/g"`
fi

if [ $MAKE_SL = YES ]; then
    echo " $obj $libs $CORE_LINK"                                 >> $MAKEFILE
    echo                                                          >> $MAKEFILE
else
    echo "	$obj \\"                                          >> $MAKEFILE
    echo "	$CORE_LIBS \\"                                    >> $MAKEFILE
    echo "	$CORE_LINK"                                       >> $MAKEFILE
    echo                                                          >> $MAKEFILE
fi


# ngx_modules.c

deps="\$(CORE_DEPS)"

if [ $PCH != NO ]; then
    args="\$(CFLAGS) $USEPCH \$(ALL_INCS)"
else
    args="\$(CFLAGS) $USEPCH \$(CORE_INCS)"
fi

if [ $MAKE_SL = YES ]; then
    echo "$obj: $NGX_MODULES_C $deps"                             >> $MAKEFILE
    echo $ngx_n "	\$(CC) $COMPILEONLY $args" $ngx_c         >> $MAKEFILE
    echo " $OBJOUT$obj $src"                                      >> $MAKEFILE
    echo                                                          >> $MAKEFILE
else
    echo "$obj: \\"                                               >> $MAKEFILE
    echo "	$NGX_MODULES_C $deps"                             >> $MAKEFILE
    echo "	\$(CC) $COMPILEONLY $args \\"                     >> $MAKEFILE
    echo "		$OBJOUT$obj \\"                           >> $MAKEFILE
    echo "		$src"                                     >> $MAKEFILE
    echo                                                          >> $MAKEFILE
fi


# core sources

for src in $CORE_SRCS
do
    obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/" -e "s/\.S\$/.$OBJEXT/"`
    obj="$OBJS/$obj"

    if [ $MAKE_BS = YES ]; then
        obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
        src=`echo $src | sed -e "s/\//\\\\\\/g"`
    fi

    if [ $MAKE_SL = YES ]; then
        echo "$obj: $src $deps"                                   >> $MAKEFILE
        echo "	\$(CC) $COMPILEONLY $args $OBJOUT$obj $src"       >> $MAKEFILE
        echo                                                      >> $MAKEFILE
    else
        echo "$obj: \\"                                           >> $MAKEFILE
        echo "	$src $deps"                                       >> $MAKEFILE
        echo "	\$(CC) $COMPILEONLY $args \\"                     >> $MAKEFILE
        echo "		$OBJOUT$obj \\"                           >> $MAKEFILE
        echo "		$src"                                     >> $MAKEFILE
        echo                                                      >> $MAKEFILE
    fi
done


# http sources

deps="\$(CORE_DEPS) \$(HTTP_DEPS)"

if [ $PCH != NO ]; then
    args="\$(CFLAGS) $USEPCH \$(ALL_INCS)"
else
    args="\$(CFLAGS) $USEPCH \$(CORE_INCS) \$(HTTP_INCS)"
fi

for src in $HTTP_SRCS
do
    obj=`echo $src | sed -e "s/\.c\$/.$OBJEXT/"`
    obj="$OBJS/$obj"

    if [ $MAKE_BS = YES ]; then
        obj=`echo $obj | sed -e "s/\//\\\\\\/g"`
        src=`echo $src | sed -e "s/\//\\\\\\/g"`
    fi

    if [ $MAKE_SL = YES ]; then
        echo "$obj: $src $deps"                                   >> $MAKEFILE
        echo "	\$(CC) $COMPILEONLY $args $OBJOUT$obj $src"       >> $MAKEFILE
        echo                                                      >> $MAKEFILE
    else
        echo "$obj: \\"                                           >> $MAKEFILE
        echo "	$src $deps"                                       >> $MAKEFILE
        echo "	\$(CC) $COMPILEONLY $args \\"                     >> $MAKEFILE
        echo "		$OBJOUT$obj \\"                           >> $MAKEFILE
        echo "		$src"                                     >> $MAKEFILE
        echo                                                      >> $MAKEFILE
    fi
done


# precompiled headers

if [ $PCH != NO ]; then
    echo "#include <ngx_config.h>" > $OBJS/pch.c

    pch="$PCH:	src/core/ngx_config.h $OS_CONFIG $OBJS/ngx_auto_config.h"
    src="\$(CC) \$(CFLAGS) $BUILDPCH $COMPILEONLY \$(ALL_INCS)"
    src="$src $OBJOUT$OBJS/pch.obj $OBJS/pch.c"

    if [ $MAKE_BS = YES ]; then
        pch=`echo $pch | sed -e "s/\//\\\\\\/g"`
        src=`echo $src | sed -e "s/\//\\\\\\/g"`
    fi

    echo "$pch"                                                   >> $MAKEFILE
    echo "	$src"                                             >> $MAKEFILE
    echo                                                          >> $MAKEFILE
fi
