Changeset: 0ace8e8c06fb for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0ace8e8c06fb
Modified Files:
        buildtools/Makefile.msc
        buildtools/Mx/Makefile.msc
        buildtools/burg/Makefile.msc
        buildtools/mel/Makefile.msc
Branch: Jun2010
Log Message:

Add support for building buildtools in a separate directory on Windows.
When calling nmake, you have to specify srcdir to point to the sources.
Also, srcdir should be relative, at least at the buildtools level.


diffs (truncated from 357 to 300 lines):

diff -r 2b87cb9e7ac4 -r 0ace8e8c06fb buildtools/Makefile.msc
--- a/buildtools/Makefile.msc   Mon Sep 13 23:45:11 2010 +0200
+++ b/buildtools/Makefile.msc   Wed Sep 15 15:37:33 2010 +0200
@@ -20,21 +20,22 @@
 # Meta-Makefile.msc for buildtools
 
 prefix = $(MAKEDIR)\NT
+srcdir = .
 
 all:
-       cd autogen && setup.py build
-       cd Mx && $(MAKE) /nologo /f Makefile.msc
-       cd mel && $(MAKE) /nologo /f Makefile.msc
-       cd burg && $(MAKE) /nologo /f Makefile.msc
+       cd $(srcdir)\autogen && setup.py build
+       cd Mx && $(MAKE) /nologo /f ..\$(srcdir)\Mx\Makefile.msc 
srcdir=..\$(srcdir)\Mx
+       cd mel && $(MAKE) /nologo /f ..\$(srcdir)\mel\Makefile.msc 
srcdir=..\$(srcdir)\mel
+       cd burg && $(MAKE) /nologo /f ..\$(srcdir)\burg\Makefile.msc 
srcdir=..\$(srcdir)\burg
 
 install:
-       cd autogen && setup.py install "--prefix=$(prefix)"
-       cd Mx && $(MAKE) /nologo /f Makefile.msc "prefix=$(prefix)" install
-       cd mel && $(MAKE) /nologo /f Makefile.msc "prefix=$(prefix)" install
-       cd burg && $(MAKE) /nologo /f Makefile.msc "prefix=$(prefix)" install
+       cd $(srcdir)\autogen && setup.py install "--prefix=$(prefix)"
+       cd Mx && $(MAKE) /nologo /f ..\$(srcdir)\Mx\Makefile.msc 
srcdir=..\$(srcdir)\Mx "prefix=$(prefix)" install
+       cd mel && $(MAKE) /nologo /f ..\$(srcdir)\mel\Makefile.msc 
srcdir=..\$(srcdir)\mel "prefix=$(prefix)" install
+       cd burg && $(MAKE) /nologo /f ..\$(srcdir)\burg\Makefile.msc 
srcdir=..\$(srcdir)\burg "prefix=$(prefix)" install
 
 clean:
-       cd autogen && del /q build
-       cd Mx && $(MAKE) /nologo /f Makefile.msc clean
-       cd mel && $(MAKE) /nologo /f Makefile.msc clean
-       cd burg && $(MAKE) /nologo /f Makefile.msc clean
+       cd $(srcdir)\autogen && del /q build
+       cd Mx && $(MAKE) /nologo /f ..\$(srcdir)\Mx\Makefile 
srcdir=..\$(srcdir)\Mx.msc clean
+       cd mel && $(MAKE) /nologo /f ..\$(srcdir)\mel\Makefile.msc 
srcdir=..\$(srcdir)\mel clean
+       cd burg && $(MAKE) /nologo /f ..\$(srcdir)\burg\Makefile.msc 
srcdir=..\$(srcdir)\burg clean
diff -r 2b87cb9e7ac4 -r 0ace8e8c06fb buildtools/Mx/Makefile.msc
--- a/buildtools/Mx/Makefile.msc        Mon Sep 13 23:45:11 2010 +0200
+++ b/buildtools/Mx/Makefile.msc        Wed Sep 15 15:37:33 2010 +0200
@@ -19,17 +19,21 @@
 
 prefix = ..\NT
 bindir = $(prefix)\bin
