www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Still cannot build Phobos from git

reply Andre Tampubolon <andre lc.vlsm.org> writes:
I still cannot build Phobos from git properly :(

I tried to edit the win32.mak, changed the DFLAGS part into this:
DFLAGS=-O -release -nofloat -w -d -I% P%\..\druntime\src\ -I% P%\..
druntime\import\

Issuing "make -f win32.mak DRUNTIME=\druntime\lib", the output was:
dmd -c -O -release -nofloat -w -d -I% P%\..\druntime\src\
-I% P%\..\druntime\import  etc\c\zlib
.d -ofCzlib.obj
DMD v2.055 DEBUG
object.d: Error: module object is in file 'object.d' which cannot be read
import path[0] = % P%\..\druntime\src\
import path[1] = % P%\..\druntime\import

--- errorlevel 1


Now I'm totally confused. Maybe someone would like to write a tutorial
on how to build the latest DMD from git?
Jul 26 2011
next sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Andre Tampubolon" <andre lc.vlsm.org> wrote in message 
news:j0mvqc$115g$1 digitalmars.com...
I still cannot build Phobos from git properly :(

 I tried to edit the win32.mak, changed the DFLAGS part into this:
 DFLAGS=-O -release -nofloat -w -d -I% P%\..\druntime\src\ -I% P%\..
 druntime\import\

 Issuing "make -f win32.mak DRUNTIME=\druntime\lib", the output was:
 dmd -c -O -release -nofloat -w -d -I% P%\..\druntime\src\
 -I% P%\..\druntime\import  etc\c\zlib
 .d -ofCzlib.obj
 DMD v2.055 DEBUG
 object.d: Error: module object is in file 'object.d' which cannot be read
 import path[0] = % P%\..\druntime\src\
 import path[1] = % P%\..\druntime\import

 --- errorlevel 1


 Now I'm totally confused. Maybe someone would like to write a tutorial
 on how to build the latest DMD from git?

I'm going to write an automated way to do it. Probably put it into DVM if Jacob feels that'd be appropriate. But here's the notes I have so far (short answer: you're probably missing sc.ini and all the .libs, those files aren't included in git for some reason): ----------------------------------------- [Make sure DMC is installed and on the PATH]
git clone https://github.com/D-Programming-Language/dmd.git
git clone https://github.com/D-Programming-Language/druntime.git
git clone https://github.com/D-Programming-Language/phobos.git
mkdir dmd\bin
mkdir dmd\lib
copy {lib directory of latest official dmd release}\*.lib dmd\lib
del dmd\lib\phobos.lib
copy {bin directory of latest official dmd release}\sc.ini dmd\bin

[Edit dmd\bin\sc.ini and find/replace "% P%\..\src" with "% P%\..\.."] [Edit dmd\src\win32.mak and change "CC=\dm\bin\dmc" to "CC=dmc"]
cd dmd\src
make -fwin32.mak

make -fwin32.mak release
cd ..\..
copy dmd\src\dmd.exe dmd\bin

set PATH={current_dir}\dmd\bin;%PATH%
cd druntime
make -fwin32.mak
cd ..

cd phobos
make -fwin32.mak DRUNTIME=..\druntime\lib
cd ..
copy phobos\phobos.lib dmd\lib

Jul 26 2011
next sibling parent reply "Vladimir Panteleev" <vladimir thecybershadow.net> writes:
On Tue, 26 Jul 2011 22:22:26 +0300, Nick Sabalausky <a a.a> wrote:

 I'm going to write an automated way to do it. Probably put it into DVM if
 Jacob feels that'd be appropriate.

I was halfway into writing a batch file which takes care of everything, but a cross-platform solution would probably be better, so I'll stop working on mine for now. -- Best regards, Vladimir mailto:vladimir thecybershadow.net
Jul 26 2011
parent "Nick Sabalausky" <a a.a> writes:
"Vladimir Panteleev" <vladimir thecybershadow.net> wrote in message 
news:op.vy8rm6wwtuzx1w cybershadow.mshome.net...
 On Tue, 26 Jul 2011 22:22:26 +0300, Nick Sabalausky <a a.a> wrote:

 I'm going to write an automated way to do it. Probably put it into DVM if
 Jacob feels that'd be appropriate.

I was halfway into writing a batch file which takes care of everything, but a cross-platform solution would probably be better, so I'll stop working on mine for now.

A batch file would be difficult! I don't know how you'd patch sc.ini and dmd\src\win32.mak (Well, unless you required GNU patch to be installed).
Jul 26 2011
prev sibling next sibling parent "Vladimir Panteleev" <vladimir thecybershadow.net> writes:
On Tue, 26 Jul 2011 22:44:44 +0300, Nick Sabalausky <a a.a> wrote:

 "Vladimir Panteleev" <vladimir thecybershadow.net> wrote in message
 news:op.vy8rm6wwtuzx1w cybershadow.mshome.net...
 On Tue, 26 Jul 2011 22:22:26 +0300, Nick Sabalausky <a a.a> wrote:

 I'm going to write an automated way to do it. Probably put it into DVM  
 if
 Jacob feels that'd be appropriate.

I was halfway into writing a batch file which takes care of everything, but a cross-platform solution would probably be better, so I'll stop working on mine for now.

A batch file would be difficult! I don't know how you'd patch sc.ini and dmd\src\win32.mak (Well, unless you required GNU patch to be installed).

My idea is to create and maintain a new DMD installation from scratch, so it's not a problem. -- Best regards, Vladimir mailto:vladimir thecybershadow.net
Jul 26 2011
prev sibling next sibling parent reply "Jonathan M Davis" <jmdavisProg gmx.com> writes:
 git clone https://github.com/D-Programming-Language/dmd.git
 git clone https://github.com/D-Programming-Language/druntime.git
 git clone https://github.com/D-Programming-Language/phobos.git
 
 cd druntime
 make -f win32.mak
 cd..
 
 cd phobos
 make -f win32.mak
 cd..
 
 cd dmd\src
 make -f win32.mak
 
 Of course this doesn't copy everything in the right places. But it
 does work for me.

As Nick points out, you also have to have an sc.ini in the right place with the right values and probably some other stuff that comes in the zip file but isn't in git for whatever reason. But I haven't dealt with all of that in Windows recently, so I don't remember the details. It's easier in Linux from what I recall, but regardless, once it's set up all you have to do is update the repositories and rebuild, and it works (though in Windows, you'll probably have to copy the resultant dmd binary due to the lack of symlinks). The situation with git should probably be improved though such that you can build the whole chain with just what git gives you. - Jonathan M Davis
Jul 26 2011
next sibling parent "Nick Sabalausky" <a a.a> writes:
"Jonathan M Davis" <jmdavisProg gmx.com> wrote in message 
news:mailman.1924.1311711069.14074.digitalmars-d puremagic.com...
 The
 situation with git should probably be improved though such that you can 
 build
 the whole chain with just what git gives you.

http://d.puremagic.com/issues/show_bug.cgi?id=6371
Jul 26 2011
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2011-07-26 22:10, Jonathan M Davis wrote:
 git clone https://github.com/D-Programming-Language/dmd.git
 git clone https://github.com/D-Programming-Language/druntime.git
 git clone https://github.com/D-Programming-Language/phobos.git

 cd druntime
 make -f win32.mak
 cd..

 cd phobos
 make -f win32.mak
 cd..

 cd dmd\src
 make -f win32.mak

 Of course this doesn't copy everything in the right places. But it
 does work for me.

As Nick points out, you also have to have an sc.ini in the right place with the right values and probably some other stuff that comes in the zip file but isn't in git for whatever reason. But I haven't dealt with all of that in Windows recently, so I don't remember the details. It's easier in Linux from what I recall, but regardless, once it's set up all you have to do is update the repositories and rebuild, and it works (though in Windows, you'll probably have to copy the resultant dmd binary due to the lack of symlinks). The situation with git should probably be improved though such that you can build the whole chain with just what git gives you. - Jonathan M Davis

