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