msvc.mak: finally make work with shared rdoff rules

We can finally make the shared rdoff rules work.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
H. Peter Anvin 2017-04-06 18:18:11 -07:00
parent f05413eb61
commit d7642a4a26

View file

@ -11,6 +11,7 @@
top_srcdir = . top_srcdir = .
srcdir = . srcdir = .
objdir = .
VPATH = . VPATH = .
prefix = "C:\Program Files\NASM" prefix = "C:\Program Files\NASM"
exec_prefix = $(prefix) exec_prefix = $(prefix)
@ -26,7 +27,6 @@ LDFLAGS = /DEBUG /OPT:REF /OPT:ICF # (latter two undoes /DEBUG harm)
!ENDIF !ENDIF
CC = cl CC = cl
LD = link
AR = lib AR = lib
CFLAGS = $(CFLAGS) /W2 CFLAGS = $(CFLAGS) /W2
BUILD_CFLAGS = $(CFLAGS) BUILD_CFLAGS = $(CFLAGS)
@ -37,7 +37,7 @@ INTERNAL_CFLAGS = /I$(srcdir) /I. \
/I$(srcdir)/disasm /I./disasm \ /I$(srcdir)/disasm /I./disasm \
/I$(srcdir)/output /I./output /I$(srcdir)/output /I./output
ALL_CFLAGS = $(BUILD_CFLAGS) $(INTERNAL_CFLAGS) ALL_CFLAGS = $(BUILD_CFLAGS) $(INTERNAL_CFLAGS)
LDFLAGS = $(LDFLAGS) /SUBSYSTEM:CONSOLE /RELEASE LDFLAGS = /link $(LINKFLAGS) /SUBSYSTEM:CONSOLE /RELEASE
LIBS = LIBS =
PERL = perl PERL = perl
@ -53,12 +53,15 @@ LN_S = copy
O = obj O = obj
A = lib A = lib
X = .exe X = .exe
.SUFFIXES: .c .i .s .$(O) .$(A) .exe .1 .man
.SUFFIXES: .c .i .s .$(O) .$(A) .1 .man
.c.obj: .c.obj:
$(CC) /c $(ALL_CFLAGS) /Fo$@ $< $(CC) /c $(ALL_CFLAGS) /Fo$@ $<
# This rule is only used for rdoff
.obj.exe:
$(CC) $(ALL_CFLAGS) /Fe$@ $< $(LDFLAGS) $(RDFLIB) $(NASMLIB) $(LIBS)
#-- Begin File Lists --# #-- Begin File Lists --#
# Edit in Makefile.in, not here! # Edit in Makefile.in, not here!
NASM = asm\nasm.$(O) NASM = asm\nasm.$(O)
@ -110,15 +113,17 @@ SUBDIRS = stdlib nasmlib output asm disasm x86 common macros
XSUBDIRS = test doc nsis rdoff XSUBDIRS = test doc nsis rdoff
#-- End File Lists --# #-- End File Lists --#
NASMLIB = libnasm.$(A)
all: nasm$(X) ndisasm$(X) rdf all: nasm$(X) ndisasm$(X) rdf
nasm$(X): $(NASM) nasm.$(A) nasm$(X): $(NASM) $(NASMLIB)
$(LD) $(LDFLAGS) /OUT:nasm$(X) $(NASM) $(LIBS) nasm.$(A) $(CC) /Fe$@ $(NASM) $(LDFLAGS) $(NASMLIB) $(LIBS)
ndisasm$(X): $(NDISASM) nasm.$(A) ndisasm$(X): $(NDISASM) $(NASMLIB)
$(LD) $(LDFLAGS) /OUT:ndisasm$(X) $(NDISASM) $(LIBS) nasm.$(A) $(CC) /Fe$@ $(NDISASM) $(LDFLAGS) $(NASMLIB) $(LIBS)
nasm.$(A): $(LIBOBJ) $(NASMLIB): $(LIBOBJ)
$(AR) $(ARFLAGS) /OUT:$@ $** $(AR) $(ARFLAGS) /OUT:$@ $**
#-- Begin Generated File Rules --# #-- Begin Generated File Rules --#
@ -277,7 +282,7 @@ rdoff\rdf2srec$(X): rdoff\rdf2bin$(X)
rdf: $(RDFPROGS) $(RDF2BINLINKS) rdf: $(RDFPROGS) $(RDF2BINLINKS)
$(RDFLIB): ($RDFLIBOBJ) $(RDFLIB): $(RDFLIBOBJ)
$(AR) $(ARFLAGS) /OUT:$@ $** $(AR) $(ARFLAGS) /OUT:$@ $**
#-- Begin NSIS Rules --# #-- Begin NSIS Rules --#
@ -297,39 +302,24 @@ nsis: nsis\nasm.nsi nsis\arch.nsh nsis\version.nsh
#-- End NSIS Rules --# #-- End NSIS Rules --#
clean: clean:
-del /f *.$(O) -del /f /s *.$(O)
-del /f *.pdb -del /f /s *.pdb
-del /f *.s -del /f /s *.s
-del /f *.i -del /f /s *.i
-del /f lib\*.$(O) -del /f $(NASMLIB) $(RDFLIB)
-del /f lib\*.pdb
-del /f lib\*.s
-del /f lib\*.i
-del /f output\*.$(O)
-del /f output\*.pdb
-del /f output\*.s
-del /f output\*.i
-del /f nasmlib\*.$(O)
-del /f nasmlib\*.pdb
-del /f nasmlib\*.s
-del /f nasmlib\*.i
-del /f stdlib\*.$(O)
-del /f stdlib\*.pdb
-del /f stdlib\*.s
-del /f stdlib\*.i
-del /f nasm.$(A)
-del /f nasm$(X) -del /f nasm$(X)
-del /f ndisasm$(X) -del /f ndisasm$(X)
-del /f rdoff\*$(X)
distclean: clean distclean: clean
-del /f config.h -del /f config.h
-del /f config.log -del /f config.log
-del /f config.status -del /f config.status
-del /f Makefile -del /f Makefile
-del /f *~ -del /f /s *~
-del /f *.bak -del /f /s *.bak
-del /f *.lst -del /f /s *.lst
-del /f *.bin -del /f /s *.bin
-del /f output\*~ -del /f output\*~
-del /f output\*.bak -del /f output\*.bak
-del /f test\*.lst -del /f test\*.lst