0
0
mirror of https://github.com/netwide-assembler/nasm.git synced 2025-09-22 10:43:39 -04:00

Makefiles: use actual archive managers

There is no reason to not use an archive manager to build our
executables.  If there really are systems which don't have any kind of
archive manager, we can simply link all the objects.

This also drops any use of configure to detect library objects.
Instead just use HAVE_* and let the archive manager delete them.

A lot of additional functions could be declared library functions and
reorganized.

***FIX*** Mkfiles/*.mak have not yet been updated.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
H. Peter Anvin
2016-03-08 02:06:39 -08:00
parent bdae10bee2
commit cc147f79e4
17 changed files with 152 additions and 122 deletions

View File

@@ -22,14 +22,15 @@ INTERNAL_CFLAGS = -I$(srcdir) -I.
ALL_CFLAGS = $(BUILD_CFLAGS) $(INTERNAL_CFLAGS)
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
AR = @AR@
RANLIB = @RANLIB@
STRIP = @STRIP@
PERL = perl
PERLFLAGS = -I$(srcdir)/perllib
RUNPERL = $(PERL) $(PERLFLAGS)
LIBOBJDIR = @LIBOBJDIR@
LIBOBJS = @LIBOBJS@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
@@ -42,20 +43,19 @@ MAKENSIS = makensis
MKDIR = mkdir
RM = rm
STRIP = strip
FIND = find
# Binary suffixes
O = @OBJEXT@
X = @EXEEXT@
A = a
# Debug stuff
ifeq ($(TRACE),1)
CFLAGS += -DNASM_TRACE
endif
.SUFFIXES: .c .i .s .$(O) .1 .txt .xml
.SUFFIXES: .c .i .s .$(O) .$(A) .1 .txt .xml
.PHONY: all doc rdf install clean distclean cleaner spotless install_rdf test
.PHONY: install_doc everything install_everything strip perlreq dist tags TAGS
@@ -77,12 +77,11 @@ endif
$(XMLTO) man --skip-validation $< 2>/dev/null
#-- Begin File Lists --#
NASM = nasm.$(O) nasmlib.$(O) ver.$(O) \
NASM = nasm.$(O) \
raa.$(O) saa.$(O) rbtree.$(O) \
realpath.$(O) file.$(O) \
float.$(O) insnsa.$(O) insnsb.$(O) \
directiv.$(O) \
assemble.$(O) labels.$(O) hashtbl.$(O) crc64.$(O) parser.$(O) \
assemble.$(O) labels.$(O) hashtbl.$(O) parser.$(O) \
output/outform.$(O) output/outlib.$(O) output/nulldbg.$(O) \
output/nullout.$(O) \
output/outbin.$(O) output/outaout.$(O) output/outcoff.$(O) \
@@ -90,27 +89,38 @@ NASM = nasm.$(O) nasmlib.$(O) ver.$(O) \
output/outelfx32.$(O) \
output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
md5c.$(O) output/codeview.$(O) \
output/codeview.$(O) \
preproc.$(O) quote.$(O) pptok.$(O) \
macros.$(O) listing.$(O) eval.$(O) exprlib.$(O) stdscan.$(O) \
strfunc.$(O) tokhash.$(O) regvals.$(O) regflags.$(O) \
ilog2.$(O) \
preproc-nop.$(O) \
disp8.$(O) \
iflag.$(O)
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) nasmlib.$(O) ver.$(O) \
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) \
insnsd.$(O) insnsb.$(O) insnsn.$(O) regs.$(O) regdis.$(O) \
disp8.$(O) iflag.$(O)
LIBOBJ = lib/snprintf.$(O) lib/vsnprintf.$(O) lib/strlcpy.$(O) \
lib/nasmlib.$(O) lib/ver.$(O) \
lib/file.$(O) lib/realpath.$(O) \
lib/ilog2.$(O) lib/md5c.$(O) lib/crc64.$(O)
#-- End File Lists --#
all: nasm$(X) ndisasm$(X) rdf
nasm$(X): $(NASM) $(LIBOBJS)
$(CC) $(LDFLAGS) -o nasm$(X) $(NASM) $(LIBOBJS) $(LIBS)
NASMLIB = libnasm.$(A)
ndisasm$(X): $(NDISASM) $(LIBOBJS)
$(CC) $(LDFLAGS) -o ndisasm$(X) $(NDISASM) $(LIBOBJS) $(LIBS)
$(NASMLIB): $(LIBOBJ)
$(RM) -f $(NASMLIB)
$(AR) cq $(NASMLIB) $(LIBOBJ)
$(RANLIB) $(NASMLIB)
nasm$(X): $(NASM) $(NASMLIB)
$(CC) $(LDFLAGS) -o nasm$(X) $(NASM) $(NASMLIB) $(LIBS)
ndisasm$(X): $(NDISASM) $(NASMLIB)
$(CC) $(LDFLAGS) -o ndisasm$(X) $(NDISASM) $(NASMLIB) $(LIBS)
# These source files are automagically generated from a single
# instruction-table file by a Perl script. They're distributed,
@@ -224,7 +234,7 @@ install: nasm$(X) ndisasm$(X)
$(INSTALL_DATA) $(srcdir)/ndisasm.1 $(INSTALLROOT)$(mandir)/man1/ndisasm.1
clean:
$(RM) -f *.$(O) *.s *.i
$(RM) -f *.$(O) *.s *.i *.$(A)
$(RM) -f lib/*.$(O) lib/*.s lib/*.i
$(RM) -f output/*.$(O) output/*.s output/*.i
$(RM) -f nasm$(X) ndisasm$(X)
@@ -251,7 +261,7 @@ spotless: distclean cleaner
strip:
$(STRIP) --strip-unneeded nasm$(X) ndisasm$(X)
rdf: nasmlib.$(O)
rdf: $(NASMLIB)
cd rdoff && $(MAKE) all
TAGS:
@@ -321,7 +331,6 @@ alldeps: perlreq
assemble.$(O): assemble.c assemble.h compiler.h config.h directiv.h disp8.h \
iflag.h iflaggen.h insns.h insnsi.h listing.h nasm.h nasmlib.h opflags.h \
pptok.h preproc.h regs.h tables.h tokens.h
crc64.$(O): crc64.c compiler.h config.h hashtbl.h nasmlib.h
directiv.$(O): directiv.c compiler.h config.h directiv.h hashtbl.h insnsi.h \
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
disasm.$(O): disasm.c compiler.h config.h directiv.h disasm.h disp8.h \
@@ -333,13 +342,11 @@ eval.$(O): eval.c compiler.h config.h directiv.h eval.h float.h insnsi.h \
labels.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
exprlib.$(O): exprlib.c compiler.h config.h directiv.h insnsi.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
file.$(O): file.c compiler.h config.h nasmlib.h
float.$(O): float.c compiler.h config.h directiv.h float.h insnsi.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
hashtbl.$(O): hashtbl.c compiler.h config.h directiv.h hashtbl.h insnsi.h \
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
iflag.$(O): iflag.c compiler.h config.h iflag.h iflaggen.h
ilog2.$(O): ilog2.c compiler.h config.h nasmlib.h
insnsa.$(O): insnsa.c compiler.h config.h directiv.h iflag.h iflaggen.h \
insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h \
tables.h tokens.h
@@ -352,6 +359,14 @@ insnsd.$(O): insnsd.c compiler.h config.h directiv.h iflag.h iflaggen.h \
insnsn.$(O): insnsn.c compiler.h config.h insnsi.h tables.h
labels.$(O): labels.c compiler.h config.h directiv.h hashtbl.h insnsi.h \
labels.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
lib/crc64.$(O): lib/crc64.c compiler.h config.h hashtbl.h nasmlib.h
lib/file.$(O): lib/file.c compiler.h config.h nasmlib.h
lib/ilog2.$(O): lib/ilog2.c compiler.h config.h nasmlib.h
lib/md5c.$(O): lib/md5c.c compiler.h config.h md5.h
lib/nasmlib.$(O): lib/nasmlib.c compiler.h config.h directiv.h iflag.h \
iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h \
regs.h tables.h tokens.h
lib/realpath.$(O): lib/realpath.c compiler.h config.h nasmlib.h
lib/snprintf.$(O): lib/snprintf.c compiler.h config.h nasmlib.h
lib/strlcpy.$(O): lib/strlcpy.c compiler.h config.h
lib/vsnprintf.$(O): lib/vsnprintf.c compiler.h config.h nasmlib.h
@@ -360,14 +375,10 @@ listing.$(O): listing.c compiler.h config.h directiv.h insnsi.h listing.h \
macros.$(O): macros.c compiler.h config.h directiv.h hashtbl.h insnsi.h \
nasm.h nasmlib.h opflags.h output/outform.h pptok.h preproc.h regs.h \
tables.h
md5c.$(O): md5c.c compiler.h config.h md5.h
nasm.$(O): nasm.c assemble.h compiler.h config.h directiv.h eval.h float.h \
iflag.h iflaggen.h insns.h insnsi.h labels.h listing.h nasm.h nasmlib.h \
opflags.h output/outform.h parser.h pptok.h preproc.h raa.h regs.h saa.h \
stdscan.h tables.h tokens.h
nasmlib.$(O): nasmlib.c compiler.h config.h directiv.h iflag.h iflaggen.h \
insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h \
tables.h tokens.h
ndisasm.$(O): ndisasm.c compiler.h config.h directiv.h disasm.h iflag.h \
iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h \
regs.h sync.h tables.h tokens.h
@@ -441,7 +452,6 @@ preproc.$(O): preproc.c compiler.h config.h directiv.h eval.h hashtbl.h \
quote.$(O): quote.c compiler.h config.h nasmlib.h quote.h
raa.$(O): raa.c compiler.h config.h nasmlib.h raa.h
rbtree.$(O): rbtree.c compiler.h config.h rbtree.h
realpath.$(O): realpath.c compiler.h config.h nasmlib.h
regdis.$(O): regdis.c regdis.h regs.h
regflags.$(O): regflags.c compiler.h config.h directiv.h insnsi.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h

View File

@@ -46,12 +46,11 @@ X = .exe
#-- Begin File Lists --#
# Edit in Makefile.in, not here!
NASM = nasm.$(O) nasmlib.$(O) ver.$(O) \
NASM = nasm.$(O) \
raa.$(O) saa.$(O) rbtree.$(O) \
realpath.$(O) file.$(O) \
float.$(O) insnsa.$(O) insnsb.$(O) \
directiv.$(O) \
assemble.$(O) labels.$(O) hashtbl.$(O) crc64.$(O) parser.$(O) \
assemble.$(O) labels.$(O) hashtbl.$(O) parser.$(O) \
output/outform.$(O) output/outlib.$(O) output/nulldbg.$(O) \
output/nullout.$(O) \
output/outbin.$(O) output/outaout.$(O) output/outcoff.$(O) \
@@ -59,18 +58,22 @@ NASM = nasm.$(O) nasmlib.$(O) ver.$(O) \
output/outelfx32.$(O) \
output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
md5c.$(O) output/codeview.$(O) \
output/codeview.$(O) \
preproc.$(O) quote.$(O) pptok.$(O) \
macros.$(O) listing.$(O) eval.$(O) exprlib.$(O) stdscan.$(O) \
strfunc.$(O) tokhash.$(O) regvals.$(O) regflags.$(O) \
ilog2.$(O) \
preproc-nop.$(O) \
disp8.$(O) \
iflag.$(O)
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) nasmlib.$(O) ver.$(O) \
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) \
insnsd.$(O) insnsb.$(O) insnsn.$(O) regs.$(O) regdis.$(O) \
disp8.$(O) iflag.$(O)
LIBOBJ = lib/snprintf.$(O) lib/vsnprintf.$(O) lib/strlcpy.$(O) \
lib/nasmlib.$(O) lib/ver.$(O) \
lib/file.$(O) lib/realpath.$(O) \
lib/ilog2.$(O) lib/md5c.$(O) lib/crc64.$(O)
#-- End File Lists --#
all: nasm$(X) ndisasm$(X)
@@ -230,7 +233,6 @@ everything: all doc rdf
assemble.$(O): assemble.c assemble.h compiler.h directiv.h disp8.h iflag.h \
iflaggen.h insns.h insnsi.h listing.h nasm.h nasmlib.h opflags.h pptok.h \
preproc.h regs.h tables.h tokens.h
crc64.$(O): crc64.c compiler.h hashtbl.h nasmlib.h
directiv.$(O): directiv.c compiler.h directiv.h hashtbl.h insnsi.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
disasm.$(O): disasm.c compiler.h directiv.h disasm.h disp8.h iflag.h \
@@ -242,13 +244,11 @@ eval.$(O): eval.c compiler.h directiv.h eval.h float.h insnsi.h labels.h \
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
exprlib.$(O): exprlib.c compiler.h directiv.h insnsi.h nasm.h nasmlib.h \
opflags.h pptok.h preproc.h regs.h tables.h
file.$(O): file.c compiler.h nasmlib.h
float.$(O): float.c compiler.h directiv.h float.h insnsi.h nasm.h nasmlib.h \
opflags.h pptok.h preproc.h regs.h tables.h
hashtbl.$(O): hashtbl.c compiler.h directiv.h hashtbl.h insnsi.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
iflag.$(O): iflag.c compiler.h iflag.h iflaggen.h
ilog2.$(O): ilog2.c compiler.h nasmlib.h
insnsa.$(O): insnsa.c compiler.h directiv.h iflag.h iflaggen.h insns.h \
insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h \
tokens.h
@@ -261,6 +261,14 @@ insnsd.$(O): insnsd.c compiler.h directiv.h iflag.h iflaggen.h insns.h \
insnsn.$(O): insnsn.c compiler.h insnsi.h tables.h
labels.$(O): labels.c compiler.h directiv.h hashtbl.h insnsi.h labels.h \
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
lib/crc64.$(O): lib/crc64.c compiler.h hashtbl.h nasmlib.h
lib/file.$(O): lib/file.c compiler.h nasmlib.h
lib/ilog2.$(O): lib/ilog2.c compiler.h nasmlib.h
lib/md5c.$(O): lib/md5c.c compiler.h md5.h
lib/nasmlib.$(O): lib/nasmlib.c compiler.h directiv.h iflag.h iflaggen.h \
insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h \
tables.h tokens.h
lib/realpath.$(O): lib/realpath.c compiler.h nasmlib.h
lib/snprintf.$(O): lib/snprintf.c compiler.h nasmlib.h
lib/strlcpy.$(O): lib/strlcpy.c compiler.h
lib/vsnprintf.$(O): lib/vsnprintf.c compiler.h nasmlib.h
@@ -268,14 +276,10 @@ listing.$(O): listing.c compiler.h directiv.h insnsi.h listing.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
macros.$(O): macros.c compiler.h directiv.h hashtbl.h insnsi.h nasm.h \
nasmlib.h opflags.h output/outform.h pptok.h preproc.h regs.h tables.h
md5c.$(O): md5c.c compiler.h md5.h
nasm.$(O): nasm.c assemble.h compiler.h directiv.h eval.h float.h iflag.h \
iflaggen.h insns.h insnsi.h labels.h listing.h nasm.h nasmlib.h opflags.h \
output/outform.h parser.h pptok.h preproc.h raa.h regs.h saa.h stdscan.h \
tables.h tokens.h
nasmlib.$(O): nasmlib.c compiler.h directiv.h iflag.h iflaggen.h insns.h \
insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h \
tokens.h
ndisasm.$(O): ndisasm.c compiler.h directiv.h disasm.h iflag.h iflaggen.h \
insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h sync.h \
tables.h tokens.h
@@ -343,7 +347,6 @@ preproc.$(O): preproc.c compiler.h directiv.h eval.h hashtbl.h insnsi.h \
quote.$(O): quote.c compiler.h nasmlib.h quote.h
raa.$(O): raa.c compiler.h nasmlib.h raa.h
rbtree.$(O): rbtree.c compiler.h rbtree.h
realpath.$(O): realpath.c compiler.h nasmlib.h
regdis.$(O): regdis.c regdis.h regs.h
regflags.$(O): regflags.c compiler.h directiv.h insnsi.h nasm.h nasmlib.h \
opflags.h pptok.h preproc.h regs.h tables.h

View File

@@ -30,12 +30,11 @@ O = o
#-- Begin File Lists --#
# Edit in Makefile.in, not here!
NASM = nasm.o nasmlib.o ver.o \
NASM = nasm.o \
raa.o saa.o rbtree.o \
realpath.o file.o \
float.o insnsa.o insnsb.o \
directiv.o \
assemble.o labels.o hashtbl.o crc64.o parser.o \
assemble.o labels.o hashtbl.o parser.o \
outform.o outlib.o nulldbg.o \
nullout.o \
outbin.o outaout.o outcoff.o \
@@ -43,18 +42,22 @@ NASM = nasm.o nasmlib.o ver.o \
outelfx32.o \
outobj.o outas86.o outrdf2.o \
outdbg.o outieee.o outmacho.o \
md5c.o codeview.o \
codeview.o \
preproc.o quote.o pptok.o \
macros.o listing.o eval.o exprlib.o stdscan.o \
strfunc.o tokhash.o regvals.o regflags.o \
ilog2.o \
preproc-nop.o \
disp8.o \
iflag.o
NDISASM = ndisasm.o disasm.o sync.o nasmlib.o ver.o \
NDISASM = ndisasm.o disasm.o sync.o \
insnsd.o insnsb.o insnsn.o regs.o regdis.o \
disp8.o iflag.o
LIBOBJ = snprintf.o vsnprintf.o strlcpy.o \
nasmlib.o ver.o \
file.o realpath.o \
ilog2.o md5c.o crc64.o
#-- End File Lists --#
NASM_OBJ = $(addprefix $(OBJDIR)/,$(notdir $(NASM))) $(EOLIST)
@@ -135,7 +138,6 @@ $(OBJDIR)/version.mak: $(PROOT)/version $(PROOT)/version.pl $(OBJDIR)
assemble.o: assemble.c assemble.h compiler.h config.h directiv.h disp8.h \
iflag.h iflaggen.h insns.h insnsi.h listing.h nasm.h nasmlib.h opflags.h \
pptok.h preproc.h regs.h tables.h tokens.h
crc64.o: crc64.c compiler.h config.h hashtbl.h nasmlib.h
directiv.o: directiv.c compiler.h config.h directiv.h hashtbl.h insnsi.h \
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
disasm.o: disasm.c compiler.h config.h directiv.h disasm.h disp8.h iflag.h \
@@ -147,13 +149,11 @@ eval.o: eval.c compiler.h config.h directiv.h eval.h float.h insnsi.h \
labels.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
exprlib.o: exprlib.c compiler.h config.h directiv.h insnsi.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
file.o: file.c compiler.h config.h nasmlib.h
float.o: float.c compiler.h config.h directiv.h float.h insnsi.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
hashtbl.o: hashtbl.c compiler.h config.h directiv.h hashtbl.h insnsi.h \
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
iflag.o: iflag.c compiler.h config.h iflag.h iflaggen.h
ilog2.o: ilog2.c compiler.h config.h nasmlib.h
insnsa.o: insnsa.c compiler.h config.h directiv.h iflag.h iflaggen.h insns.h \
insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h \
tokens.h
@@ -166,6 +166,14 @@ insnsd.o: insnsd.c compiler.h config.h directiv.h iflag.h iflaggen.h insns.h \
insnsn.o: insnsn.c compiler.h config.h insnsi.h tables.h
labels.o: labels.c compiler.h config.h directiv.h hashtbl.h insnsi.h \
labels.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
crc64.o: crc64.c compiler.h config.h hashtbl.h nasmlib.h
file.o: file.c compiler.h config.h nasmlib.h
ilog2.o: ilog2.c compiler.h config.h nasmlib.h
md5c.o: md5c.c compiler.h config.h md5.h
nasmlib.o: nasmlib.c compiler.h config.h directiv.h iflag.h iflaggen.h \
insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h \
tables.h tokens.h
realpath.o: realpath.c compiler.h config.h nasmlib.h
snprintf.o: snprintf.c compiler.h config.h nasmlib.h
strlcpy.o: strlcpy.c compiler.h config.h
vsnprintf.o: vsnprintf.c compiler.h config.h nasmlib.h
@@ -173,14 +181,10 @@ listing.o: listing.c compiler.h config.h directiv.h insnsi.h listing.h \
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
macros.o: macros.c compiler.h config.h directiv.h hashtbl.h insnsi.h nasm.h \
nasmlib.h opflags.h outform.h pptok.h preproc.h regs.h tables.h
md5c.o: md5c.c compiler.h config.h md5.h
nasm.o: nasm.c assemble.h compiler.h config.h directiv.h eval.h float.h \
iflag.h iflaggen.h insns.h insnsi.h labels.h listing.h nasm.h nasmlib.h \
opflags.h outform.h parser.h pptok.h preproc.h raa.h regs.h saa.h stdscan.h \
tables.h tokens.h
nasmlib.o: nasmlib.c compiler.h config.h directiv.h iflag.h iflaggen.h \
insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h \
tables.h tokens.h
ndisasm.o: ndisasm.c compiler.h config.h directiv.h disasm.h iflag.h \
iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h \
regs.h sync.h tables.h tokens.h
@@ -244,7 +248,6 @@ preproc.o: preproc.c compiler.h config.h directiv.h eval.h hashtbl.h \
quote.o: quote.c compiler.h config.h nasmlib.h quote.h
raa.o: raa.c compiler.h config.h nasmlib.h raa.h
rbtree.o: rbtree.c compiler.h config.h rbtree.h
realpath.o: realpath.c compiler.h config.h nasmlib.h
regdis.o: regdis.c regdis.h regs.h
regflags.o: regflags.c compiler.h config.h directiv.h insnsi.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h

View File

@@ -46,12 +46,11 @@ X = .exe
#-- Begin File Lists --#
# Edit in Makefile.in, not here!
NASM = nasm.$(O) nasmlib.$(O) ver.$(O) &
NASM = nasm.$(O) &
raa.$(O) saa.$(O) rbtree.$(O) &
realpath.$(O) file.$(O) &
float.$(O) insnsa.$(O) insnsb.$(O) &
directiv.$(O) &
assemble.$(O) labels.$(O) hashtbl.$(O) crc64.$(O) parser.$(O) &
assemble.$(O) labels.$(O) hashtbl.$(O) parser.$(O) &
output/outform.$(O) output/outlib.$(O) output/nulldbg.$(O) &
output/nullout.$(O) &
output/outbin.$(O) output/outaout.$(O) output/outcoff.$(O) &
@@ -59,18 +58,22 @@ NASM = nasm.$(O) nasmlib.$(O) ver.$(O) &
output/outelfx32.$(O) &
output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) &
output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) &
md5c.$(O) output/codeview.$(O) &
output/codeview.$(O) &
preproc.$(O) quote.$(O) pptok.$(O) &
macros.$(O) listing.$(O) eval.$(O) exprlib.$(O) stdscan.$(O) &
strfunc.$(O) tokhash.$(O) regvals.$(O) regflags.$(O) &
ilog2.$(O) &
preproc-nop.$(O) &
disp8.$(O) &
iflag.$(O)
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) nasmlib.$(O) ver.$(O) &
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) &
insnsd.$(O) insnsb.$(O) insnsn.$(O) regs.$(O) regdis.$(O) &
disp8.$(O) iflag.$(O)
LIBOBJ = lib/snprintf.$(O) lib/vsnprintf.$(O) lib/strlcpy.$(O) &
lib/nasmlib.$(O) lib/ver.$(O) &
lib/file.$(O) lib/realpath.$(O) &
lib/ilog2.$(O) lib/md5c.$(O) lib/crc64.$(O)
#-- End File Lists --#
what: .SYMBOLIC
@@ -272,7 +275,6 @@ alldeps: perlreq .SYMBOLIC
assemble.$(O): assemble.c assemble.h compiler.h config.h directiv.h disp8.h &
iflag.h iflaggen.h insns.h insnsi.h listing.h nasm.h nasmlib.h opflags.h &
pptok.h preproc.h regs.h tables.h tokens.h
crc64.$(O): crc64.c compiler.h config.h hashtbl.h nasmlib.h
directiv.$(O): directiv.c compiler.h config.h directiv.h hashtbl.h insnsi.h &
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
disasm.$(O): disasm.c compiler.h config.h directiv.h disasm.h disp8.h &
@@ -284,13 +286,11 @@ eval.$(O): eval.c compiler.h config.h directiv.h eval.h float.h insnsi.h &
labels.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
exprlib.$(O): exprlib.c compiler.h config.h directiv.h insnsi.h nasm.h &
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
file.$(O): file.c compiler.h config.h nasmlib.h
float.$(O): float.c compiler.h config.h directiv.h float.h insnsi.h nasm.h &
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
hashtbl.$(O): hashtbl.c compiler.h config.h directiv.h hashtbl.h insnsi.h &
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
iflag.$(O): iflag.c compiler.h config.h iflag.h iflaggen.h
ilog2.$(O): ilog2.c compiler.h config.h nasmlib.h
insnsa.$(O): insnsa.c compiler.h config.h directiv.h iflag.h iflaggen.h &
insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h &
tables.h tokens.h
@@ -303,6 +303,14 @@ insnsd.$(O): insnsd.c compiler.h config.h directiv.h iflag.h iflaggen.h &
insnsn.$(O): insnsn.c compiler.h config.h insnsi.h tables.h
labels.$(O): labels.c compiler.h config.h directiv.h hashtbl.h insnsi.h &
labels.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
lib/crc64.$(O): lib/crc64.c compiler.h config.h hashtbl.h nasmlib.h
lib/file.$(O): lib/file.c compiler.h config.h nasmlib.h
lib/ilog2.$(O): lib/ilog2.c compiler.h config.h nasmlib.h
lib/md5c.$(O): lib/md5c.c compiler.h config.h md5.h
lib/nasmlib.$(O): lib/nasmlib.c compiler.h config.h directiv.h iflag.h &
iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h &
regs.h tables.h tokens.h
lib/realpath.$(O): lib/realpath.c compiler.h config.h nasmlib.h
lib/snprintf.$(O): lib/snprintf.c compiler.h config.h nasmlib.h
lib/strlcpy.$(O): lib/strlcpy.c compiler.h config.h
lib/vsnprintf.$(O): lib/vsnprintf.c compiler.h config.h nasmlib.h
@@ -311,14 +319,10 @@ listing.$(O): listing.c compiler.h config.h directiv.h insnsi.h listing.h &
macros.$(O): macros.c compiler.h config.h directiv.h hashtbl.h insnsi.h &
nasm.h nasmlib.h opflags.h output/outform.h pptok.h preproc.h regs.h &
tables.h
md5c.$(O): md5c.c compiler.h config.h md5.h
nasm.$(O): nasm.c assemble.h compiler.h config.h directiv.h eval.h float.h &
iflag.h iflaggen.h insns.h insnsi.h labels.h listing.h nasm.h nasmlib.h &
opflags.h output/outform.h parser.h pptok.h preproc.h raa.h regs.h saa.h &
stdscan.h tables.h tokens.h
nasmlib.$(O): nasmlib.c compiler.h config.h directiv.h iflag.h iflaggen.h &
insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h &
tables.h tokens.h
ndisasm.$(O): ndisasm.c compiler.h config.h directiv.h disasm.h iflag.h &
iflaggen.h insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h &
regs.h sync.h tables.h tokens.h
@@ -392,7 +396,6 @@ preproc.$(O): preproc.c compiler.h config.h directiv.h eval.h hashtbl.h &
quote.$(O): quote.c compiler.h config.h nasmlib.h quote.h
raa.$(O): raa.c compiler.h config.h nasmlib.h raa.h
rbtree.$(O): rbtree.c compiler.h config.h rbtree.h
realpath.$(O): realpath.c compiler.h config.h nasmlib.h
regdis.$(O): regdis.c regdis.h regs.h
regflags.$(O): regflags.c compiler.h config.h directiv.h insnsi.h nasm.h &
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h

View File

@@ -57,12 +57,11 @@ X = .exe
#-- Begin File Lists --#
# Edit in Makefile.in, not here!
NASM = nasm.$(O) nasmlib.$(O) ver.$(O) \
NASM = nasm.$(O) \
raa.$(O) saa.$(O) rbtree.$(O) \
realpath.$(O) file.$(O) \
float.$(O) insnsa.$(O) insnsb.$(O) \
directiv.$(O) \
assemble.$(O) labels.$(O) hashtbl.$(O) crc64.$(O) parser.$(O) \
assemble.$(O) labels.$(O) hashtbl.$(O) parser.$(O) \
output/outform.$(O) output/outlib.$(O) output/nulldbg.$(O) \
output/nullout.$(O) \
output/outbin.$(O) output/outaout.$(O) output/outcoff.$(O) \
@@ -70,18 +69,22 @@ NASM = nasm.$(O) nasmlib.$(O) ver.$(O) \
output/outelfx32.$(O) \
output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
md5c.$(O) output/codeview.$(O) \
output/codeview.$(O) \
preproc.$(O) quote.$(O) pptok.$(O) \
macros.$(O) listing.$(O) eval.$(O) exprlib.$(O) stdscan.$(O) \
strfunc.$(O) tokhash.$(O) regvals.$(O) regflags.$(O) \
ilog2.$(O) \
preproc-nop.$(O) \
disp8.$(O) \
iflag.$(O)
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) nasmlib.$(O) ver.$(O) \
NDISASM = ndisasm.$(O) disasm.$(O) sync.$(O) \
insnsd.$(O) insnsb.$(O) insnsn.$(O) regs.$(O) regdis.$(O) \
disp8.$(O) iflag.$(O)
LIBOBJ = lib/snprintf.$(O) lib/vsnprintf.$(O) lib/strlcpy.$(O) \
lib/nasmlib.$(O) lib/ver.$(O) \
lib/file.$(O) lib/realpath.$(O) \
lib/ilog2.$(O) lib/md5c.$(O) lib/crc64.$(O)
#-- End File Lists --#
what:
@@ -241,7 +244,6 @@ everything: all doc rdf
assemble.$(O): assemble.c assemble.h compiler.h directiv.h disp8.h iflag.h \
iflaggen.h insns.h insnsi.h listing.h nasm.h nasmlib.h opflags.h pptok.h \
preproc.h regs.h tables.h tokens.h
crc64.$(O): crc64.c compiler.h hashtbl.h nasmlib.h
directiv.$(O): directiv.c compiler.h directiv.h hashtbl.h insnsi.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
disasm.$(O): disasm.c compiler.h directiv.h disasm.h disp8.h iflag.h \
@@ -253,13 +255,11 @@ eval.$(O): eval.c compiler.h directiv.h eval.h float.h insnsi.h labels.h \
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
exprlib.$(O): exprlib.c compiler.h directiv.h insnsi.h nasm.h nasmlib.h \
opflags.h pptok.h preproc.h regs.h tables.h
file.$(O): file.c compiler.h nasmlib.h
float.$(O): float.c compiler.h directiv.h float.h insnsi.h nasm.h nasmlib.h \
opflags.h pptok.h preproc.h regs.h tables.h
hashtbl.$(O): hashtbl.c compiler.h directiv.h hashtbl.h insnsi.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
iflag.$(O): iflag.c compiler.h iflag.h iflaggen.h
ilog2.$(O): ilog2.c compiler.h nasmlib.h
insnsa.$(O): insnsa.c compiler.h directiv.h iflag.h iflaggen.h insns.h \
insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h \
tokens.h
@@ -272,6 +272,14 @@ insnsd.$(O): insnsd.c compiler.h directiv.h iflag.h iflaggen.h insns.h \
insnsn.$(O): insnsn.c compiler.h insnsi.h tables.h
labels.$(O): labels.c compiler.h directiv.h hashtbl.h insnsi.h labels.h \
nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
lib/crc64.$(O): lib/crc64.c compiler.h hashtbl.h nasmlib.h
lib/file.$(O): lib/file.c compiler.h nasmlib.h
lib/ilog2.$(O): lib/ilog2.c compiler.h nasmlib.h
lib/md5c.$(O): lib/md5c.c compiler.h md5.h
lib/nasmlib.$(O): lib/nasmlib.c compiler.h directiv.h iflag.h iflaggen.h \
insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h \
tables.h tokens.h
lib/realpath.$(O): lib/realpath.c compiler.h nasmlib.h
lib/snprintf.$(O): lib/snprintf.c compiler.h nasmlib.h
lib/strlcpy.$(O): lib/strlcpy.c compiler.h
lib/vsnprintf.$(O): lib/vsnprintf.c compiler.h nasmlib.h
@@ -279,14 +287,10 @@ listing.$(O): listing.c compiler.h directiv.h insnsi.h listing.h nasm.h \
nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h
macros.$(O): macros.c compiler.h directiv.h hashtbl.h insnsi.h nasm.h \
nasmlib.h opflags.h output/outform.h pptok.h preproc.h regs.h tables.h
md5c.$(O): md5c.c compiler.h md5.h
nasm.$(O): nasm.c assemble.h compiler.h directiv.h eval.h float.h iflag.h \
iflaggen.h insns.h insnsi.h labels.h listing.h nasm.h nasmlib.h opflags.h \
output/outform.h parser.h pptok.h preproc.h raa.h regs.h saa.h stdscan.h \
tables.h tokens.h
nasmlib.$(O): nasmlib.c compiler.h directiv.h iflag.h iflaggen.h insns.h \
insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h tables.h \
tokens.h
ndisasm.$(O): ndisasm.c compiler.h directiv.h disasm.h iflag.h iflaggen.h \
insns.h insnsi.h nasm.h nasmlib.h opflags.h pptok.h preproc.h regs.h sync.h \
tables.h tokens.h
@@ -354,7 +358,6 @@ preproc.$(O): preproc.c compiler.h directiv.h eval.h hashtbl.h insnsi.h \
quote.$(O): quote.c compiler.h nasmlib.h quote.h
raa.$(O): raa.c compiler.h nasmlib.h raa.h
rbtree.$(O): rbtree.c compiler.h rbtree.h
realpath.$(O): realpath.c compiler.h nasmlib.h
regdis.$(O): regdis.c regdis.h regs.h
regflags.$(O): regflags.c compiler.h directiv.h insnsi.h nasm.h nasmlib.h \
opflags.h pptok.h preproc.h regs.h tables.h

17
aclocal.m4 vendored
View File

@@ -27,20 +27,3 @@ AC_MSG_RESULT([yes])
AC_DEFINE(m4_toupper([HAVE_$1]), [1],
[Define to 1 if you have the `$1' intrinsic function.]),
AC_MSG_RESULT([no]))])
dnl --------------------------------------------------------------------------
dnl PA_REPLACE_FUNC
dnl
dnl Look for a function and possible alternatives, unlike AC_REPLACE_FUNCS
dnl this will only add *one* replacement to LIBOBJS if no alternative is
dnl found.
dnl --------------------------------------------------------------------------
AC_DEFUN(PA_REPLACE_FUNC_WITH,
[pa_replace_func__$2_missing=true
AC_CHECK_FUNCS([$1], [pa_replace_func__$2_missing=false], [])
if $pa_replace_func__$2_missing; then
AC_LIBOBJ([$2])
fi])
AC_DEFUN(PA_REPLACE_FUNC,
[PA_REPLACE_FUNC_WITH([$1], m4_car(m4_unquote(m4_split(m4_normalize[$1]))))])

View File

@@ -89,12 +89,17 @@ AC_CHECK_PROGS(PSTOPDF, pstopdf, false)
dnl Check for progs needed for manpage generation
if test $ASCIIDOC = false; then
AC_MSG_WARN([No acsciidoc package found])
AC_MSG_WARN([No asciidoc package found])
fi
if test $XMLTO = false; then
AC_MSG_WARN([No xmlto package found])
fi
dnl Check for host compiler tools
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(RANLIB, ranlib, :)
AC_CHECK_TOOL(STRIP, strip)
dnl Checks for header files.
AC_HEADER_STDC
if test $ac_cv_header_stdc = no; then
@@ -153,11 +158,9 @@ PA_HAVE_FUNC(__builtin_ctzl, (0UL))
PA_HAVE_FUNC(__builtin_ctzll, (0ULL))
dnl Functions for which we have replacements available in lib/
AC_CONFIG_LIBOBJ_DIR([lib])
AC_SUBST([LIBOBJDIR], [lib/])
PA_REPLACE_FUNC([vsnprintf _vsnprintf])
PA_REPLACE_FUNC([snprintf _snprintf])
PA_REPLACE_FUNC([strlcpy])
AC_CHECK_FUNCS([vsnprintf _vsnprintf])
AC_CHECK_FUNCS([snprintf _snprintf])
AC_CHECK_FUNCS([strlcpy])
dnl Check for functions that might not be declared in the headers for
dnl various idiotic reasons (mostly because of library authors

View File

View File

View File

@@ -12,6 +12,8 @@
#include "nasmlib.h"
#if !defined(HAVE_SNPRINTF) && !defined(HAVE__SNPRINTF)
int snprintf(char *str, size_t size, const char *format, ...)
{
va_list ap;
@@ -23,3 +25,5 @@ int snprintf(char *str, size_t size, const char *format, ...)
return rv;
}
#endif

View File

View File

@@ -14,6 +14,8 @@
#include "nasmlib.h"
#if !defined(HAVE_VSNPRINTF) && !defined(HAVE__VSNPRINTF)
#define BUFFER_SIZE 65536 /* Bigger than any string we might print... */
static char snprintf_buffer[BUFFER_SIZE];
@@ -44,3 +46,5 @@ int vsnprintf(char *str, size_t size, const char *format, va_list ap)
return rv;
}
#endif