I think someone mentioned that github supports some kind of wrapper projects/repositories. When you clone it, it will clone all the repositories it wraps. No need to figure out where to clone a given repository in your system. Then you can have a build script in the wrapper repository that builds everything and sets up a dmd.conf/sc.ini. -- /Jacob Carlborg
Jul 26 2011
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2011-07-26 21:22, Nick Sabalausky wrote:
 "Andre Tampubolon"<andre lc.vlsm.org>  wrote in message
 news:j0mvqc$115g$1 digitalmars.com...
 I still cannot build Phobos from git properly :(

 I tried to edit the win32.mak, changed the DFLAGS part into this:
 DFLAGS=-O -release -nofloat -w -d -I% P%\..\druntime\src\ -I% P%\..
 druntime\import\

 Issuing "make -f win32.mak DRUNTIME=\druntime\lib", the output was:
 dmd -c -O -release -nofloat -w -d -I% P%\..\druntime\src\
 -I% P%\..\druntime\import  etc\c\zlib
 .d -ofCzlib.obj
 DMD v2.055 DEBUG
 object.d: Error: module object is in file 'object.d' which cannot be read
 import path[0] = % P%\..\druntime\src\
 import path[1] = % P%\..\druntime\import

 --- errorlevel 1


 Now I'm totally confused. Maybe someone would like to write a tutorial
 on how to build the latest DMD from git?

I'm going to write an automated way to do it. Probably put it into DVM if Jacob feels that'd be appropriate. But here's the notes I have so far (short answer: you're probably missing sc.ini and all the .libs, those files aren't included in git for some reason):

How is that going to work? As far as I know there is no reliable way telling if a given commit of Phobos works with a given commit of druntime or DMD. If you get it to work I'll include it. -- /Jacob Carlborg
Jul 26 2011
parent reply "Nick Sabalausky" <a a.a> writes:
"Jacob Carlborg" <doob me.com> wrote in message 
news:j0ocfk$dfm$1 digitalmars.com...
 How is that going to work? As far as I know there is no reliable way 
 telling if a given commit of Phobos works with a given commit of druntime 
 or DMD.

 If you get it to work I'll include it.

Plan is that it'll just grab the latest of each. AFAIK, I think that's how work in the...umm..."trunk"...of DMD/druntime/phobos is normally done. Every time I've done it manually (ie, just a few times) it's worked out ok. I think DMD, druntime, and phobos are all stable enough that they wouldn't normally break each other unless a bad changeset gets committed or your versions get too out-of-sync with each other. Andre, Walter, Don and the other big committers probably have a better idea of how this usually goes, though...
Jul 27 2011
next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2011-07-27 10:02, Nick Sabalausky wrote:
 "Jacob Carlborg"<doob me.com>  wrote in message
 news:j0ocfk$dfm$1 digitalmars.com...
 How is that going to work? As far as I know there is no reliable way
 telling if a given commit of Phobos works with a given commit of druntime
 or DMD.

 If you get it to work I'll include it.

Plan is that it'll just grab the latest of each. AFAIK, I think that's how work in the...umm..."trunk"...of DMD/druntime/phobos is normally done. Every time I've done it manually (ie, just a few times) it's worked out ok. I think DMD, druntime, and phobos are all stable enough that they wouldn't normally break each other unless a bad changeset gets committed or your versions get too out-of-sync with each other.

As long as it works. When implementing it, just a suggestion: don't pull in a git library or similar, just download the zip archive containing the latest sources from github.
 Andre, Walter, Don and the other big committers probably have a better idea
 of how this usually goes, though...

-- /Jacob Carlborg
Jul 27 2011
parent reply "Nick Sabalausky" <a a.a> writes:
"Jacob Carlborg" <doob me.com> wrote in message 
news:j0oktj$167g$2 digitalmars.com...
 On 2011-07-27 10:02, Nick Sabalausky wrote:
 Plan is that it'll just grab the latest of each. AFAIK, I think that's 
 how
 work in the...umm..."trunk"...of DMD/druntime/phobos is normally done.

 Every time I've done it manually (ie, just a few times) it's worked out 
 ok.
 I think DMD, druntime, and phobos are all stable enough that they 
 wouldn't
 normally break each other unless a bad changeset gets committed or your
 versions get too out-of-sync with each other.

As long as it works. When implementing it, just a suggestion: don't pull in a git library or similar, just download the zip archive containing the latest sources from github.

I was going to go through tango.sys.Process to use the cmdline git to grab it. Is there a way to just download a zip from github without going through git? That would be better, since it wouldn't require the user have git installed, but I don't know of a way to do that.
Jul 31 2011
parent reply Jacob Carlborg <doob me.com> writes:
On 2011-07-31 11:31, Nick Sabalausky wrote:
 "Jacob Carlborg"<doob me.com>  wrote in message
 news:j0oktj$167g$2 digitalmars.com...
 On 2011-07-27 10:02, Nick Sabalausky wrote:
 Plan is that it'll just grab the latest of each. AFAIK, I think that's
 how
 work in the...umm..."trunk"...of DMD/druntime/phobos is normally done.

 Every time I've done it manually (ie, just a few times) it's worked out
 ok.
 I think DMD, druntime, and phobos are all stable enough that they
 wouldn't
 normally break each other unless a bad changeset gets committed or your
 versions get too out-of-sync with each other.

As long as it works. When implementing it, just a suggestion: don't pull in a git library or similar, just download the zip archive containing the latest sources from github.

I was going to go through tango.sys.Process to use the cmdline git to grab it. Is there a way to just download a zip from github without going through git? That would be better, since it wouldn't require the user have git installed, but I don't know of a way to do that.

You see the big "Downloads" button on every github project? Click on that, there you can get a link to a zip file containing the sources, URL for Phobos: https://github.com/D-Programming-Language/phobos/zipball/master -- /Jacob Carlborg
Jul 31 2011
parent reply "Nick Sabalausky" <a a.a> writes:
"Jacob Carlborg" <doob me.com> wrote in message 
news:j139bn$13bj$2 digitalmars.com...
 On 2011-07-31 11:31, Nick Sabalausky wrote:
 I was going to go through tango.sys.Process to use the cmdline git to 
 grab
 it. Is there a way to just download a zip from github without going 
 through
 git? That would be better, since it wouldn't require the user have git
 installed, but I don't know of a way to do that.

You see the big "Downloads" button on every github project? Click on that, there you can get a link to a zip file containing the sources, URL for Phobos: https://github.com/D-Programming-Language/phobos/zipball/master

I'd already tried the "Downloads" button, but it only gives me the releases. The, umm..."trunk"/head/master/whatever isn't listed there. But, https://github.com/{user}/{repo}/zipball/master does seem to work, so thanks, I'll use that.
Jul 31 2011
parent reply Jacob Carlborg <doob me.com> writes:
On 2011-07-31 22:26, Nick Sabalausky wrote:
 "Jacob Carlborg"<doob me.com>  wrote in message
 news:j139bn$13bj$2 digitalmars.com...
 On 2011-07-31 11:31, Nick Sabalausky wrote:
 I was going to go through tango.sys.Process to use the cmdline git to
 grab
 it. Is there a way to just download a zip from github without going
 through
 git? That would be better, since it wouldn't require the user have git
 installed, but I don't know of a way to do that.

You see the big "Downloads" button on every github project? Click on that, there you can get a link to a zip file containing the sources, URL for Phobos: https://github.com/D-Programming-Language/phobos/zipball/master

I'd already tried the "Downloads" button, but it only gives me the releases. The, umm..."trunk"/head/master/whatever isn't listed there.

If I click the "Downloads" button I get a popup window with "Download source" and "Download packages". "Download source" is the current head, "Download packages" contains tags. BTW, I'm pretty sure it requires javascript to get the popup.
 But, https://github.com/{user}/{repo}/zipball/master does seem to work, so
 thanks, I'll use that.

Ok, good. -- /Jacob Carlborg
Aug 01 2011
parent reply "Nick Sabalausky" <a a.a> writes:
"Jacob Carlborg" <doob me.com> wrote in message 
news:j15la3$1vl9$1 digitalmars.com...
 On 2011-07-31 22:26, Nick Sabalausky wrote:
 "Jacob Carlborg"<doob me.com>  wrote in message
 news:j139bn$13bj$2 digitalmars.com...
 On 2011-07-31 11:31, Nick Sabalausky wrote:
 I was going to go through tango.sys.Process to use the cmdline git to
 grab
 it. Is there a way to just download a zip from github without going
 through
 git? That would be better, since it wouldn't require the user have git
 installed, but I don't know of a way to do that.

You see the big "Downloads" button on every github project? Click on that, there you can get a link to a zip file containing the sources, URL for Phobos: https://github.com/D-Programming-Language/phobos/zipball/master

I'd already tried the "Downloads" button, but it only gives me the releases. The, umm..."trunk"/head/master/whatever isn't listed there.

If I click the "Downloads" button I get a popup window with "Download source" and "Download packages". "Download source" is the current head, "Download packages" contains tags. BTW, I'm pretty sure it requires javascript to get the popup.

My instinctual reaction to "pop-ins" (I **HATE**, **HATE**, **HATE** pop-ins - they're even *worse* than pop-ups) is to curse, disable JS, and reload. The resulting page, allegedly, shows "all" downloads, but the non-tag ones are missing from it. Of course, in this case, I did actually read what was on the pop-in before going all Nick on it, but it wasn't remotely clear to me that "Download source", "Download .tar.gz" or "Download .zip" really meant "current head" (actually, I didn't even suspect that it might have meant that - I didn't know what the hell they were referring to and I didn't want to assume.)
Aug 01 2011
parent Jacob Carlborg <doob me.com> writes:
On 2011-08-02 00:29, Nick Sabalausky wrote:
 My instinctual reaction to "pop-ins" (I **HATE**, **HATE**, **HATE**
 pop-ins - they're even *worse* than pop-ups) is to curse, disable JS, and
 reload. The resulting page, allegedly, shows "all" downloads, but the
 non-tag ones are missing from it.

Just as you, I'm not a big fan of JS. But I learn what pages that I use that need JS to work properly and enable it for them.
 Of course, in this case, I did actually read what was on the pop-in before
 going all Nick on it, but it wasn't remotely clear to me that "Download
 source", "Download .tar.gz" or "Download .zip" really meant "current head"
 (actually, I didn't even suspect that it might have meant that - I didn't
 know what the hell they were referring to and I didn't want to assume.)

Ok, I see. -- /Jacob Carlborg
Aug 02 2011
prev sibling parent reply Don <nospam nospam.com> writes:
Nick Sabalausky wrote:
 "Jacob Carlborg" <doob me.com> wrote in message 
 news:j0ocfk$dfm$1 digitalmars.com...
 How is that going to work? As far as I know there is no reliable way 
 telling if a given commit of Phobos works with a given commit of druntime 
 or DMD.

 If you get it to work I'll include it.

Plan is that it'll just grab the latest of each. AFAIK, I think that's how work in the...umm..."trunk"...of DMD/druntime/phobos is normally done. Every time I've done it manually (ie, just a few times) it's worked out ok. I think DMD, druntime, and phobos are all stable enough that they wouldn't normally break each other unless a bad changeset gets committed or your versions get too out-of-sync with each other. Andre, Walter, Don and the other big committers probably have a better idea of how this usually goes, though...

everything is green, before you grab them.
Jul 27 2011
next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2011-07-27 14:00, Don wrote:
 Just check http://d.puremagic.com/test-results/index.ghtml to make sure
 everything is green, before you grab them.

Could we get this in XML (or similar) as well, or should we do screen scraping? -- /Jacob Carlborg
Jul 27 2011
parent Jacob Carlborg <doob me.com> writes:
On 2011-07-27 18:45, Brad Roberts wrote:
 On 7/27/2011 6:51 AM, Jacob Carlborg wrote:
 On 2011-07-27 14:00, Don wrote:
 Just check http://d.puremagic.com/test-results/index.ghtml to make sure
 everything is green, before you grab them.

Could we get this in XML (or similar) as well, or should we do screen scraping?

I don't suggest automating anything against that page. It's subject to change based on the needs of the developers and I don't intend to consider it a stable api of any sort.

Ok, I see. -- /Jacob Carlborg
Jul 27 2011
prev sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Don" <nospam nospam.com> wrote in message 
news:j0oul0$1qii$1 digitalmars.com...
 Nick Sabalausky wrote:
 "Jacob Carlborg" <doob me.com> wrote in message 
 news:j0ocfk$dfm$1 digitalmars.com...
 How is that going to work? As far as I know there is no reliable way 
 telling if a given commit of Phobos works with a given commit of 
 druntime or DMD.

 If you get it to work I'll include it.

Plan is that it'll just grab the latest of each. AFAIK, I think that's how work in the...umm..."trunk"...of DMD/druntime/phobos is normally done. Every time I've done it manually (ie, just a few times) it's worked out ok. I think DMD, druntime, and phobos are all stable enough that they wouldn't normally break each other unless a bad changeset gets committed or your versions get too out-of-sync with each other. Andre, Walter, Don and the other big committers probably have a better idea of how this usually goes, though...

everything is green, before you grab them.

What do the little squares along the left side of each table mean?
Jul 27 2011
parent "Nick Sabalausky" <a a.a> writes:
"Steven Schveighoffer" <schveiguy yahoo.com> wrote in message 
news:op.vzao2rnmeav7ka localhost.localdomain...
 On Wed, 27 Jul 2011 15:47:24 -0400, Nick Sabalausky <a a.a> wrote:

 What do the little squares along the left side of each table mean?

if you mean the right side, they are the results of the last 5 tests (prior to the current one).

Uhh, yea, I meant the "secondary left" ;)
Jul 27 2011
prev sibling next sibling parent Brad Roberts <braddr puremagic.com> writes:
On 7/27/2011 6:51 AM, Jacob Carlborg wrote:
 On 2011-07-27 14:00, Don wrote:
 Just check http://d.puremagic.com/test-results/index.ghtml to make sure
 everything is green, before you grab them.

Could we get this in XML (or similar) as well, or should we do screen scraping?

I don't suggest automating anything against that page. It's subject to change based on the needs of the developers and I don't intend to consider it a stable api of any sort.
Jul 27 2011
prev sibling next sibling parent "Steven Schveighoffer" <schveiguy yahoo.com> writes:
On Wed, 27 Jul 2011 15:47:24 -0400, Nick Sabalausky <a a.a> wrote:

 "Don" <nospam nospam.com> wrote in message
 news:j0oul0$1qii$1 digitalmars.com...
 Nick Sabalausky wrote:
 "Jacob Carlborg" <doob me.com> wrote in message
 news:j0ocfk$dfm$1 digitalmars.com...
 How is that going to work? As far as I know there is no reliable way
 telling if a given commit of Phobos works with a given commit of
 druntime or DMD.

 If you get it to work I'll include it.

Plan is that it'll just grab the latest of each. AFAIK, I think that's how work in the...umm..."trunk"...of DMD/druntime/phobos is normally done. Every time I've done it manually (ie, just a few times) it's worked out ok. I think DMD, druntime, and phobos are all stable enough that they wouldn't normally break each other unless a bad changeset gets committed or your versions get too out-of-sync with each other. Andre, Walter, Don and the other big committers probably have a better idea of how this usually goes, though...

everything is green, before you grab them.

What do the little squares along the left side of each table mean?

if you mean the right side, they are the results of the last 5 tests (prior to the current one). -Steve
Jul 27 2011
prev sibling next sibling parent "Nick Sabalausky" <a a.a> writes:
"Nick Sabalausky" <a a.a> wrote in message 
news:j0n450$1926$1 digitalmars.com...
 -----------------------------------------

Updated with some lessions learned: - Need to also copy over the bin directory, not just lib - Should make changes to a *copy* of dmd\src\win32.mak to avoid confusing git. New version: [Make sure DMC is installed and on the PATH]
git clone https://github.com/D-Programming-Language/dmd.git
git clone https://github.com/D-Programming-Language/druntime.git
git clone https://github.com/D-Programming-Language/phobos.git
mkdir dmd\bin
mkdir dmd\lib
copy {lib directory of latest official dmd release}\*.lib dmd\lib
copy {bin directory of latest official dmd release}\*.lib dmd\bin
del dmd\lib\phobos.lib
del dmd\bin\dmd.exe

[Edit dmd\bin\sc.ini and find/replace "% P%\..\src" with "% P%\..\.."]
 copy dmd\src\win32.mak dmd\src\win32-fixed.mak

[Edit dmd\src\win32-fixed.mak: Change "CC=\dm\bin\dmc" to "CC=dmc" Search/Replace "win32.mak" with "win32-fixed.mak" ]
cd dmd\src
make -fwin32-fixed.mak

make -fwin32-fixed.mak release
cd ..\..
copy dmd\src\dmd.exe dmd\bin

set PATH={current_dir}\dmd\bin;%PATH%
cd druntime
make -fwin32.mak
cd ..

cd phobos
make -fwin32.mak DRUNTIME=..\druntime\lib
cd ..
copy phobos\phobos.lib dmd\lib

Jul 27 2011
prev sibling next sibling parent Andrew Wiley <wiley.andrew.j gmail.com> writes:
--001636c5c0b850e97504a95a68fb
Content-Type: text/plain; charset=ISO-8859-1

On Sun, Jul 31, 2011 at 2:31 AM, Nick Sabalausky <a a.a> wrote:

 "Jacob Carlborg" <doob me.com> wrote in message
 news:j0oktj$167g$2 digitalmars.com...
 On 2011-07-27 10:02, Nick Sabalausky wrote:
 Plan is that it'll just grab the latest of each. AFAIK, I think that's
 how
 work in the...umm..."trunk"...of DMD/druntime/phobos is normally done.

 Every time I've done it manually (ie, just a few times) it's worked out
 ok.
 I think DMD, druntime, and phobos are all stable enough that they
 wouldn't
 normally break each other unless a bad changeset gets committed or your
 versions get too out-of-sync with each other.

As long as it works. When implementing it, just a suggestion: don't pull in a git library or similar, just download the zip archive containing the latest sources from github.

I was going to go through tango.sys.Process to use the cmdline git to grab it. Is there a way to just download a zip from github without going through git? That would be better, since it wouldn't require the user have git installed, but I don't know of a way to do that.

https://github.com/D-Programming-Language/dmd/zipball/master<https://nodeload.github.com/D-Programming-Language/dmd/tarball/master> This is from the Downloads button on a respository, and it gets you the latest revision in a zip file. --001636c5c0b850e97504a95a68fb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On Sun, Jul 31, 2011 at 2:31 AM, Nick Sabalausky= <span dir=3D"ltr">&lt;a a.a&gt;</span> wrote:<br><blockquote class=3D"gmai= l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left= :1ex;"> <div class=3D"im">&quot;Jacob Carlborg&quot; &lt;<a href=3D"mailto:doob me.= com">doob me.com</a>&gt; wrote in message<br> </div>news:j0oktj$167g$2 digitalmars.com...<br> <div class=3D"im">&gt; On 2011-07-27 10:02, Nick Sabalausky wrote:<br> &gt;&gt;<br> </div><div class=3D"im">&gt;&gt; Plan is that it&#39;ll just grab the lates= t of each. AFAIK, I think that&#39;s<br> &gt;&gt; how<br> &gt;&gt; work in the...umm...&quot;trunk&quot;...of DMD/druntime/phobos is = normally done.<br> &gt;&gt;<br> &gt;&gt; Every time I&#39;ve done it manually (ie, just a few times) it&#39= ;s worked out<br> &gt;&gt; ok.<br> &gt;&gt; I think DMD, druntime, and phobos are all stable enough that they<= br> &gt;&gt; wouldn&#39;t<br> &gt;&gt; normally break each other unless a bad changeset gets committed or= your<br> &gt;&gt; versions get too out-of-sync with each other.<br> &gt;<br> &gt; As long as it works. When implementing it, just a suggestion: don&#39;= t pull<br> &gt; in a git library or similar, just download the zip archive containing = the<br> &gt; latest sources from github.<br> &gt;<br> <br> </div>I was going to go through tango.sys.Process to use the cmdline git to= grab<br> it. Is there a way to just download a zip from github without going through= <br> git? That would be better, since it wouldn&#39;t require the user have git<= br> installed, but I don&#39;t know of a way to do that.<br> <br> <br></blockquote><div><br></div><div>It isn&#39;t working for me at the mom= ent, but try=A0<a href=3D"https://nodeload.github.com/D-Programming-Languag= e/dmd/tarball/master">https://github.com/D-Programming-Language/dmd/zipball= /master</a></div> <div>This is from the Downloads button on a respository, and it gets you th= e latest revision in a zip file.</div></div><br> --001636c5c0b850e97504a95a68fb--
Jul 31 2011
prev sibling parent Andrew Wiley <wiley.andrew.j gmail.com> writes:
--0016e68ee3ed1ba6ee04a965a271
Content-Type: text/plain; charset=ISO-8859-1

On Sun, Jul 31, 2011 at 1:26 PM, Nick Sabalausky <a a.a> wrote:

 "Jacob Carlborg" <doob me.com> wrote in message
 news:j139bn$13bj$2 digitalmars.com...
 On 2011-07-31 11:31, Nick Sabalausky wrote:
 I was going to go through tango.sys.Process to use the cmdline git to
 grab
 it. Is there a way to just download a zip from github without going
 through
 git? That would be better, since it wouldn't require the user have git
 installed, but I don't know of a way to do that.

You see the big "Downloads" button on every github project? Click on

 there you can get a link to a zip file containing the sources, URL for
 Phobos: https://github.com/D-Programming-Language/phobos/zipball/master

I'd already tried the "Downloads" button, but it only gives me the releases. The, umm..."trunk"/head/master/whatever isn't listed there. But, https://github.com/{user}/{repo}/zipball/master does seem to work, so thanks, I'll use that.

"Download Packages" which lists the releases. --0016e68ee3ed1ba6ee04a965a271 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On Sun, Jul 31, 2011 at 1:26 PM, Nick Sabalausky= <span dir=3D"ltr">&lt;a a.a&gt;</span> wrote:<br><blockquote class=3D"gmai= l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left= :1ex;"> <div class=3D"im">&quot;Jacob Carlborg&quot; &lt;<a href=3D"mailto:doob me.= com">doob me.com</a>&gt; wrote in message<br> </div>news:j139bn$13bj$2 digitalmars.com...<br> <div class=3D"im">&gt; On 2011-07-31 11:31, Nick Sabalausky wrote:<br> &gt;&gt;<br> </div><div class=3D"im">&gt;&gt; I was going to go through tango.sys.Proces= s to use the cmdline git to<br> &gt;&gt; grab<br> &gt;&gt; it. Is there a way to just download a zip from github without goin= g<br> &gt;&gt; through<br> &gt;&gt; git? That would be better, since it wouldn&#39;t require the user = have git<br> &gt;&gt; installed, but I don&#39;t know of a way to do that.<br> &gt;<br> &gt; You see the big &quot;Downloads&quot; button on every github project? = Click on that,<br> &gt; there you can get a link to a zip file containing the sources, URL for= <br> &gt; Phobos: <a href=3D"https://github.com/D-Programming-Language/phobos/zi= pball/master" target=3D"_blank">https://github.com/D-Programming-Language/p= hobos/zipball/master</a><br> &gt;<br> <br> </div>I&#39;d already tried the &quot;Downloads&quot; button, but it only g= ives me the releases.<br> The, umm...&quot;trunk&quot;/head/master/whatever isn&#39;t listed there.<b= r> <br> But, <a href=3D"https://github.com/{user}/{repo}/zipball/master" target=3D"= _blank">https://github.com/{user}/{repo}/zipball/master</a> does seem to wo= rk, so<br> thanks, I&#39;ll use that.<br> <br></blockquote><div><br></div><div>Really? I see &quot;Download Source&qu= ot; (which downloads from master), then &quot;Download Packages&quot; which= lists the releases.=A0</div></div> --0016e68ee3ed1ba6ee04a965a271--
Jul 31 2011
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
git clone https://github.com/D-Programming-Language/dmd.git
git clone https://github.com/D-Programming-Language/druntime.git
git clone https://github.com/D-Programming-Language/phobos.git

cd druntime
make -f win32.mak
cd..

cd phobos
make -f win32.mak
cd..

cd dmd\src
make -f win32.mak

Of course this doesn't copy everything in the right places. But it
does work for me.
Jul 26 2011
prev sibling parent reply Dmitry Olshansky <dmitry.olsh gmail.com> writes:
My recipe on Windows:
1. Get the latest release zip you can find, unzip to some drive root(! 
otherwise get's trickier)
2. Delete all within src subfolder
3. Get a Git console in \dmd2\src, then the usual:
git clone https://github.com/D-Programming-Language/dmd.git
git clone https://github.com/D-Programming-Language/druntime.git
git clone https://github.com/D-Programming-Language/phobos.git
4. Build dmd
cd dmd\src
make -f win32.mak release
copy dmd.exe ..\..\..\windows\bin
cd ..
(to build dmd you'd need DMC, also extracted to the same drive root)
5.
cd druntime
make -f win32.mak

6.
cd phobos
make -f win32.mak unittest
copy phobos.lib ..\..\windows\lib

If anywhere of the above it fails to find dmd, make sure 
dmd2\windows\bin is in your path.
That's it, no additional tweaking required.

-- 
Dmitry Olshansky
Jul 27 2011
next sibling parent "Nick Sabalausky" <a a.a> writes:
"Dmitry Olshansky" <dmitry.olsh gmail.com> wrote in message 
news:j0pags$2iaf$1 digitalmars.com...
 My recipe on Windows:
 1. Get the latest release zip you can find, unzip to some drive root(! 
 otherwise get's trickier)
 2. Delete all within src subfolder
 3. Get a Git console in \dmd2\src, then the usual:
 git clone https://github.com/D-Programming-Language/dmd.git
 git clone https://github.com/D-Programming-Language/druntime.git
 git clone https://github.com/D-Programming-Language/phobos.git

That works fine for me in the normal Windows command prompt.
Jul 27 2011
prev sibling next sibling parent reply bearophile <bearophileHUGS lycos.com> writes:
Dmitry Olshansky:

 My recipe on Windows:

I presume it has tens of quite different kinds of ways to fail :-) This is what I see: C:\dmd2\src\dmd\src>make -f win32.mak release make -fwin32.mak C=backend TK=tk ROOT=root clean make[1]: Entering directory `C:/dmd2/src/dmd/src' posix.mak:140: warning: overriding recipe for target `dmd' win32.mak:60: warning: ignoring old recipe for target `dmd' posix.mak:143: warning: overriding recipe for target `clean' win32.mak:499: warning: ignoring old recipe for target `clean' posix.mak:656: warning: overriding recipe for target `zip' win32.mak:506: warning: ignoring old recipe for target `zip' win32.mak:40: warning: overriding recipe for target `.c.obj' win32.mak:40: warning: ignoring old recipe for target `.c.obj' ... Bye, bearophile
Jul 27 2011
next sibling parent reply Dmitry Olshansky <dmitry.olsh gmail.com> writes:
On 28.07.2011 0:34, bearophile wrote:
 Dmitry Olshansky:

 My recipe on Windows:


 This is what I see:

 C:\dmd2\src\dmd\src>make -f win32.mak release
 make -fwin32.mak C=backend TK=tk ROOT=root clean
 make[1]: Entering directory `C:/dmd2/src/dmd/src'
 posix.mak:140: warning: overriding recipe for target `dmd'
 win32.mak:60: warning: ignoring old recipe for target `dmd'
 posix.mak:143: warning: overriding recipe for target `clean'
 win32.mak:499: warning: ignoring old recipe for target `clean'
 posix.mak:656: warning: overriding recipe for target `zip'
 win32.mak:506: warning: ignoring old recipe for target `zip'
 win32.mak:40: warning: overriding recipe for target `.c.obj'
 win32.mak:40: warning: ignoring old recipe for target `.c.obj'
 ....

 Bye,
 bearophile

console try this before make: PATH=C:\dmd2\windows\bin;C:\dm\bin; -- Dmitry Olshansky
Jul 27 2011
parent reply bearophile <bearophileHUGS lycos.com> writes:
Dmitry Olshansky:

 My bad, this is a result of have GNU make on your path, if you're in 
 console try this before make:
 PATH=C:\dmd2\windows\bin;C:\dm\bin;

It's not your fault, it works. There are even consequences: http://d.puremagic.com/issues/show_bug.cgi?id=6373 Bye, bearophile
Jul 27 2011
parent Dmitry Olshansky <dmitry.olsh gmail.com> writes:
On 28.07.2011 5:54, bearophile wrote:
 Dmitry Olshansky:

 My bad, this is a result of have GNU make on your path, if you're in
 console try this before make:
 PATH=C:\dmd2\windows\bin;C:\dm\bin;

http://d.puremagic.com/issues/show_bug.cgi?id=6373 Bye, bearophile

hacking on dmd by you :) The next step would be forking dmd repo and making a pull request, they seem to get pulled upstream very fast. I find this enormously helpful when dealing with Git: http://progit.org/book/ -- Dmitry Olshansky
Jul 28 2011
prev sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 7/27/2011 1:34 PM, bearophile wrote:
 Dmitry Olshansky:

 My recipe on Windows:

I presume it has tens of quite different kinds of ways to fail :-) This is what I see:

You need to use Digital Mars make, the one that comes with dmd: http://www.digitalmars.com/ctg/make.html
Aug 01 2011
parent reply Jacob Carlborg <doob me.com> writes:
On 2011-08-02 00:55, Walter Bright wrote:
 On 7/27/2011 1:34 PM, bearophile wrote:
 Dmitry Olshansky:

 My recipe on Windows:

I presume it has tens of quite different kinds of ways to fail :-) This is what I see:

You need to use Digital Mars make, the one that comes with dmd: http://www.digitalmars.com/ctg/make.html

Now why doesn't the Digital Mars make come with dmd? -- /Jacob Carlborg
Aug 02 2011
parent Dmitry Olshansky <dmitry.olsh gmail.com> writes:
On 02.08.2011 12:46, Jacob Carlborg wrote:
 On 2011-08-02 00:55, Walter Bright wrote:
 On 7/27/2011 1:34 PM, bearophile wrote:
 Dmitry Olshansky:

 My recipe on Windows:

I presume it has tens of quite different kinds of ways to fail :-) This is what I see:

You need to use Digital Mars make, the one that comes with dmd: http://www.digitalmars.com/ctg/make.html

Now why doesn't the Digital Mars make come with dmd?

-- Dmitry Olshansky
Aug 02 2011
prev sibling next sibling parent Andre Tampubolon <andre lc.vlsm.org> writes:
On 27-Jul-11 10:23 PM, Dmitry Olshansky wrote:
 My recipe on Windows:
 1. Get the latest release zip you can find, unzip to some drive root(!
 otherwise get's trickier)
 2. Delete all within src subfolder
 3. Get a Git console in \dmd2\src, then the usual:
 git clone https://github.com/D-Programming-Language/dmd.git
 git clone https://github.com/D-Programming-Language/druntime.git
 git clone https://github.com/D-Programming-Language/phobos.git
 4. Build dmd
 cd dmd\src
 make -f win32.mak release
 copy dmd.exe ..\..\..\windows\bin
 cd ..
 (to build dmd you'd need DMC, also extracted to the same drive root)
 5.
 cd druntime
 make -f win32.mak
 
 6.
 cd phobos
 make -f win32.mak unittest
 copy phobos.lib ..\..\windows\lib
 
 If anywhere of the above it fails to find dmd, make sure
 dmd2\windows\bin is in your path.
 That's it, no additional tweaking required.
 

On the PC I'm working now, there were no git installed, so I decided to grab the latest tarballs: D-Programming-Language-dmd-v2.054-211-g1dac08b.tar.gz D-Programming-Language-druntime-v2.054-28-gd14a1a9.tar.gz D-Programming-Language-phobos-v2.054-119-gcd5d266.tar.gz Anyway, these were what I did: 1. Extracted the latest release (dmd.2.054.zip) to C:\dmd2-dev. There were also C:\dmd2, and C:\dm (the Digital Mars C compiler). 2. set PATH=C:\dm\bin 3. cd C:\dmd2-dev\src\dmd. 4. Verified whether DMC worked properly or not, by building DMD: make -f win32.mak release The output was: ... ... make -fwin32.mak C=backend TK=tk ROOT=root clean del *.obj del total.sym del msgs.h msgs.c del elxxx.c cdxxx.c optab.c debtab.c fltables.c tytab.c del impcnvtab.c It was a success. 5. Deleted all the contents of C:\dmd2-dev\src\dmd, and replaced it with the latest version (from the tarball), and build it again: \dm\bin\dmc -c -Ibackend;tk -DMARS -cpp -e -wx -I. backend\var \dm\bin\dmc -c -Ibackend;tk -DMARS -cpp -e -wx backend\el \dm\bin\dmc -c -Ibackend;tk -DMARS -cpp -e -wx backend\newman Fatal error: unable to open input file 'parser.h' --- errorlevel 1 Hmm unable to open parser.h? I checked C:\dmd2-dev\src\dmd\backend. Yep, no parser.h there (someone forgot to commit it)? So I cleared C:\dmd2-dev\src\dmd\ again. First extracted the original one from the latest release (2.054), then replaced it with the latest from git, and built it again: \dm\bin\dmc -c -Ibackend;tk -DMARS -cpp -e -wx -I. backend\var \dm\bin\dmc -c -Ibackend;tk -DMARS -cpp -e -wx backend\el \dm\bin\dmc -c -Ibackend;tk -DMARS -cpp -e -wx backend\newman void ^ backend\parser.h(215) : Error: ';' expected following declaration of struct member --- errorlevel 1 At least the error was different. I did a quick glance on C:\dmd2-dev\src\dmd\backend\parser.h around line 215, and found these lines: TARGET_structBLKLST void print(); What is this TARGET_structBLKLST? -- - Andre Tampubolon -
Aug 01 2011
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
I think DM make is only used on Windows, and GNU make is used on
Linux. Just compare the win32 makefile to the Posix makefile, it's a
world of a difference.
Aug 02 2011