www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Rebuild 0.1 released

reply Gregor Richards <Richards codu.org> writes:
Rebuild is a recreation of build/bud. I'm not a politician, so I'm not 
going into why I wrote it.

It's based on the original DMD frontend, so it's in C++. Binaries are 
available for GNU/Linux and Windows. It should work on nearly any system 
that has a D compiler.

URL: http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards
Feb 05 2007
next sibling parent Kirk McDonald <kirklin.mcdonald gmail.com> writes:
Gregor Richards wrote:
 Rebuild is a recreation of build/bud. I'm not a politician, so I'm not 
 going into why I wrote it.
 
 It's based on the original DMD frontend, so it's in C++. Binaries are 
 available for GNU/Linux and Windows. It should work on nearly any system 
 that has a D compiler.
 
 URL: http://www.dsource.org/projects/dsss/wiki/Rebuild
 
  - Gregor Richards

Hooray for rebuild! Most notable is that rebuild outputs object file names as fully-qualified module names. -- Kirk McDonald Pyd: Wrapping Python with D http://pyd.dsource.org
Feb 05 2007
prev sibling next sibling parent Tomas Lindquist Olsen <tomas famolsen.dk> writes:
On Mon, 05 Feb 2007 17:39:39 -0800, Gregor Richards wrote:

 Rebuild is a recreation of build/bud. I'm not a politician, so I'm not
 going into why I wrote it.
 
 It's based on the original DMD frontend, so it's in C++. Binaries are
 available for GNU/Linux and Windows. It should work on nearly any system
 that has a D compiler.
 
 URL: http://www.dsource.org/projects/dsss/wiki/Rebuild
 
   - Gregor Richards

Great to see an official announcement. Rebuild solved all my bud issues on my amd64 gentoo system. Nice work.
Feb 05 2007
prev sibling next sibling parent reply Bradley Smith <user domain.invalid> writes:
Gregor Richards wrote:
 Rebuild is a recreation of build/bud. I'm not a politician, so I'm not 
 going into why I wrote it.
 
 It's based on the original DMD frontend, so it's in C++. Binaries are 
 available for GNU/Linux and Windows. It should work on nearly any system 
 that has a D compiler.
 
 URL: http://www.dsource.org/projects/dsss/wiki/Rebuild
 
  - Gregor Richards

How do I use rebuild to link in libraries? I've tried using -Spath with some.lib and the full path path\some.lib, but the library is never passed through to the link command. Thanks, Bradley
Feb 05 2007
next sibling parent reply Kirk McDonald <kirklin.mcdonald gmail.com> writes:
Bradley Smith wrote:
 Gregor Richards wrote:
 Rebuild is a recreation of build/bud. I'm not a politician, so I'm not 
 going into why I wrote it.

 It's based on the original DMD frontend, so it's in C++. Binaries are 
 available for GNU/Linux and Windows. It should work on nearly any 
 system that has a D compiler.

 URL: http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

How do I use rebuild to link in libraries? I've tried using -Spath with some.lib and the full path path\some.lib, but the library is never passed through to the link command. Thanks, Bradley

-S is for specifying a /path/, not a file. This is for supporting the pragma(link) feature. This is like pragma(lib), except you specify a sane part of the library name, and it figures out the actual .lib filename. (And it does the Right Thing on Linux, too.) To explicitly specify a .lib file, use -L. -- Kirk McDonald Pyd: Wrapping Python with D http://pyd.dsource.org
Feb 05 2007
parent Bradley Smith <user domain.invalid> writes:
Kirk McDonald wrote:
 Bradley Smith wrote:
 How do I use rebuild to link in libraries?

 I've tried using -Spath with some.lib and the full path path\some.lib, 
 but the library is never passed through to the link command.

 Thanks,
   Bradley

-S is for specifying a /path/, not a file. This is for supporting the pragma(link) feature. This is like pragma(lib), except you specify a sane part of the library name, and it figures out the actual .lib filename. (And it does the Right Thing on Linux, too.) To explicitly specify a .lib file, use -L.