View File

@@ -22,42 +22,56 @@ BUILD_CFLAGS = $(CFLAGS) @DEFS@
INTERNAL_CFLAGS = -I$(srcdir) -I$(top_srcdir)
ALL_CFLAGS = $(BUILD_CFLAGS) $(INTERNAL_CFLAGS)
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
AR = @AR@
RANLIB = @RANLIB@
STRIP = @STRIP@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
LN_S = @LN_S@
MKDIR = mkdir
LDRDFLIBS = rdoff.$(O) symtab.$(O) collectn.$(O) \
MKDIR = mkdir
RM = rm
LIBOBJS = rdoff.$(O) rdfload.$(O) symtab.$(O) collectn.$(O) \
rdlib.$(O) segtab.$(O) hash.$(O)
RDXLIBS = rdoff.$(O) rdfload.$(O) symtab.$(O) collectn.$(O) hash.$(O)
NASMLIB = ../nasmlib.$(O) ../file.$(O)
RDFLIB = librdoff.$(A)
NASMLIB = ../libnasm.$(A)
LIBS = $(RDFLIB) $(NASMLIB)
# Binary suffixes
O = @OBJEXT@
X = @EXEEXT@
A = a
PROGRAMS = rdfdump$(X) ldrdf$(X) rdx$(X) rdflib$(X) \
rdf2bin$(X) rdf2com$(X) rdf2ith$(X) rdf2ihx$(X) rdf2srec$(X)
.SUFFIXES: .c .i .s .$(O) .1 .man
.SUFFIXES: .c .i .s .$(O) .$(A) .1 .man
.c.$(O):
$(CC) -c $(ALL_CFLAGS) $<
all: $(PROGRAMS)
rdfdump$(X): rdfdump.$(O) rdoff.$(O)
$(CC) $(LDFLAGS) -o rdfdump$(X) rdfdump.$(O) rdoff.$(O)
ldrdf$(X): ldrdf.$(O) $(LDRDFLIBS) $(NASMLIB)
$(CC) $(LDFLAGS) -o ldrdf$(X) ldrdf.$(O) $(LDRDFLIBS) $(NASMLIB)
rdx$(X): rdx.$(O) $(RDXLIBS) $(NASMLIB)
$(CC) $(LDFLAGS) -o rdx$(X) rdx.$(O) $(RDXLIBS) $(NASMLIB)
rdflib$(X): rdflib.$(O)
$(CC) $(LDFLAGS) -o rdflib$(X) rdflib.$(O)
rdf2bin$(X): rdf2bin.$(O) $(RDXLIBS) $(NASMLIB)
$(CC) $(LDFLAGS) -o rdf2bin$(X) rdf2bin.$(O) $(RDXLIBS) $(NASMLIB)
$(RDFLIB): $(LIBOBJS)
$(RM) -f $(RDFLIB)
$(AR) cq $(RDFLIB) $(LIBOBJS)
$(RANLIB) $(RDFLIB)
rdfdump$(X): rdfdump.$(O) $(LIBS)
$(CC) $(LDFLAGS) -o rdfdump$(X) rdfdump.$(O) $(LIBS)
ldrdf$(X): ldrdf.$(O) $(LIBS)
$(CC) $(LDFLAGS) -o ldrdf$(X) ldrdf.$(O) $(LIBS)
rdx$(X): rdx.$(O) $(LIBS)
$(CC) $(LDFLAGS) -o rdx$(X) rdx.$(O) $(LIBS)
rdflib$(X): rdflib.$(O) $(LIBS)
$(CC) $(LDFLAGS) -o rdflib$(X) rdflib.$(O) $(LIBS)
rdf2bin$(X): rdf2bin.$(O) $(LIBS)
$(CC) $(LDFLAGS) -o rdf2bin$(X) rdf2bin.$(O) $(LIBS)
rdf2com$(X):
rm -f rdf2com$(X) && $(LN_S) rdf2bin$(X) rdf2com$(X)
rdf2ith$(X):
@@ -81,7 +95,7 @@ rdflib.$(O): rdflib.c
segtab.$(O): segtab.c
clean:
rm -f *.$(O) $(PROGRAMS)
rm -f *.$(O) *.$(A) $(PROGRAMS)
spotless: clean
rm -f Makefile