Ejabberd 2.0.2 installation with mod_rabbitmq

I'm trying to compile xmpp gateway to ejabbard.
This is the documentation of rabbitmq xmpp gateway: http://hg.rabbitmq.com/rabbitmq-xmpp/raw-file/tip/doc/overview-summary.html

I'm stuck at the step 8 in compile and install the ejabberd server from the source tree.
Following part taken from ejabberd guide.

    To compile ejabberd on a Microsoft Windows system, you need:

        * MS Visual C++ 6.0 Compiler
        * Erlang/OTP R11B-5
        * Expat 2.0.0 or higher
        * GNU Iconv 1.9.2 (optional)
        * Shining Light OpenSSL 0.9.8d or higher (to enable SSL connections)
        * Zlib 1.2.3 or higher

    Compilation

    We assume that we will try to put as much library as possible into C:\sdk\ to make it easier to track what is install for ejabberd.

       1. Install Erlang emulator (for example, into C:\sdk\erl5.5.5).
       2. Install Expat library into C:\sdk\Expat-2.0.0 directory.

          Copy file C:\sdk\Expat-2.0.0\Libs\libexpat.dll to your Windows system directory (for example, C:\WINNT or C:\WINNT\System32)
       3. Build and install the Iconv library into the directory C:\sdk\GnuWin32.

          Copy file C:\sdk\GnuWin32\bin\lib*.dll to your Windows system directory (more installation instructions can be found in the file README.woe32 in the iconv distribution).

          Note: instead of copying libexpat.dll and iconv.dll to the Windows directory, you can add the directories C:\sdk\Expat-2.0.0\Libs and C:\sdk\GnuWin32\bin to the PATH environment variable.
       4. Install OpenSSL in C:\sdk\OpenSSL and add C:\sdk\OpenSSL\lib\VC to your path or copy the binaries to your system directory.
       5. Install ZLib in C:\sdk\gnuWin32. Copy C:\sdk\GnuWin32\bin\zlib1.dll to your system directory. If you change your path it should already be set after libiconv install.
       6. Make sure the you can access Erlang binaries from your path. For example: set PATH=%PATH%;"C:\sdk\erl5.5.5\bin"
       7. Depending on how you end up actually installing the library you might need to check and tweak the paths in the file configure.erl.
       8. While in the directory ejabberd\src run:

          configure.bat
          nmake -f Makefile.win32

       9. Edit the file ejabberd\src\ejabberd.cfg and run

          werl -s ejabberd -name ejabberd

Here's the error:

    C:\Program Files\ejabberd-2.0.2\src>nmake -f Makefile.win32

    Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
    Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

            erl -s make all report -noinput -s erlang halt
            cd eldap
            nmake -nologo -f Makefile.win32
    Makefile.win32(7) : fatal error U1000: syntax error : ')' missing in macro invoc
    ation
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\VC98\bin\N
    MAKE.EXE"' : return code '0x2'
    Stop.

I'm using Windows XP SP3.
I'll appreciate any help.
Sorry for my bad english.

Here's the configure.erl file content

%%%----------------------------------------------------------------------
%%% File    : configure.erl
%%% Author  : Alexey Shchepin <alexey@process-one.net>
%%% Purpose :
%%% Created : 27 Jan 2003 by Alexey Shchepin <alexey@process-one.net>
%%%
%%%
%%% ejabberd, Copyright (C) 2002-2008   ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
%%% General Public License for more details.
%%%                        
%%% You should have received a copy of the GNU General Public License
%%% along with this program; if not, write to the Free Software
%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
%%% 02111-1307 USA
%%%
%%%----------------------------------------------------------------------

-module(configure).
-author('alexey@process-one.net').

-export([start/0]).

-include("ejabberd.hrl").

start() ->
    Static = case os:getenv("arg") of
false ->
     false;
"static" ->
     true;
_ ->
     false
     end,
    case Static of
true ->
    ExpatLib  = "EXPAT_LIB = $(EXPAT_DIR)\\StaticLibs\\libexpatMT.lib\n",
    ExpatFlag = "EXPAT_FLAG = -DXML_STATIC\n",
    IconvDir  = "ICONV_DIR = c:\\sdk\\GnuWin32\n",
    IconvLib  = "ICONV_LIB = $(ICONV_DIR)\\lib\\libiconv.lib\n",
    ZlibDir   = "ZLIB_DIR = C:\\Program Files\\zlib123\n",
    ZlibLib   = "ZLIB_LIB = $(ZLIB_DIR)\\lib\\zlib.lib\n";