+srcdir = .
 
 !IFDEF DEBUG
-CFLAGS = -I. -GF -W3 -MDd -nologo -Zi -Od -D_DEBUG -RTC1
+CFLAGS = -I$(srcdir) -I. -GF -W3 -MDd -nologo -Zi -Od -D_DEBUG -RTC1
 !ELSE
-CFLAGS = -I. -GF -W3 -MD -nologo
+CFLAGS = -I$(srcdir) -I. -GF -W3 -MD -nologo
 !ENDIF
 
 COPY=copy
 MKDIR=mkdir
 MT=mt -nologo
 
+{$(srcdir)\}.c{}.obj::
+       $(CC) $(CFLAGS) /Fd.\ /c $<
+
 all: Mx.exe
 
 install: all
@@ -41,11 +45,12 @@
 
 MX_OBJS = Mx.obj Def.obj Form.obj Tok.obj Code.obj Display.obj \
          Print.obj Io.obj Sys.obj disclaimer.obj getopt.obj
+
 Mx.exe: $(MX_OBJS)
        $(CC) $(CFLAGS) /FeMx.exe $(MX_OBJS) /link /subsystem:console 
/NODEFAULTLIB:LIBC
        if exist [email protected] $(MT) -manifest [email protected] 
-outputresource:$@;1
 
 $(MX_OBJS): mx_config.h
 
-mx_config.h: winconfig.h
-       $(COPY) winconfig.h mx_config.h
+mx_config.h: $(srcdir)\winconfig.h
+       $(COPY) $(srcdir)\winconfig.h mx_config.h
diff -r 2b87cb9e7ac4 -r 0ace8e8c06fb buildtools/burg/Makefile.msc
--- a/buildtools/burg/Makefile.msc      Mon Sep 13 23:45:11 2010 +0200
+++ b/buildtools/burg/Makefile.msc      Wed Sep 15 15:37:33 2010 +0200
@@ -19,11 +19,12 @@
 
 prefix = ..\NT
 bindir = $(prefix)\bin
+srcdir = .
 
 !IFDEF DEBUG
-CFLAGS = -I. -GF -W3 -MDd -nologo -Zi -Od -D_DEBUG -RTC1
+CFLAGS = -I$(srcdir) -GF -W3 -MDd -nologo -Zi -Od -D_DEBUG -RTC1
 !ELSE
-CFLAGS = -I. -GF -W3 -MD -nologo
+CFLAGS = -I$(srcdir) -GF -W3 -MD -nologo
 !ENDIF
 
 MV=copy
@@ -36,6 +37,9 @@
 YACC=bison -b y -y
 YFLAGS=-d
 
+{$(srcdir)\}.c{}.obj::
+       $(CC) $(CFLAGS) /Fd.\ /c $<
+
 all: burg.exe
 
 install: all
@@ -54,18 +58,18 @@
        $(CC) $(CFLAGS) /Feburg.exe $(BURG_OBJS) /link /subsystem:console 
        if exist [email protected] $(MT) -manifest [email protected] 
-outputresource:$@;1
 
-burg_config.h: winconfig.h
-       copy winconfig.h burg_config.h
+burg_config.h: $(srcdir)\winconfig.h
+       copy $(srcdir)\winconfig.h burg_config.h
 
 $(BURG_OBJS): burg_config.h
 
 gram.obj: gram.c gram.h
 
-gram.h: gram.y
-       $(YACC) $(YFLAGS) gram.y
+gram.h: $(srcdir)\gram.y
+       $(YACC) $(YFLAGS) $(srcdir)\gram.y
        $(DEL) y.tab.c
        $(MV) y.tab.h gram.h
 
