
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 "CFLAGS = $CFLAGS"                                           >> $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:	" $ngx_c                                  >> $MAKEFILE
else
    echo "nginx: \\"                                              >> $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 "	\$(CC) ${BINOUT}nginx" $ngx_c             >> $MAKEFILE
else
    echo "	\$(CC) ${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)"
args="\$(CFLAGS) \$(CORE_INCS)"

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)"
args="\$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)"

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