How do you use -L to link in the library? Here is the DMD command I'm trying to convert to rebuild. dmd gld.lib ..\gl\opengl32.lib ..\gl\glu32.lib ..\win32\win32.lib ..\win32\gdi32.lib ..\win32\winmm.lib -version=WindowsXP -Isource -I..\gl\imports -I..\win32\imports -Iimports -oftriangle.exe -L-L/exet:nt/su:windows:4.0 source\examples\triangle.d When I simply replace dmd with rebuild -v, it prints the link message below, which doesn't contain any of the libs. rebuild -v gld.lib ..\gl\opengl32.lib ..\gl\glu32.lib ..\win32\win32.lib ..\win32\gdi32.lib ..\win32\winmm.lib -version=WindowsXP -Isource -I..\gl\imports -I..\win32\imports -Iimports -oftriangle.exe -L-L/exet:nt/su:windows:4.0 source\examples\triangle.d link dmd .\triangle.obj .\gld.obj .\gld_-internal.obj .\gld_-win32-platform.obj .\gld_-win32-window.obj .\gld_-enable.obj .\gld_-win32-fullscreen.obj .\gld_-win32-enable.obj .\gld_-win32-init.obj .\gld_-win32-time.obj .\gld_-win32-glext.obj .\gld_-win32-thread.obj .\gld_-win32-joystick.obj .\gld_-glext.obj .\gld_-image.obj .\gld_-stream.obj .\gld_-window.obj .\gld_-tga.obj .\gld_-thread.obj -oftriangle.exe -L-L/exet:nt/su:windows:4.0 If I use -L on the first library "gld.lib", it produces an link error "OPTLINK : Warning 9: Unknown Option : NOIGLD.LIB" rebuild -v -Lgld.lib ..\gl\opengl32.lib ..\gl\glu32.lib ..\win32\win32.lib ..\win32\gdi32.lib ..\win32\winmm.lib -version=WindowsXP -Isource -I..\gl\imports -I..\win32\imports -Iimports -oftriangle.exe -L-L/exet:nt/su:windows:4.0 source\examples\triangle.d link dmd .\triangle.obj .\gld.obj .\gld_-internal.obj .\gld_-win32-platform.obj .\gld_-win32-window.obj .\gld_-enable.obj .\gld_-win32-fullscreen.obj .\gld_-win32-enable.obj .\gld_-win32-init.obj .\gld_-win32-time.obj .\gld_-win32-glext.obj .\gld_-win32-thread.obj .\gld_-win32-joystick.obj .\gld_-glext.obj .\gld_-image.obj .\gld_-stream.obj .\gld_-window.obj .\gld_-tga.obj .\gld_-thread.obj -oftriangle.exe -Lgld.lib -L-L/exet:nt/su:windows:4.0 Thanks, Bradley
Feb 05 2007
prev sibling parent reply Bradley Smith <user domain.invalid> writes:
Bradley Smith wrote:
 Gregor Richards wrote:
 Rebuild is a recreation of build/bud. I'm not a politician, so I'm not 
 going into why I wrote it.

 It's based on the original DMD frontend, so it's in C++. Binaries are 
 available for GNU/Linux and Windows. It should work on nearly any 
 system that has a D compiler.

 URL: http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

How do I use rebuild to link in libraries? I've tried using -Spath with some.lib and the full path path\some.lib, but the library is never passed through to the link command. Thanks, Bradley

Is something missing from the rebuild-0.1.zip? In mars.c, the lib files appear to be put in global.params.libfiles, but I can't find anywhere that the information in global.params.libfiles is used. Thanks, Bradley
Feb 05 2007
parent reply Gregor Richards <Richards codu.org> writes:
Bradley Smith wrote:
 Bradley Smith wrote:
 
 Gregor Richards wrote:

 Rebuild is a recreation of build/bud. I'm not a politician, so I'm 
 not going into why I wrote it.

 It's based on the original DMD frontend, so it's in C++. Binaries are 
 available for GNU/Linux and Windows. It should work on nearly any 
 system that has a D compiler.

 URL: http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

How do I use rebuild to link in libraries? I've tried using -Spath with some.lib and the full path path\some.lib, but the library is never passed through to the link command. Thanks, Bradley

Is something missing from the rebuild-0.1.zip? In mars.c, the lib files appear to be put in global.params.libfiles, but I can't find anywhere that the information in global.params.libfiles is used. Thanks, Bradley