-gram.c: gram.y
-       $(YACC) $(YFLAGS) gram.y
+gram.c: $(srcdir)\gram.y
+       $(YACC) $(YFLAGS) $(srcdir)\gram.y
         $(FILTER) $(FILTERPREF)"    ;" y.tab.c > gram.c
diff -r 2b87cb9e7ac4 -r 0ace8e8c06fb buildtools/mel/Makefile.msc
--- a/buildtools/mel/Makefile.msc       Mon Sep 13 23:45:11 2010 +0200
+++ b/buildtools/mel/Makefile.msc       Wed Sep 15 15:37:33 2010 +0200
@@ -19,6 +19,7 @@
 
 prefix = ..\NT
 bindir = $(prefix)\bin
+srcdir = .
 
 MX = ..\Mx\Mx.exe
 !IFDEF DEBUG
@@ -65,10 +66,10 @@
        $(CC) $(CFLAGS) /Femel.exe $(MEL_OBJS) /link /subsystem:console 
/NODEFAULTLIB:LIBC
        if exist [email protected] $(MT) -manifest [email protected] 
-outputresource:$@;1
 
-mel_config.h: winconfig.h
-       copy winconfig.h mel_config.h
+mel_config.h: $(srcdir)\winconfig.h
+       copy $(srcdir)\winconfig.h mel_config.h
 
-unistd.h: Makefile.msc
+unistd.h: $(srcdir)\Makefile.msc
        $(ECHO) #ifndef UNISTD_H > unistd.h
        $(ECHO) #define UNISTD_H >> unistd.h
        $(ECHO) #include "io.h" >> unistd.h
@@ -77,86 +78,86 @@
 
 .SUFFIXES: .mx .cxx
 
-.mx.h:
+{$(srcdir)}.mx{}.h:
        $(MX) $(MXFLAGS) -x h $<
 
-.mx.c:
+{$(srcdir)}.mx{}.c:
        $(MX) $(MXFLAGS) -x c $<
 
-.mx.cxx:
+{$(srcdir)}.mx{}.cxx:
        $(MX) $(MXFLAGS) -x C $<
 
-.mx.y:
+{$(srcdir)}.mx{}.y:
        $(MX) $(MXFLAGS) -x y $<
 
-.mx.l:
+{$(srcdir)}.mx{}.l:
        $(MX) $(MXFLAGS) -x l $<
 
-.mx.yy:
+{$(srcdir)}.mx{}.yy:
        $(MX) $(MXFLAGS) -x Y $<
 
-.mx.ll:
+{$(srcdir)}.mx{}.ll:
        $(MX) $(MXFLAGS) -x L $<
 
 .cxx.obj:
        $(CXX) $(CXXFLAGS) $(INCLUDES) -c $<
 
-any_arg.cxx: any_arg.mx
-any_arg.h: any_arg.mx
+any_arg.cxx: $(srcdir)\any_arg.mx
+any_arg.h: $(srcdir)\any_arg.mx
 any_arg.obj: any_arg.cxx any_arg.h symbol.h list.h ListIterator.h type_arg.h 
language.h symtable.h module.h dependency.h atom.h ops.h atomops.h command.h 
mel.h FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h prelude.h epilogue.h mel_config.h
-atom_arg.cxx: atom_arg.mx
-atom_arg.h: atom_arg.mx
+atom_arg.cxx: $(srcdir)\atom_arg.mx
+atom_arg.h: $(srcdir)\atom_arg.mx
 atom_arg.obj: atom_arg.cxx atom_arg.h symbol.h list.h ListIterator.h atom.h 
ops.h type_arg.h language.h symtable.h module.h dependency.h atomops.h 
command.h mel.h FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-atom.cxx: atom.mx
-atom.h: atom.mx
+atom.cxx: $(srcdir)\atom.mx
+atom.h: $(srcdir)\atom.mx
 atom.obj: atom.cxx atom.h ops.h symbol.h list.h ListIterator.h type_arg.h 
