Hello, there i did lot of 16-bit using masm16 bit making some effort into moving into 32-bit asm.
Now i ported very small few existing 16-bit asm file and its makefile target into asm32 target however, there is one issue:
Whenever I set ml32 target to generate object file in a different directory (one-level down) it causes an error.
With the same target in 16-bit ml that came with masm32 in WINXP i got no issue.
I am wondering does anyone generate obj file in one directory level deep? the ml switch for that is Fo and I used Foobj\$(OBJNAME),obj
here is my makefile and associated switches:
from below exp (16-bit) target compiles but exp32 target does not (i hi-lighted with bold the compile target), error message is pasted at the bottom for exp32 target.
i compared both masm 16-bit ml's help and .net 2003 ml (32-bit) help they both have exactly same compiler switches.
if i don't specify obj directory for Fo switch thus generating obj files in current directory, it compiles just fine but there are lot of cluttering.
Thanks!
...
# compilers.
CC=cl
ASM=c:\masm32\bin\ml
TCC=tcc
ASM32=ml
# linkers.
TLINK=tlink.exe
LINK32=link.exe
LINK16=link16.exe
LINK=link16
# compiler and linker options.
# /c
# /W3
# /Fm
CCFLAGS=/c /W3 /Fm
# /c assemble without linking
# /Fl generate lising
# /Zi add symbolic debug info
# /Zd add line number debug info
# /Foobj name object file.
ASMFLAGS=/c /Fl /Zi /Zd /Foobj
ASM32FLAGS=/c /Fl /Zi /Zd /Foobj
...
PMSW=pmsw
EXP=exp
EXP32=exp32
LIB=lib
ACPI=acpi
PMODE=pmode
MEMMGR=memmgr
VIDEO=video
A20TEST=a20test
...
#===32-bit programs===
exp32: $(EXP32).exe stat
$(EXP32).exe: obj\$(EXP32).obj
$(LINK32) $(LINK32FLAGS) obj\$(EXP32).obj,,,,,
obj\$(EXP32).obj: $(EXP32).asm inc
$(ASM) $(ASM32FLAGS)\$(EXP32).obj $(EXP32).asm
#===16-bit programs===
exp: $(EXP).exe stat
$(EXP).exe: obj\$(EXP).obj obj\$(LIB).obj obj\$(ACPI).obj obj\$(PMODE).obj obj\$(MEMMGR).obj obj\$(VIDEO).obj
$(LINK16) obj\$(EXP).obj obj\$(LIB).obj obj\$(ACPI).obj obj\$(PMODE).obj obj\$(MEMMGR).obj obj\$(VIDEO).obj,,,,,
here is the error code:
c:\git\minix.dev\exp>nmake exp32
Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
c:\masm32\bin\ml /c /Fl /Zi /Zd /Foobj\exp32.obj exp32.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: exp32.asm
exp32.asm(1) : fatal error A1000: cannot open file : obj\exp32.obj
NMAKE : fatal error U1077: 'c:\masm32\bin\ml' : return code '0x1'
Stop.
c:\git\minix.dev\exp>
The folder obj exists?
QuoteNMAKE Fatal Error U1077
Visual Studio 2015 Other Versions
'program' : return code 'value'
The given command or program called by NMAKE failed and returned the given exit code.
To suppress this error and continue the NMAKE session, use the /I option, the .IGNORE dot directive, or the dash (-) command modifier. To continue the NMAKE session for unrelated parts of the dependency tree, use the /K option.
https://msdn.microsoft.com/en-us/library/dt309377.aspx
Quote from: jj2007 on January 12, 2016, 08:55:07 PM
The folder obj exists?
yup otherwise 16-bit part will also fail.
Quote
Hello, there i did lot of 16-bit using masm16 bit making some effort into moving into 32-bit asm.
Made a search on the forum,this don't seem to be usefull and not possible without too many work.