That's just leftover from DMD. Getting libs linked in just involves passing them into the linker. For every library, you need to add -L<library_name> . I'm going to add a better flag for that. - Gregor Richards
Feb 05 2007
parent reply Bradley Smith <user domain.invalid> writes:
Gregor Richards wrote:
 Bradley Smith wrote:
 Bradley Smith wrote:

 Gregor Richards wrote:

 Rebuild is a recreation of build/bud. I'm not a politician, so I'm 
 not going into why I wrote it.

 It's based on the original DMD frontend, so it's in C++. Binaries 
 are available for GNU/Linux and Windows. It should work on nearly 
 any system that has a D compiler.

 URL: http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

How do I use rebuild to link in libraries? I've tried using -Spath with some.lib and the full path path\some.lib, but the library is never passed through to the link command. Thanks, Bradley

Is something missing from the rebuild-0.1.zip? In mars.c, the lib files appear to be put in global.params.libfiles, but I can't find anywhere that the information in global.params.libfiles is used. Thanks, Bradley

That's just leftover from DMD. Getting libs linked in just involves passing them into the linker. For every library, you need to add -L<library_name> . I'm going to add a better flag for that. - Gregor Richards

How do you use -L to link in the library? Here is the DMD command I'm trying to convert to rebuild. dmd gld.lib ..\gl\opengl32.lib ..\gl\glu32.lib ..\win32\win32.lib ..\win32\gdi32.lib ..\win32\winmm.lib -version=WindowsXP -Isource -I..\gl\imports -I..\win32\imports -Iimports -oftriangle.exe -L-L/exet:nt/su:windows:4.0 source\examples\triangle.d When I simply replace dmd with rebuild -v, it prints the link message below, which doesn't contain any of the libs. rebuild -v gld.lib ..\gl\opengl32.lib ..\gl\glu32.lib ..\win32\win32.lib ..\win32\gdi32.lib ..\win32\winmm.lib -version=WindowsXP -Isource -I..\gl\imports -I..\win32\imports -Iimports -oftriangle.exe -L-L/exet:nt/su:windows:4.0 source\examples\triangle.d link dmd .\triangle.obj .\gld.obj .\gld_-internal.obj .\gld_-win32-platform.obj .\gld_-win32-window.obj .\gld_-enable.obj .\gld_-win32-fullscreen.obj .\gld_-win32-enable.obj .\gld_-win32-init.obj .\gld_-win32-time.obj .\gld_-win32-glext.obj .\gld_-win32-thread.obj .\gld_-win32-joystick.obj .\gld_-glext.obj .\gld_-image.obj .\gld_-stream.obj .\gld_-window.obj .\gld_-tga.obj .\gld_-thread.obj -oftriangle.exe -L-L/exet:nt/su:windows:4.0 If I use -L on the first library "gld.lib", it produces an link error "OPTLINK : Warning 9: Unknown Option : NOIGLD.LIB" rebuild -v -Lgld.lib ..\gl\opengl32.lib ..\gl\glu32.lib ..\win32\win32.lib ..\win32\gdi32.lib ..\win32\winmm.lib -version=WindowsXP -Isource -I..\gl\imports -I..\win32\imports -Iimports -oftriangle.exe -L-L/exet:nt/su:windows:4.0 source\examples\triangle.d link dmd .\triangle.obj .\gld.obj .\gld_-internal.obj .\gld_-win32-platform.obj .\gld_-win32-window.obj .\gld_-enable.obj .\gld_-win32-fullscreen.obj .\gld_-win32-enable.obj .\gld_-win32-init.obj .\gld_-win32-time.obj .\gld_-win32-glext.obj .\gld_-win32-thread.obj .\gld_-win32-joystick.obj .\gld_-glext.obj .\gld_-image.obj .\gld_-stream.obj .\gld_-window.obj .\gld_-tga.obj .\gld_-thread.obj -oftriangle.exe -Lgld.lib -L-L/exet:nt/su:windows:4.0 I would recommend making it work as similar as DMD as possible. With DMD, I just list the libraries along with the source and object files. Thanks, Bradley
Feb 06 2007
parent reply Gregor Richards <Richards codu.org> writes:
Bradley Smith wrote:
 I would recommend making it work as similar as DMD as possible. With 
 DMD, I just list the libraries along with the source and object files.
 

The idea was to make it as close to DMD as possible. I didn't realize people were linking libraries like this. - Gregor Richards PS: Rebuild 0.3 will allow this. It still unsettles me though.
Feb 06 2007
parent reply Bradley Smith <user domain.invalid> writes:
Gregor Richards wrote:
 Bradley Smith wrote:
 I would recommend making it work as similar as DMD as possible. With 
 DMD, I just list the libraries along with the source and object files.