language.h symtable.h module.h dependency.h atomops.h command.h mel.h 
FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-atomops.cxx: atomops.mx
-atomops.h: atomops.mx
+atomops.cxx: $(srcdir)\atomops.mx
+atomops.h: $(srcdir)\atomops.mx
 atomops.obj: atomops.cxx atomops.h ops.h symbol.h list.h ListIterator.h 
language.h symtable.h module.h dependency.h atom.h type_arg.h command.h mel.h 
FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-bat_arg.cxx: bat_arg.mx
-bat_arg.h: bat_arg.mx
+bat_arg.cxx: $(srcdir)\bat_arg.mx
+bat_arg.h: $(srcdir)\bat_arg.mx
 bat_arg.obj: bat_arg.cxx bat_arg.h symbol.h list.h ListIterator.h type_arg.h 
language.h symtable.h module.h dependency.h atom.h ops.h atomops.h command.h 
mel.h FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-builtin.cxx: builtin.mx
-builtin.h: builtin.mx
+builtin.cxx: $(srcdir)\builtin.mx
+builtin.h: $(srcdir)\builtin.mx
 builtin.obj: builtin.cxx builtin.h symbol.h list.h ListIterator.h language.h 
symtable.h module.h dependency.h atom.h ops.h type_arg.h atomops.h command.h 
mel.h FileInfo.h mel.tab.h operator.h iterator.h object.h atom_arg.h var_arg.h 
bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-command.cxx: command.mx
-command.h: command.mx
+command.cxx: $(srcdir)\command.mx
+command.h: $(srcdir)\command.mx
 command.obj: command.cxx command.h symbol.h list.h ListIterator.h mel.h 
symtable.h FileInfo.h ops.h atomops.h type_arg.h mel.tab.h language.h module.h 
dependency.h atom.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-debug.cxx: debug.mx
-debug.h: debug.mx
+debug.cxx: $(srcdir)\debug.mx
+debug.h: $(srcdir)\debug.mx
 debug.obj: debug.cxx debug.h language.h symbol.h list.h ListIterator.h 
symtable.h module.h dependency.h atom.h ops.h type_arg.h atomops.h command.h 
mel.h FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-depend.cxx: depend.mx
-dependency.cxx: dependency.mx
-dependency.h: dependency.mx
+depend.cxx: $(srcdir)\depend.mx
+dependency.cxx: $(srcdir)\dependency.mx
+dependency.h: $(srcdir)\dependency.mx
 dependency.obj: dependency.cxx dependency.h symbol.h list.h ListIterator.h 
language.h symtable.h module.h atom.h ops.h type_arg.h atomops.h command.h 
mel.h FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-depend.h: depend.mx
+depend.h: $(srcdir)\depend.mx
 depend.obj: depend.cxx depend.h language.h symbol.h list.h ListIterator.h 
symtable.h module.h dependency.h atom.h ops.h type_arg.h atomops.h command.h 
mel.h FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-epilogue.cxx: epilogue.mx
-epilogue.h: epilogue.mx
+epilogue.cxx: $(srcdir)\epilogue.mx
+epilogue.h: $(srcdir)\epilogue.mx
 epilogue.obj: epilogue.cxx epilogue.h symbol.h list.h ListIterator.h 
language.h symtable.h module.h dependency.h atom.h ops.h type_arg.h atomops.h 
command.h mel.h FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h 
atom_arg.h var_arg.h bat_arg.h any_arg.h prelude.h mel_config.h
-FileInfo.cxx: FileInfo.mx
-FileInfo.h: FileInfo.mx
+FileInfo.cxx: $(srcdir)\FileInfo.mx
+FileInfo.h: $(srcdir)\FileInfo.mx
 FileInfo.obj: FileInfo.cxx FileInfo.h list.h ListIterator.h language.h 
