Jump to page: 1 2 3
Thread overview
Rebuild 0.1 released
Feb 06, 2007
Gregor Richards
Feb 06, 2007
Kirk McDonald
Feb 06, 2007
Bradley Smith
Feb 06, 2007
Kirk McDonald
Feb 06, 2007
Bradley Smith
Feb 06, 2007
Bradley Smith
Feb 06, 2007
Gregor Richards
Feb 06, 2007
Bradley Smith
Feb 06, 2007
Gregor Richards
Feb 06, 2007
Bradley Smith
Feb 06, 2007
Gregor Richards
Feb 06, 2007
John Reimer
Rebuild 0.2 released
Feb 06, 2007
Gregor Richards
Feb 06, 2007
Gregor Richards
Feb 06, 2007
Bradley Smith
Feb 06, 2007
Gregor Richards
Feb 06, 2007
Thomas Brix Larsen
Rebuild 0.3 released
Feb 06, 2007
Gregor Richards
Feb 06, 2007
Bill Baxter
Feb 06, 2007
Gregor Richards
Feb 08, 2007
Bill Baxter
Feb 08, 2007
Gregor Richards
Feb 07, 2007
Bradley Smith
Feb 07, 2007
Gregor Richards
Feb 07, 2007
kris
Rebuild 0.4 released
Feb 07, 2007
Gregor Richards
Feb 09, 2007
David Ferenczi
Feb 09, 2007
Gregor Richards
Feb 09, 2007
David Ferenczi
February 06, 2007
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
February 06, 2007
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
February 06, 2007
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.
February 06, 2007
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

February 06, 2007
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
February 06, 2007
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
February 06, 2007
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
February 06, 2007
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
February 06, 2007
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
February 06, 2007
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
« First   ‹ Prev
1 2 3