The idea was to make it as close to DMD as possible. I didn't realize people were linking libraries like this. - Gregor Richards PS: Rebuild 0.3 will allow this. It still unsettles me though.

Why is it unsettling? I'm just curious. I don't have a significant preference either way. I'll use whatever works. Thanks, Bradley
Feb 06 2007
parent Gregor Richards <Richards codu.org> writes:
Bradley Smith wrote:
 Gregor Richards wrote:
 
 Bradley Smith wrote:

 I would recommend making it work as similar as DMD as possible. With 
 DMD, I just list the libraries along with the source and object files.

The idea was to make it as close to DMD as possible. I didn't realize people were linking libraries like this. - Gregor Richards PS: Rebuild 0.3 will allow this. It still unsettles me though.

Why is it unsettling? I'm just curious. I don't have a significant preference either way. I'll use whatever works. Thanks, Bradley

It's just unportable is all *shrugs* I suppose it doesn't really matter :) - Gregor Richards
Feb 06 2007
prev sibling next sibling parent John Reimer <Terminal.Node gmail.com> writes:
Very well done.  I've been testing this out and it's working
exceptionally well with dmd/win32, gdc/linux(x86), and dmd/linux
(x86), and it's very easy to switch between compilers at any point
with just one rebuild binary.  Next, I'll bet testing it out on gdc-
mingw/win32.

By far the best option yet is the "-oq<dir>" (incidentally -oq is
actually the default setting now).  "-oq" tells rebuild to output
object files with fully qualified names: if you have a source file
named uberkit/tools/string.d, the object file will be called

uberkit-tools-string.obj (on win32) and
uberkit.tools.string.o (on linux).

This helps prevent a number of problems with conflicts.

That's just incredibly marvelous :) and something D should have
been doing long ago... no more object name conflicts, thank you
very much.

Having the D frontend in there is a big bonus as well.

Great job, Gregor!

-JJR
Feb 05 2007
prev sibling next sibling parent reply Gregor Richards <Richards codu.org> writes:
Gregor Richards wrote:
 Rebuild is a recreation of build/bud. I'm not a politician, so I'm not 
 going into why I wrote it.
 
 It's based on the original DMD frontend, so it's in C++. Binaries are 
 available for GNU/Linux and Windows. It should work on nearly any system 
 that has a D compiler.
 
 URL: http://www.dsource.org/projects/dsss/wiki/Rebuild
 
  - Gregor Richards

Rebuild 0.2 released. http://www.dsource.org/projects/dsss/wiki/Rebuild Rebuild 0.2 adds easier linking to libraries with the -ll flag. For example: rebuild something.d -llncurses -llm (-ll stands for "link library") - Gregor Richards
Feb 05 2007
next sibling parent Gregor Richards <Richards codu.org> writes:
Forgot to mention: Rebuild 0.2 has been updated to DMD frontend 1.005

  - Gregor Richards
Feb 05 2007
prev sibling next sibling parent reply Bradley Smith <user domain.invalid> writes:
Gregor Richards wrote:
 Gregor Richards wrote:
 Rebuild is a recreation of build/bud. I'm not a politician, so I'm not 
 going into why I wrote it.

 It's based on the original DMD frontend, so it's in C++. Binaries are 
 available for GNU/Linux and Windows. It should work on nearly any 
 system that has a D compiler.

 URL: http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

Rebuild 0.2 released. http://www.dsource.org/projects/dsss/wiki/Rebuild Rebuild 0.2 adds easier linking to libraries with the -ll flag. For example: rebuild something.d -llncurses -llm (-ll stands for "link library") - Gregor Richards

When I use -ll, I get and unrecognized switch error. C:\gld>rebuild -llgld -llopengl32 -llglu32 -llwin32 -llgdi32 -llwinmm -version=WindowsXP -Isource -I..\gl\imports -I..\win32\imports -Iimports -oftriangle.exe -L-L/exet:nt/su:windows:4.0 source\examples\triangle.d Error: unrecognized switch '-llgld' Error: unrecognized switch '-llgld' C:\gld>rebuild ReBuild version 0.2 (based on DMD 1.005) ... Thanks, Bradley
Feb 06 2007
parent Gregor Richards <Richards codu.org> writes:
Bradley Smith wrote:
 When I use -ll, I get and unrecognized switch error.
 
 C:\gld>rebuild -llgld -llopengl32 -llglu32 -llwin32 -llgdi32 -llwinmm 
 -version=WindowsXP -Isource -I..\gl\imports -I..\win32\imports -Iimports 
 -oftriangle.exe -L-L/exet:nt/su:windows:4.0 source\examples\triangle.d
 Error: unrecognized switch '-llgld'
 Error: unrecognized switch '-llgld'
 
 C:\gld>rebuild
 ReBuild version 0.2 (based on DMD 1.005)
 ...
 
 Thanks,
   Bradley