false ->
    ExpatLib  = "EXPAT_LIB = $(EXPAT_DIR)\\Bin\\libexpat.lib\n",
    ExpatFlag = "",
    IconvDir  = "ICONV_DIR = c:\\sdk\\GnuWin32\n",
    IconvLib  = "ICONV_LIB = $(ICONV_DIR)\\lib\\libiconv.lib\n",
    ZlibDir   = "ZLIB_DIR = C:\\Program Files\\zlib123\n",
    ZlibLib   = "ZLIB_LIB = $(ZLIB_DIR)\\lib\\zlib.lib\n"
    end,

    EVersion = "ERLANG_VERSION = " ++ erlang:system_info(version) ++ "\n",
    EIDirS   = "EI_DIR = " ++ code:lib_dir("erl_interface") ++ "\n",
    RootDirS = "ERLANG_DIR = " ++ code:root_dir() ++ "\n",
    %% Load the ejabberd application description so that ?VERSION can read the vsn key
    application:load(ejabberd),
    Version  = "EJABBERD_VERSION = " ++ ?VERSION ++ "\n",
    ExpatDir = "EXPAT_DIR = C:\\Program Files\\Expat 2.0.1\n",
    OpenSSLDir = "OPENSSL_DIR = C:\\Program Files\\OpenSSL\n",
    DBType = "DBTYPE = generic\n",    %% 'generic' or 'mssql'

    SSLDir    = "SSLDIR = " ++ code:lib_dir("ssl") ++ "\n",
    StdLibDir = "STDLIBDIR = " ++ code:lib_dir("stdlib") ++ "\n",

    file:write_file("Makefile.inc",
    list_to_binary(EVersion ++
   EIDirS ++
   RootDirS ++
   Version ++
   SSLDir ++
   StdLibDir ++
   OpenSSLDir ++
   DBType ++
   ExpatDir ++
   ExpatLib ++
   ExpatFlag ++
   IconvDir ++
   IconvLib ++
   ZlibDir ++
   ZlibLib)),
    halt().

Here's the Makefile.win32

include Makefile.inc

ALL : build

REL=..\release
EREL=$(REL)\ejabberd-$(EJABBERD_VERSION)
EBIN_DIR=$(EREL)\ebin
SRC_DIR=$(EREL)\src
PRIV_DIR=$(EREL)\priv
SO_DIR=$(EREL)
MSGS_DIR=$(EREL)\msgs
WIN32_DIR=$(EREL)\win32
DOC_DIR=$(EREL)\doc

NSIS_SCRIPT=win32\ejabberd.nsi
NSIS_HEADER=win32\ejabberd.nsh

installer : $(NSIS_SCRIPT) $(NSIS_HEADER)
makensis $(NSIS_SCRIPT)

$(NSIS_HEADER) : Makefile.inc
echo !define OUTFILEDIR "..\$(REL)" >$(NSIS_HEADER)
echo !define TESTDIR "..\$(REL)\ejabberd-$(EJABBERD_VERSION)" >>$(NSIS_HEADER)
echo !define VERSION "$(EJABBERD_VERSION)" >>$(NSIS_HEADER)

release_clean :
if exist $(REL) rd /s /q $(REL)

release : build release_clean
mkdir $(REL)
mkdir $(EREL)
mkdir $(EBIN_DIR)
copy *.beam $(EBIN_DIR)
@erase $(EBIN_DIR)\configure.beam
copy *.app $(EBIN_DIR)
copy *.dll $(SO_DIR)
mkdir $(MSGS_DIR)
copy msgs\*.msg $(MSGS_DIR)
mkdir $(WIN32_DIR)
copy win32\ejabberd.cfg $(EREL)
copy win32\inetrc $(EREL)
copy $(SYSTEMROOT)\system32\libeay32.dll $(EREL)
copy $(SYSTEMROOT)\system32\ssleay32.dll $(EREL)
copy win32\ejabberd.ico $(WIN32_DIR)
mkdir $(SRC_DIR)
copy *.app $(SRC_DIR)
copy *.erl $(SRC_DIR)
copy *.hrl $(SRC_DIR)
copy *.c $(SRC_DIR)
mkdir $(SRC_DIR)\eldap
copy eldap\eldap.* $(SRC_DIR)\eldap
copy eldap\ELDAPv3.asn $(SRC_DIR)\eldap
mkdir $(SRC_DIR)\mod_irc
copy mod_irc\*.erl $(SRC_DIR)\mod_irc
copy mod_irc\*.c $(SRC_DIR)\mod_irc
mkdir $(SRC_DIR)\mod_muc
copy mod_muc\*.erl $(SRC_DIR)\mod_muc
mkdir $(SRC_DIR)\mod_pubsub
copy mod_pubsub\*.erl $(SRC_DIR)\mod_pubsub
mkdir $(SRC_DIR)\mod_proxy65
copy mod_proxy65\*.erl $(SRC_DIR)\mod_proxy65
copy mod_proxy65\*.hrl $(SRC_DIR)\mod_proxy65
mkdir $(SRC_DIR)\stringprep
copy stringprep\*.erl $(SRC_DIR)\stringprep
copy stringprep\*.c $(SRC_DIR)\stringprep
copy stringprep\*.tcl $(SRC_DIR)\stringprep
mkdir $(SRC_DIR)\tls
copy tls\*.erl $(SRC_DIR)\tls
copy tls\*.c $(SRC_DIR)\tls
mkdir $(SRC_DIR)\ejabberd_zlib
copy ejabberd_zlib\*.erl $(SRC_DIR)\ejabberd_zlib
copy ejabberd_zlib\*.c $(SRC_DIR)\ejabberd_zlib
mkdir $(SRC_DIR)\web
copy web\*.erl $(SRC_DIR)\web
mkdir $(SRC_DIR)\odbc
copy odbc\*.erl $(SRC_DIR)\odbc
copy odbc\*.sql $(EREL)
mkdir $(DOC_DIR)
copy ..\doc\*.txt $(DOC_DIR)
copy ..\doc\*.html $(DOC_DIR)
copy ..\doc\*.png $(DOC_DIR)

