Romulo Goncalves wrote:
I am using visual studio 2003 with service pack 1.
To compile I did: nmake NEED_MX=1 HAVE_JAVA=1 HAVE_PYTHON=1 HAVE_PYTHON_SWIG=1 HAVE_PHP=1 HAVE_PERL=1 HAVE_PERL_DEVEL=1 HAVE_PERL_SWIG=1 HAVE_PEAR=1 NO_MONETDB4=1 HAVE_MONETDB5=1
And I got the following error: if exist libMonetODBC.dll.manifest mt -nologo -manifest libMonetODBC.dll.manifest -outputresource:libMonetODBC.dll;2 if not exist "samples" mkdir "samples" copy ".\..\..\..\src\odbc\samples\Makefile.msc" "samples\Makefile" 1 file(s) copied. cd "samples" && nmake /nologo "prefix=C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\clients\NT" all if not exist "python" mkdir "python" copy ".\..\..\..\src\odbc\python\Makefile.msc" "python\Makefile" 1 file(s) copied. cd "python" && nmake /nologo "prefix=C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\clients\NT" all if not exist "perl" mkdir "perl" copy ".\..\..\src\perl\Makefile.msc" "perl\Makefile" 1 file(s) copied. cd "perl" && nmake /nologo "prefix=C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\clients\NT" all NMAKE : warning U4004: too many rules for target 'HAVE_PERL_DEVEL-dir' NMAKE : warning U4004: too many rules for target 'HAVE_PERL_DEVEL-dir' NMAKE : warning U4004: too many rules for target 'HAVE_PERL_DEVEL-dir' if not exist "MonetDB-CLI-MapiPP" mkdir "MonetDB-CLI-MapiPP" NMAKE : warning U4004: too many rules for target 'HAVE_PERL_DEVEL-Makefile' NMAKE : warning U4004: too many rules for target 'HAVE_PERL_DEVEL-Makefile' NMAKE : warning U4004: too many rules for target 'HAVE_PERL_DEVEL-Makefile' copy ".\..\..\..\src\perl\MonetDB-CLI-MapiPP\Makefile.msc" "MonetDB-CLI-MapiPP\Makefile" 1 file(s) copied. NMAKE : warning U4004: too many rules for target 'HAVE_PERL_DEVEL-all' NMAKE : warning U4004: too many rules for target 'HAVE_PERL_DEVEL-all' NMAKE : warning U4004: too many rules for target 'HAVE_PERL_DEVEL-all' cd "MonetDB-CLI-MapiPP" && nmake /nologo "prefix=C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\clients\NT" all if not exist "Cimpl" mkdir "Cimpl" copy ".\..\..\..\src\perl\Cimpl\Makefile.msc" "Cimpl\Makefile" 1 file(s) copied. cd "Cimpl" && nmake /nologo "prefix=C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\clients\NT" all cl -GF -W3 -wd4273 -wd4102 -MD -nologo -Zi -Ox -I. -I.\..\..\.. "-IC:\Pthreads\include" -I.\..\..\..\..\src\perl\Cimp "-I..\..\mapilib" -I"C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\MonetDB\NT\include" -I"C:\cygwin\home\goncalve\MonetDB\Mone DB_SQL\MonetDB\NT\include\common" -I"C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\MonetDB\NT\include\gdk" -LD -FeMapiLib.dll /link ..\..\mapilib\libMapi.lib cl : Command line error D2003 : missing source filename NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: '"E:\Visual Studio .NET 2003\VC7\BIN\nmake.exe"' : return code '0x2' Stop.
C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\clients\NT>cd C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\clients\NT C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\clients\NT>
Did I forget something or it is an error from your part?
Aah, I think I understand. What I described:
perl Makefile.PL nmake nmake test nmake install
is completely unrelated to the MonetDB build. You can try this e.g. in clients/src/perl/MonetDB-CLI-MapiPP - I'm sure it works. 'perl Makefile.PL' will generate a 'Makefile', which is used by nmake. But again, this is all in perl space and has nothing to do with the MonetDB build.
Now to the MonetDB build. It uses a similar approach as 'perl Makefile.PL'. Here, 'python autogen.py' generates 'Makefile.msc', which is used by nmake. However, I never tried this to build the perl modules. AFAICS, it work on UNIX (somehow) for Mapi and MapiLib, but (IMHO) it's a difficult and risky way. I think it would be easier to teach autogen how to generate a Makefile which calls 'perl Makefile.PL && make'. Unfortunately, I'm not familar with autogen - but hey, it's a python script; who if not the kind people at CWI can solve this? Yap the autogen has to be modified. The compilation crashed after I created the Makefiles. I did in your directories:
Steffen Goeldner wrote: perl Makefile.PL nmake nmake install The installation is installing the libs in the directory where my Perl is installed. However, I could not find perl_monetdb.dll Then I removed Makefile.msc in the top directory to tell autogen to recreate all the Makefiles (I know that it does know how to do it for perl) and it crashed in the cleanup. cd ".\.." && autogen.py Traceback (most recent call last): File "C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\buildtools\autogen\autogen.py", line 159, in <module> os.path.walk(topdir, cleanup, None) File "C:\Python25\lib\ntpath.py", line 334, in walk walk(name, func, arg) File "C:\Python25\lib\ntpath.py", line 334, in walk walk(name, func, arg) File "C:\Python25\lib\ntpath.py", line 334, in walk walk(name, func, arg) File "C:\Python25\lib\ntpath.py", line 334, in walk walk(name, func, arg) File "C:\Python25\lib\ntpath.py", line 334, in walk walk(name, func, arg) File "C:\Python25\lib\ntpath.py", line 334, in walk walk(name, func, arg) File "C:\Python25\lib\ntpath.py", line 334, in walk walk(name, func, arg) File "C:\Python25\lib\ntpath.py", line 328, in walk func(arg, top, names) File "C:\cygwin\home\goncalve\MonetDB\MonetDB_SQL\buildtools\autogen\autogen.py", line 157, in cleanup os.unlink(os.path.join(dirname, name)) WindowsError: [Error 13] Access is denied: 'C:\\cygwin\\home\\goncalve\\MonetDB\\MonetDB_SQL\\clients\\src\\perl\\DBD\\blib\\l ib\\DBD\\monetdb\\.incs.ag' NMAKE : fatal error U1077: 'cd' : return code '0x1' Stop. I will talk with the ones responsible for autogen to add what we need. Thanks for the help. ;) Regards, Romulo
Two small problems come into my mind:
1. the generated Makefiles may clash on some platforms, if no file extension is used. 2. For Cimpl, SWIG needs to be in the path and a rule for .i files known
Regards, Steffen