Argh, really stupid bug - I'll fix that later today. - Gregor Richards
Feb 06 2007
prev sibling parent Thomas Brix Larsen <brix brix-verden.dk> writes:
Gregor Richards wrote:

 Rebuild 0.2 released. http://www.dsource.org/projects/dsss/wiki/Rebuild
 
 Rebuild 0.2 adds easier linking to libraries with the -ll flag. For
 example:
 
 rebuild something.d -llncurses -llm
 
 (-ll stands for "link library")
 
   - Gregor Richards

It seems rebuild doesn't respect/parse versions. From derelictGL: version(Windows) import derelict.opengl.wgl; else version(linux) version = UsingGLX; version(UsingGLX) import derelict.opengl.glx; Rebuild doesn't compile derelict.opengl.glx, which it should on my machine. If I comment version(UsingGLX) out, rebuild compiles the import just fine. - Brix
Feb 06 2007
prev sibling next sibling parent reply Gregor Richards <Richards codu.org> writes:
Fixed some bugs introduced in rebuild 0.2, and also fixed support for 
'version=' statements.

http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards
Feb 06 2007
next sibling parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
Gregor Richards wrote:
 Fixed some bugs introduced in rebuild 0.2, and also fixed support for 
 'version=' statements.
 
 http://www.dsource.org/projects/dsss/wiki/Rebuild
 
  - Gregor Richards

Two questions: Does rebuild support environment variables in a build file? Like -I$(DMDDIR)/dmd/import Is there some way to read commands from build files other than the ' file' syntax? Like '-f filename' for example. --bb
Feb 06 2007
parent reply Gregor Richards <Richards codu.org> writes:
Bill Baxter wrote:
 Gregor Richards wrote:
 
 Fixed some bugs introduced in rebuild 0.2, and also fixed support for 
 'version=' statements.

 http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

Two questions: Does rebuild support environment variables in a build file? Like -I$(DMDDIR)/dmd/import Is there some way to read commands from build files other than the ' file' syntax? Like '-f filename' for example. --bb

Rebuild does not, at present, support response files. I don't find them particularly useful, since simply making a .bat or .sh and putting 'rebuild' at the beginning suffices for a more powerful method with negligible learning curve. I suppose if there is demand, I will add support. My personal distaste for them shouldn't be the be-all end-all. - Gregor Richards
Feb 06 2007
parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
Gregor Richards wrote:
 Bill Baxter wrote:
 Gregor Richards wrote:

 Fixed some bugs introduced in rebuild 0.2, and also fixed support for 
 'version=' statements.

 http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

Two questions: Does rebuild support environment variables in a build file? Like -I$(DMDDIR)/dmd/import Is there some way to read commands from build files other than the ' file' syntax? Like '-f filename' for example. --bb

Rebuild does not, at present, support response files. I don't find them particularly useful, since simply making a .bat or .sh and putting 'rebuild' at the beginning suffices for a more powerful method with negligible learning curve.

Ok I guess I misunderstood the help message then. What does this mean? f:\>rebuild ReBuild version 0.2 (based on DMD 1.005) Copyright (c) 1999-2007 by Digital Mars and Gregor Richards, written by Walter Bright and Gregor Richards Documentation: www.digitalmars.com/d/index.html Usage: rebuild files.d ... { -switch } files.d D source files cmdfile read arguments from cmdfile ... specifically the " cmdfile" part.
 I suppose if there is demand, I will add support. My personal distaste 
 for them shouldn't be the be-all end-all.