SOURCE = expat_erl.c
OBJECT = expat_erl.o
DLL    = expat_erl.dll

build : $(DLL) compile-beam all-recursive

all-recursive :
cd eldap
nmake -nologo -f Makefile.win32
cd ..\mod_irc
nmake -nologo -f Makefile.win32
cd ..\mod_muc
nmake -nologo -f Makefile.win32
cd ..\mod_pubsub
nmake -nologo -f Makefile.win32
cd ..\mod_proxy65
nmake -nologo -f Makefile.win32
cd ..\stringprep
nmake -nologo -f Makefile.win32
cd ..\tls
nmake -nologo -f Makefile.win32
cd ..\ejabberd_zlib
nmake -nologo -f Makefile.win32
cd ..\web
nmake -nologo -f Makefile.win32
cd ..\odbc
nmake -nologo -f Makefile.win32
cd ..

compile-beam : XmppAddr.hrl
erl -s make all report -noinput -s erlang halt

XmppAddr.hrl : XmppAddr.asn1
erlc -bber_bin +der +compact_bit_string +optimize +noobj XmppAddr.asn1

CLEAN : clean-recursive clean-local

clean-local :
-@erase $(OBJECT)
-@erase $(DLL)
-@erase expat_erl.exp
-@erase expat_erl.lib
-@erase *.beam
-@erase XmppAddr.asn1db
-@erase XmppAddr.erl
-@erase XmppAddr.hrl

clean-recursive :
cd eldap
nmake -nologo -f Makefile.win32 clean
cd ..\mod_irc
nmake -nologo -f Makefile.win32 clean
cd ..\mod_muc
nmake -nologo -f Makefile.win32 clean
cd ..\mod_pubsub
nmake -nologo -f Makefile.win32 clean
cd ..\mod_proxy65
nmake -nologo -f Makefile.win32 clean
cd ..\stringprep
nmake -nologo -f Makefile.win32 clean
cd ..\tls
nmake -nologo -f Makefile.win32 clean
cd ..\ejabberd_zlib
nmake -nologo -f Makefile.win32 clean
cd ..\web
nmake -nologo -f Makefile.win32 clean
cd ..\odbc
nmake -nologo -f Makefile.win32 clean
cd ..

distclean : release_clean clean
-@erase $(NSIS_HEADER)
-@erase Makefile.inc

CC=cl.exe
CC_FLAGS=-nologo -D__WIN32__ -DWIN32 -DWINDOWS -D_WIN32 -DNT $(EXPAT_FLAG) -MD -Ox -I"$(ERLANG_DIR)\usr\include" -I"$(EI_DIR)\include" -I"$(EXPAT_DIR)\source\lib"

LD=link.exe
LD_FLAGS=-release -nologo -incremental:no -dll "$(EI_DIR)\lib\ei_md.lib" "$(EI_DIR)\lib\erl_interface_md.lib" "$(EXPAT_LIB)" MSVCRT.LIB kernel32.lib advapi32.lib gdi32.lib user32.lib comctl32.lib comdlg32.lib shell32.lib

$(DLL) : $(OBJECT)
$(LD) $(LD_FLAGS) -out:$(DLL) $(OBJECT)

$(OBJECT) : $(SOURCE)
    $(CC) $(CC_FLAGS) -c -Fo$(OBJECT) $(SOURCE)

Syndicate content