@@ -86,6 +86,45 @@ NDISASM = disasm\ndisasm.obj
8686PROGOBJ = $(NASM ) $(NDISASM )
8787PROGS = nasm$(X ) ndisasm$(X )
8888
89+ # Objects for the local copy of zlib. The variable ZLIB is set to
90+ # $(ZLIBOBJ) if the internal version of zlib should be used.
91+ ZLIBOBJ = \
92+ zlib\adler32.obj \
93+ zlib\crc32.obj \
94+ zlib\infback.obj \
95+ zlib\inffast.obj \
96+ zlib\inflate.obj \
97+ zlib\inftrees.obj \
98+ zlib\zutil.obj
99+
100+ # Common library objects
101+ LIBOBJ_COM = \
102+ stdlib\snprintf.obj stdlib\vsnprintf.obj stdlib\strlcpy.obj \
103+ stdlib\strnlen.obj stdlib\strrchrnul.obj \
104+ \
105+ nasmlib\ver.obj \
106+ nasmlib\alloc.obj nasmlib\asprintf.obj \
107+ nasmlib\crc32b.obj nasmlib\crc64.obj nasmlib\md5c.obj \
108+ nasmlib\string.obj nasmlib\nctype.obj \
109+ nasmlib\file.obj nasmlib\mmap.obj nasmlib\ilog2.obj \
110+ nasmlib\realpath.obj nasmlib\path.obj \
111+ nasmlib\filename.obj nasmlib\rlimit.obj \
112+ nasmlib\numstr.obj \
113+ nasmlib\zerobuf.obj nasmlib\bsi.obj \
114+ nasmlib\rbtree.obj nasmlib\hashtbl.obj \
115+ nasmlib\raa.obj nasmlib\saa.obj \
116+ nasmlib\strlist.obj \
117+ nasmlib\perfhash.obj nasmlib\badenum.obj \
118+ nasmlib\readnum.obj \
119+ \
120+ common\common.obj common\errstubs.obj \
121+ \
122+ x86\insnsa.obj x86\insnsb.obj x86\insnsn.obj \
123+ x86\regs.obj x86\regvals.obj x86\regflags.obj \
124+ x86\iflag.obj \
125+ \
126+ $(ZLIB )
127+
89128# Files dependent on warnings.dat
90129WARNOBJ = asm\warnings.obj
91130WARNFILES = asm\warnings_c.h include\warnings.h doc\warnings.src
@@ -99,10 +138,8 @@ OUTPUTOBJ = \
99138 output\outdbg.obj output\outieee.obj output\outmacho.obj \
100139 output\codeview.obj
101140
102- # The source files for these objects are scanned for warnings
103- LIBOBJ_W = \
104- nasmlib\readnum.obj \
105- \
141+ # Assembler-only library objects
142+ LIBOBJ_ASM = \
106143 asm\error.obj \
107144 asm\floats.obj \
108145 asm\directiv.obj \
@@ -116,66 +153,25 @@ LIBOBJ_W = \
116153 asm\segalloc.obj \
117154 asm\rdstrnum.obj \
118155 asm\srcfile.obj \
119- \
120- $(OUTPUTOBJ )
121-
122- # The source files for these objects are NOT scanned for warnings;
123- # normally this will include all generated files.
124- # It is entirely possible that it may be necessary to move some of these
125- # files to LIBOBJ_W, notably $(OUTPUTOBJ)
126- LIBOBJ_NW = \
127- stdlib\snprintf.obj stdlib\vsnprintf.obj stdlib\strlcpy.obj \
128- stdlib\strnlen.obj stdlib\strrchrnul.obj \
129- \
130156 asm\directbl.obj \
131157 asm\pptok.obj \
132158 asm\tokhash.obj \
133159 asm\uncompress.obj \
134160 \
135161 macros\macros.obj \
136162 \
137- nasmlib\ver.obj \
138- nasmlib\alloc.obj nasmlib\asprintf.obj \
139- nasmlib\crc32b.obj nasmlib\crc64.obj nasmlib\md5c.obj \
140- nasmlib\string.obj nasmlib\nctype.obj \
141- nasmlib\file.obj nasmlib\mmap.obj nasmlib\ilog2.obj \
142- nasmlib\realpath.obj nasmlib\path.obj \
143- nasmlib\filename.obj nasmlib\rlimit.obj \
144- nasmlib\numstr.obj \
145- nasmlib\zerobuf.obj nasmlib\bsi.obj \
146- nasmlib\rbtree.obj nasmlib\hashtbl.obj \
147- nasmlib\raa.obj nasmlib\saa.obj \
148- nasmlib\strlist.obj \
149- nasmlib\perfhash.obj nasmlib\badenum.obj \
150- \
151- common\common.obj \
152- \
153- x86\insnsa.obj x86\insnsb.obj x86\insnsn.obj \
154- x86\regs.obj x86\regvals.obj x86\regflags.obj \
155- x86\iflag.obj \
156- \
157- $(WARNOBJ )
163+ $(WARNOBJ ) \
164+ $(OUTPUTOBJ )
158165
159166# Objects which are only used for the disassembler
160167LIBOBJ_DIS = \
161168 disasm\disasm.obj disasm\sync.obj disasm\prefix.obj \
169+ disasm\diserror.obj \
162170 \
163171 x86\insnsd.obj x86\regdis.obj
164172
165- # Objects for the local copy of zlib. The variable ZLIB is set to
166- # $(ZLIBOBJ) if the internal version of zlib should be used.
167- ZLIBOBJ = \
168- zlib\adler32.obj \
169- zlib\crc32.obj \
170- zlib\infback.obj \
171- zlib\inffast.obj \
172- zlib\inflate.obj \
173- zlib\inftrees.obj \
174- zlib\zutil.obj
175-
176- LIBOBJ = $(LIBOBJ_W ) $(LIBOBJ_NW ) $(ZLIB )
177- ALLOBJ_W = $(NASM ) $(LIBOBJ_W )
178- ALLOBJ = $(PROGOBJ ) $(LIBOBJ ) $(LIBOBJ_DIS )
173+ LIBOBJ = $(LIBOBJ_COM ) $(LIBOBJ_ASM ) $(LIBOBJ_DIS )
174+ ALLOBJ = $(PROGOBJ ) $(LIBOBJ )
179175SUBDIRS = stdlib nasmlib include config output asm disasm x86 \
180176 common zlib macros misc
181177XSUBDIRS = nsis win test doc editors
@@ -186,22 +182,26 @@ EDITORS = editors\nasmtok.el editors\nasmtok.json
186182# -- End File Lists --#
187183
188184NASMLIB = libnasm.$(A )
189- NDISLIB = libndis.$(A )
185+ ASMLIB = libasm.$(A )
186+ DISLIB = libdis.$(A )
190187
191188all : nasm$(X ) ndisasm$(X )
192189
193- nasm$(X ) : $(NASM ) $(MANIFEST ) $(NASMLIB )
194- $(CC ) /Fe:$@ $(ALL_CFLAGS ) $(NASM ) $(NASMLIB ) $(LIBS ) \
190+ nasm$(X ) : $(NASM ) $(MANIFEST ) $(ASMLIB ) $( NASMLIB )
191+ $(CC ) /Fe:$@ $(ALL_CFLAGS ) $(NASM ) $(ASMLIB ) $( NASMLIB ) $(LIBS ) \
195192 $(ALL_LDFLAGS )
196193
197- ndisasm$(X ) : $(NDISASM ) $(MANIFEST ) $(NDISLIB ) $(NASMLIB )
198- $(CC ) /Fe:$@ $(ALL_CFLAGS ) $(NDISASM ) $(NDISLIB ) $(NASMLIB ) $(LIBS ) \
194+ ndisasm$(X ) : $(NDISASM ) $(MANIFEST ) $(DISLIB ) $(NASMLIB )
195+ $(CC ) /Fe:$@ $(ALL_CFLAGS ) $(NDISASM ) $(DISLIB ) $(NASMLIB ) $(LIBS ) \
199196 $(ALL_LDFLAGS )
200197
201- $(NASMLIB ) : $(LIBOBJ )
198+ $(NASMLIB ) : $(LIBOBJ_COM )
199+ $(AR ) $(ARFLAGS ) /out:$@ $* *
200+
201+ $(ASMLIB ) : $(LIBOBJ_ASM )
202202 $(AR ) $(ARFLAGS ) /out:$@ $* *
203203
204- $(NDISLIB ) : $(LIBOBJ_DIS )
204+ $(DISLIB ) : $(LIBOBJ_DIS )
205205 $(AR ) $(ARFLAGS ) /out:$@ $* *
206206
207207# These are specific to certain Makefile syntaxes...
0 commit comments