Well the problem with making a .bat or .sh is that it is platform specific. I don't care if it's a 'response file' or just some configuration file in some other format that looks different from command line options. But I do find the ability to put a build config in a file to be very useful. And I do find the file syntax, where some particular suffix is implied, to be kind of annoying, because tab completion in most any shell completes whole filenames not partial ones. That's why I'd prefer a "-f filename" syntax. *With* the space in between -f and filename if possible. --bb
Feb 08 2007
parent Gregor Richards <Richards codu.org> writes:
Bill Baxter wrote:
 Gregor Richards wrote:
 Bill Baxter wrote:
 Gregor Richards wrote:

 Fixed some bugs introduced in rebuild 0.2, and also fixed support 
 for 'version=' statements.

 http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

Two questions: Does rebuild support environment variables in a build file? Like -I$(DMDDIR)/dmd/import Is there some way to read commands from build files other than the ' file' syntax? Like '-f filename' for example. --bb

Rebuild does not, at present, support response files. I don't find them particularly useful, since simply making a .bat or .sh and putting 'rebuild' at the beginning suffices for a more powerful method with negligible learning curve.

Ok I guess I misunderstood the help message then. What does this mean? f:\>rebuild ReBuild version 0.2 (based on DMD 1.005) Copyright (c) 1999-2007 by Digital Mars and Gregor Richards, written by Walter Bright and Gregor Richards Documentation: www.digitalmars.com/d/index.html Usage: rebuild files.d ... { -switch } files.d D source files cmdfile read arguments from cmdfile ... specifically the " cmdfile" part.

