www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - minit and DMD's makefiles

reply Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
I'm finding that much of the time I try to compile DMD from Git HEAD,
the timestamp on 'src/rt/minit.obj' has become out of date with the
timestamp on 'src/rt/minit.asm', causing the makefile to try to rebuild
it, and bail with "masm not found" until I update the timestamp on
masm.obj. Anyone else finding this a common thing, too?

The thing is, according to earlier discussions (about a years or two
ago, IIRC), minit.asm is something that basically never changes and
shouldn't change. And indeed, according to Git, aside from the
copyright/license comments, it hasn't changed since *at least* as far
back as 2009.

So I'm thinking: Perhaps the makefiles should be adjusted so that
minit.(obj|asm) are ignored unless a special extra build target is
specified? Or is there a better way?
Feb 15 2013
next sibling parent reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/15/13, Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> wrote:
 Anyone else finding this a common thing, too?

Yes. My personal fix is to create an empty "masm386.bat" file and put it in my %PATH%. The makefile happily invokes it even though it does nothing, and the build can continue.
Feb 15 2013
parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 2/15/2013 2:39 PM, Andrej Mitrovic wrote:
 On 2/15/13, Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> wrote:
 Anyone else finding this a common thing, too?

Yes. My personal fix is to create an empty "masm386.bat" file and put it in my %PATH%. The makefile happily invokes it even though it does nothing, and the build can continue.

LOL. I just do: touch minit.obj as required.
Feb 15 2013
parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 2/15/2013 6:19 PM, Andrej Mitrovic wrote:
 On 2/16/13, Walter Bright <newshound2 digitalmars.com> wrote:
 LOL. I just do:

      touch minit.obj

 as required.

Mine's more automated. :p Btw, have you had the chance to look at https://github.com/DigitalMars/optlink/pull/1 ?

I looked at it, but I haven't gone through it. Thanks for doing it! What's standing in the way of you building it?
Feb 15 2013
parent reply Rainer Schuetze <r.sagitario gmx.de> writes:
On 16.02.2013 05:07, Walter Bright wrote:
 On 2/15/2013 6:19 PM, Andrej Mitrovic wrote:
 On 2/16/13, Walter Bright <newshound2 digitalmars.com> wrote:
 LOL. I just do:

      touch minit.obj

 as required.

Mine's more automated. :p Btw, have you had the chance to look at https://github.com/DigitalMars/optlink/pull/1 ?

I looked at it, but I haven't gone through it. Thanks for doing it! What's standing in the way of you building it?

I actually succeded in building optlink, but there are a few things that had to be changed: - masm (v9 or v10) complained about a number of "mov AL,errorCode" which had to be changed to AX (I guess it would not assume an external to fit into a byte) - I had to add a number of ridiculous "BYTE PTR" modifiers - The SLR tools are 16-bit executables so I installed a VM running XP just to find out that they don't work there too. Instead I changed the makefiles to use lib from the dmd distrubution rather than optlib. What version of masm are you using? Shall I make it a pull request?
Feb 15 2013
next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 2/15/2013 11:59 PM, Rainer Schuetze wrote:
 On 16.02.2013 05:07, Walter Bright wrote:
 On 2/15/2013 6:19 PM, Andrej Mitrovic wrote:
 On 2/16/13, Walter Bright <newshound2 digitalmars.com> wrote:
 LOL. I just do:

      touch minit.obj

 as required.

Mine's more automated. :p Btw, have you had the chance to look at https://github.com/DigitalMars/optlink/pull/1 ?

I looked at it, but I haven't gone through it. Thanks for doing it! What's standing in the way of you building it?

I actually succeded in building optlink, but there are a few things that had to be changed: - masm (v9 or v10) complained about a number of "mov AL,errorCode" which had to be changed to AX (I guess it would not assume an external to fit into a byte) - I had to add a number of ridiculous "BYTE PTR" modifiers - The SLR tools are 16-bit executables so I installed a VM running XP just to find out that they don't work there too. Instead I changed the makefiles to use lib from the dmd distrubution rather than optlib. What version of masm are you using?

5.10 from 1988 :-) Masm constantly changed the syntax it would accept.
 Shall I make it a pull request?

You can, but I don't have those masm's. Or maybe I do in VS10, I just never looked.
Feb 16 2013
parent Walter Bright <newshound2 digitalmars.com> writes:
On 2/16/2013 12:28 AM, Walter Bright wrote:
 You can, but I don't have those masm's. Or maybe I do in VS10, I just never
looked.

Ok, I looked, and I have an ml.exe that says it's Macro Assembler Version 10.00.30319.01
Feb 16 2013
prev sibling parent Rainer Schuetze <r.sagitario gmx.de> writes:
On 16.02.2013 15:49, Andrej Mitrovic wrote:
 On 2/16/13, Rainer Schuetze <r.sagitario gmx.de> wrote:
 I actually succeded in building optlink

That's great to hear. If you could make a pull to update to the latest MASM compiler it would be great.

https://github.com/DigitalMars/optlink/pull/2
Feb 16 2013
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/16/13, Walter Bright <newshound2 digitalmars.com> wrote:
 LOL. I just do:

     touch minit.obj

 as required.

Mine's more automated. :p Btw, have you had the chance to look at https://github.com/DigitalMars/optlink/pull/1 ?
Feb 15 2013
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/16/13, Rainer Schuetze <r.sagitario gmx.de> wrote:
 I actually succeded in building optlink

That's great to hear. If you could make a pull to update to the latest MASM compiler it would be great.
Feb 16 2013