symbol.h symtable.h module.h dependency.h atom.h ops.h type_arg.h atomops.h 
command.h mel.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-glue.cxx: glue.mx
-glue.h: glue.mx
+glue.cxx: $(srcdir)\glue.mx
+glue.h: $(srcdir)\glue.mx
 glue.obj: glue.cxx glue.h language.h symbol.h list.h ListIterator.h symtable.h 
module.h dependency.h atom.h ops.h type_arg.h atomops.h command.h mel.h 
FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-html.cxx: html.mx
-html.h: html.mx
+html.cxx: $(srcdir)\html.mx
+html.h: $(srcdir)\html.mx
 html.obj: html.cxx html.h language.h symbol.h list.h ListIterator.h symtable.h 
module.h dependency.h atom.h ops.h type_arg.h atomops.h command.h mel.h 
FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-iterator.cxx: iterator.mx
-iterator.h: iterator.mx
+iterator.cxx: $(srcdir)\iterator.mx
+iterator.h: $(srcdir)\iterator.mx
 iterator.obj: iterator.cxx iterator.h command.h symbol.h list.h ListIterator.h 
mel.h symtable.h FileInfo.h ops.h atomops.h type_arg.h mel.tab.h language.h 
module.h dependency.h atom.h operator.h builtin.h object.h atom_arg.h var_arg.h 
bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-language.h: language.mx
-link.cxx: link.mx
-link.h: link.mx
+language.h: $(srcdir)\language.mx
+link.cxx: $(srcdir)\link.mx
+link.h: $(srcdir)\link.mx
 link.obj: link.cxx link.h language.h symbol.h list.h ListIterator.h symtable.h 
module.h dependency.h atom.h ops.h type_arg.h atomops.h command.h mel.h 
FileInfo.h mel.tab.h operator.h builtin.h iterator.h object.h atom_arg.h 
var_arg.h bat_arg.h any_arg.h prelude.h epilogue.h mel_config.h
-list.h: list.mx
-ListIterator.cxx: ListIterator.mx
-ListIterator.h: ListIterator.mx
+list.h: $(srcdir)\list.mx
+ListIterator.cxx: $(srcdir)\ListIterator.mx
+ListIterator.h: $(srcdir)\ListIterator.mx
 ListIterator.obj: ListIterator.cxx ListIterator.h
-mel.cxx: mel.mx
-mel.h: mel.mx
-mel.ll: mel.mx
+mel.cxx: $(srcdir)\mel.mx
+mel.h: $(srcdir)\mel.mx
+mel.ll: $(srcdir)\mel.mx
 mel.obj: mel.cxx mel.h symtable.h symbol.h list.h ListIterator.h FileInfo.h 
ops.h atomops.h type_arg.h mel.tab.h use.h language.h module.h dependency.h 
atom.h command.h operator.h builtin.h iterator.h object.h atom_arg.h var_arg.h 
bat_arg.h any_arg.h prelude.h epilogue.h link.h depend.h proto.h html.h glue.h 
mil.h mel_config.h
 mel.tab.cxx: mel.yy mel.h symtable.h symbol.h list.h ListIterator.h FileInfo.h 
ops.h atomops.h type_arg.h module.h dependency.h atom.h command.h mel.tab.h 
operator.h builtin.h iterator.h object.h atom_arg.h var_arg.h bat_arg.h 
any_arg.h prelude.h epilogue.h
        $(YACC) $(YFLAGS) "mel.yy"
@@ -174,40 +175,40 @@
 # if LEX is the Cygwin flex, it produces an extra \r which VS doesn't like
        -sed -i "s/\r//" "mel.yy.cxx"
 mel.yy.obj: mel.yy.cxx mel_config.h
-mel.yy: mel.mx
-mil.cxx: mil.mx
-mil.h: mil.mx
+mel.yy: $(srcdir)\mel.mx
+mil.cxx: $(srcdir)\mil.mx
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to