Bloody ... wtf ... mars.c is a bit weird: printf("\ Documentation: www.digitalmars.com/d/index.html\n\ Usage:\n\ rebuild files.d ... { -switch }\n\ \n\ files.d D source files\n%s\ ... ", #if WIN32 " cmdfile read arguments from cmdfile\n" #else "" #endif ); That "#if WIN32" should be "#if __DMC__", since it later reads the response file with a DMC-specific feature. That shouldn't be there, and indeed isn't there on Posix X_X
 
 I suppose if there is demand, I will add support. My personal distaste 
 for them shouldn't be the be-all end-all.

Well the problem with making a .bat or .sh is that it is platform specific. I don't care if it's a 'response file' or just some configuration file in some other format that looks different from command line options. But I do find the ability to put a build config in a file to be very useful. And I do find the file syntax, where some particular suffix is implied, to be kind of annoying, because tab completion in most any shell completes whole filenames not partial ones. That's why I'd prefer a "-f filename" syntax. *With* the space in between -f and filename if possible. --bb

I'll add a flag. It probably won't be -f, that's just a bit too generic for my taste ;) - Gregor Richards
Feb 08 2007
prev sibling parent reply Bradley Smith <user domain.invalid> writes:
Gregor Richards wrote:
 Fixed some bugs introduced in rebuild 0.2, and also fixed support for 
 'version=' statements.
 
 http://www.dsource.org/projects/dsss/wiki/Rebuild
 
  - Gregor Richards

rebuild does not appear to be checking the date an exe to determine if linking is necessary. Here is a transcript. C:\>dir hello.* /OD ... 02/06/2007 07:02 PM 106,524 hello.exe 02/06/2007 07:02 PM 2,390 hello.map 02/06/2007 07:04 PM 61 hello.d 02/06/2007 07:11 PM 701 hello.obj ... C:\>rebuild -v hello.d ... compile dmd -c hello.d -Ic:\dmd\bin\..\src\phobos -od. no link necessary C:\>rebuild ReBuild version 0.3 (based on DMD 1.005) ... Thanks, Bradley
Feb 06 2007
parent reply Gregor Richards <Richards codu.org> writes:
Bradley Smith wrote:
 Gregor Richards wrote:
 
 Fixed some bugs introduced in rebuild 0.2, and also fixed support for 
 'version=' statements.

 http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

rebuild does not appear to be checking the date an exe to determine if linking is necessary. Here is a transcript. C:\>dir hello.* /OD ... 02/06/2007 07:02 PM 106,524 hello.exe 02/06/2007 07:02 PM 2,390 hello.map 02/06/2007 07:04 PM 61 hello.d 02/06/2007 07:11 PM 701 hello.obj ... C:\>rebuild -v hello.d ... compile dmd -c hello.d -Ic:\dmd\bin\..\src\phobos -od. no link necessary C:\>rebuild ReBuild version 0.3 (based on DMD 1.005) ... Thanks, Bradley

Rebuild checks all of the dates whenever it compiles ... For the moment just use -full. I'm not sure why this is happening but I'll try to replicate and eradicate. It may be Windows-related. - Gregor Richards
Feb 06 2007
parent kris <foo bar.com> writes:
Gregor Richards wrote:
 Bradley Smith wrote:
 
 Gregor Richards wrote:

 Fixed some bugs introduced in rebuild 0.2, and also fixed support for 
 'version=' statements.

 http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

rebuild does not appear to be checking the date an exe to determine if linking is necessary. Here is a transcript. C:\>dir hello.* /OD ... 02/06/2007 07:02 PM 106,524 hello.exe 02/06/2007 07:02 PM 2,390 hello.map 02/06/2007 07:04 PM 61 hello.d 02/06/2007 07:11 PM 701 hello.obj ... C:\>rebuild -v hello.d ... compile dmd -c hello.d -Ic:\dmd\bin\..\src\phobos -od. no link necessary C:\>rebuild ReBuild version 0.3 (based on DMD 1.005) ... Thanks, Bradley

Rebuild checks all of the dates whenever it compiles ... For the moment just use -full. I'm not sure why this is happening but I'll try to replicate and eradicate. It may be Windows-related. - Gregor Richards

This may help? http://msdn2.microsoft.com/en-us/library/ms724290.aspx The timestamps on Win32 are perhaps not the most accurate :)
Feb 06 2007
prev sibling parent reply Gregor Richards <Richards codu.org> writes:
Fixed some issues with timestamps (Re Bradley Smith).

http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

(Ah, the young project, with the fast release cycle)
Feb 06 2007
parent reply David Ferenczi <raggae ferenczi.net> writes:
Thank you for the great tool, it works much better than bud.

The only thing I couldn't get to work is the documentation generation with
candydoc. 

The command

-------------8<---------------------------------------
dmd <list_of_my_source_files>
    -Dd<path_to_my_documentation>
    <path_to_my_documentation>/candydoc/candy.ddoc
    <path_to_my_documentation>/candydoc/modules.ddoc
-------------8<---------------------------------------

generates source documentation with candydoc, but the command

-------------8<---------------------------------------
rebuild <my_entry_point_source_file>
    -Dd<path_to_my_documentation>
    <path_to_my_documentation>/candydoc/candy.ddoc
    <path_to_my_documentation>/candydoc/modules.ddoc
-------------8<---------------------------------------

generates the source documentation without candydoc. Presumably the extra
parameters for candydoc are neglected.


Regards,
David


Gregor Richards wrote:

 Fixed some issues with timestamps (Re Bradley Smith).
 
 http://www.dsource.org/projects/dsss/wiki/Rebuild
 
   - Gregor Richards
 
 (Ah, the young project, with the fast release cycle)

Feb 09 2007
parent reply Gregor Richards <Richards codu.org> writes:
David Ferenczi wrote:
 Gregor Richards wrote:
 
 
Fixed some issues with timestamps (Re Bradley Smith).

http://www.dsource.org/projects/dsss/wiki/Rebuild

  - Gregor Richards

(Ah, the young project, with the fast release cycle)

Thank you for the great tool, it works much better than bud. The only thing I couldn't get to work is the documentation generation with candydoc. The command -------------8<--------------------------------------- dmd <list_of_my_source_files> -Dd<path_to_my_documentation> <path_to_my_documentation>/candydoc/candy.ddoc <path_to_my_documentation>/candydoc/modules.ddoc -------------8<--------------------------------------- generates source documentation with candydoc, but the command -------------8<--------------------------------------- rebuild <my_entry_point_source_file> -Dd<path_to_my_documentation> <path_to_my_documentation>/candydoc/candy.ddoc <path_to_my_documentation>/candydoc/modules.ddoc -------------8<--------------------------------------- generates the source documentation without candydoc. Presumably the extra parameters for candydoc are neglected. Regards, David

You are correct, those parameters (anything named .ddoc, actually) end up ignored. I'm fixing this in subversion, the next release should not have that issue. Thanks for the bug report :) - Gregor Richards
Feb 09 2007
parent David Ferenczi <raggae ferenczi.net> writes:
Many thanks!

Gregor Richards wrote:
 You are correct, those parameters (anything named .ddoc, actually) end
 up ignored. I'm fixing this in subversion, the next release should not
 have that issue.
 
 Thanks for the bug report :)
 
   - Gregor Richards

Feb 09 2007