# # Auto-configuring Makefile for the Netwide Assembler. # # The Netwide Assembler is copyright (C) 1996 Simon Tatham and # Julian Hall. All rights reserved. The software is # redistributable under the license given in the file "LICENSE" # distributed in the NASM archive. @SET_MAKE@ top_srcdir = @top_srcdir@ srcdir = @srcdir@ objdir = @builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ mandir = @mandir@ datarootdir = @datarootdir@ CC = @CC@ CFLAGS = @CFLAGS@ BUILD_CFLAGS = $(CFLAGS) @DEFS@ INTERNAL_CFLAGS = -I$(srcdir) -I$(objdir) \ -I$(srcdir)/include -I$(objdir)/include \ -I$(srcdir)/x86 -I$(objdir)/x86 \ -I$(srcdir)/asm -I$(objdir)/asm \ -I$(srcdir)/disasm -I$(objdir)/disasm \ -I$(srcdir)/output -I$(objdir)/output ALL_CFLAGS = $(BUILD_CFLAGS) $(INTERNAL_CFLAGS) LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ AR = @AR@ RANLIB = @RANLIB@ STRIP = @STRIP@ PERL = perl PERLFLAGS = -I$(srcdir)/perllib -I$(srcdir) RUNPERL = $(PERL) $(PERLFLAGS) INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ NROFF = @NROFF@ ASCIIDOC = @ASCIIDOC@ XMLTO = @XMLTO@ MAKENSIS = makensis MKDIR = mkdir RM = rm FIND = find # Binary suffixes O = @OBJEXT@ X = @EXEEXT@ A = @LIBEXT@ # Debug stuff ifeq ($(TRACE),1) CFLAGS += -DNASM_TRACE endif .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 .PHONY: manpages nsis .c.$(O): $(CC) -c $(ALL_CFLAGS) -o $@ $< .c.s: $(CC) -S $(ALL_CFLAGS) -o $@ $< .c.i: $(CC) -E $(ALL_CFLAGS) -o $@ $< .txt.xml: $(ASCIIDOC) -b docbook -d manpage -o $@ $< .xml.1: $(XMLTO) man --skip-validation $< 2>/dev/null #-- Begin File Lists --# NASM = asm/nasm.$(O) \ asm/float.$(O) \ asm/directiv.$(O) \ asm/assemble.$(O) asm/labels.$(O) asm/parser.$(O) \ asm/preproc.$(O) asm/quote.$(O) asm/pptok.$(O) \ asm/listing.$(O) asm/eval.$(O) asm/exprlib.$(O) \ asm/stdscan.$(O) \ asm/strfunc.$(O) asm/tokhash.$(O) \ asm/segalloc.$(O) \ asm/preproc-nop.$(O) \ asm/rdstrnum.$(O) \ \ macros/macros.$(O) \ \ output/outform.$(O) output/outlib.$(O) output/nulldbg.$(O) \ output/nullout.$(O) \ output/outbin.$(O) output/outaout.$(O) output/outcoff.$(O) \ output/outelf.$(O) \ output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \ output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \ output/codeview.$(O) NDISASM = disasm/ndisasm.$(O) disasm/disasm.$(O) disasm/sync.$(O) LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \ stdlib/strnlen.$(O) \ nasmlib/ver.$(O) \ nasmlib/crc64.$(O) nasmlib/malloc.$(O) \ nasmlib/error.$(O) nasmlib/md5c.$(O) nasmlib/string.$(O) \ nasmlib/file.$(O) nasmlib/ilog2.$(O) \ nasmlib/realpath.$(O) nasmlib/filename.$(O) nasmlib/srcfile.$(O) \ nasmlib/zerobuf.$(O) nasmlib/readnum.$(O) nasmlib/bsi.$(O) \ nasmlib/rbtree.$(O) nasmlib/hashtbl.$(O) \ nasmlib/raa.$(O) nasmlib/saa.$(O) \ common/common.$(O) \ x86/insnsa.$(O) x86/insnsb.$(O) x86/insnsd.$(O) x86/insnsn.$(O) \ x86/regs.$(O) x86/regvals.$(O) x86/regflags.$(O) x86/regdis.$(O) \ x86/disp8.$(O) x86/iflag.$(O) #-- End File Lists --# all: nasm$(X) ndisasm$(X) rdf NASMLIB = libnasm.$(A) $(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, # though, so it isn't necessary to have Perl just to recompile NASM # from the distribution. INSDEP = x86/insns.dat x86/insns.pl x86/iflag.c: $(INSDEP) $(RUNPERL) $(srcdir)/x86/insns.pl -fc \ $(srcdir)/x86/insns.dat x86/iflag.c x86/iflaggen.h: $(INSDEP) $(RUNPERL) $(srcdir)/x86/insns.pl -fh \ $(srcdir)/x86/insns.dat x86/iflaggen.h x86/insnsb.c: $(INSDEP) $(RUNPERL) $(srcdir)/x86/insns.pl -b \ $(srcdir)/x86/insns.dat x86/insnsb.c x86/insnsa.c: $(INSDEP) $(RUNPERL) $(srcdir)/x86/insns.pl -a \ $(srcdir)/x86/insns.dat x86/insnsa.c x86/insnsd.c: $(INSDEP) $(RUNPERL) $(srcdir)/x86/insns.pl -d \ $(srcdir)/x86/insns.dat x86/insnsd.c x86/insnsi.h: $(INSDEP) $(RUNPERL) $(srcdir)/x86/insns.pl -i \ $(srcdir)/x86/insns.dat x86/insnsi.h x86/insnsn.c: $(INSDEP) $(RUNPERL) $(srcdir)/x86/insns.pl -n \ $(srcdir)/x86/insns.dat x86/insnsn.c # These files contains all the standard macros that are derived from # the version number. version.h: version version.pl $(RUNPERL) $(srcdir)/version.pl h < $(srcdir)/version > version.h version.mac: version version.pl $(RUNPERL) $(srcdir)/version.pl mac < $(srcdir)/version > version.mac version.sed: version version.pl $(RUNPERL) $(srcdir)/version.pl sed < $(srcdir)/version > version.sed version.mak: version version.pl $(RUNPERL) $(srcdir)/version.pl make < $(srcdir)/version > version.mak nsis/version.nsh: version version.pl $(RUNPERL) $(srcdir)/version.pl nsis < $(srcdir)/version > nsis/version.nsh # This source file is generated from the standard macros file # `standard.mac' by another Perl script. Again, it's part of the # standard distribution. macros/macros.c: macros/macros.pl asm/pptok.ph version.mac \ $(srcdir)/macros/*.mac $(srcdir)/output/*.mac $(RUNPERL) $(srcdir)/macros/macros.pl version.mac \ $(srcdir)/macros/*.mac $(srcdir)/output/*.mac # These source files are generated from regs.dat by yet another # perl script. x86/regs.c: x86/regs.dat x86/regs.pl $(RUNPERL) $(srcdir)/x86/regs.pl c \ $(srcdir)/x86/regs.dat > x86/regs.c x86/regflags.c: x86/regs.dat x86/regs.pl $(RUNPERL) $(srcdir)/x86/regs.pl fc \ $(srcdir)/x86/regs.dat > x86/regflags.c x86/regdis.c: x86/regs.dat x86/regs.pl $(RUNPERL) $(srcdir)/x86/regs.pl dc \ $(srcdir)/x86/regs.dat > x86/regdis.c x86/regdis.h: x86/regs.dat x86/regs.pl $(RUNPERL) $(srcdir)/x86/regs.pl dh \ $(srcdir)/x86/regs.dat > x86/regdis.h x86/regvals.c: x86/regs.dat x86/regs.pl $(RUNPERL) $(srcdir)/x86/regs.pl vc \ $(srcdir)/x86/regs.dat > x86/regvals.c x86/regs.h: x86/regs.dat x86/regs.pl $(RUNPERL) $(srcdir)/x86/regs.pl h \ $(srcdir)/x86/regs.dat > x86/regs.h # Assembler token hash asm/tokhash.c: x86/insns.dat x86/regs.dat asm/tokens.dat asm/tokhash.pl \ perllib/phash.ph $(RUNPERL) $(srcdir)/asm/tokhash.pl c \ $(srcdir)/x86/insns.dat $(srcdir)/x86/regs.dat \ $(srcdir)/asm/tokens.dat > asm/tokhash.c # Assembler token metadata asm/tokens.h: x86/insns.dat x86/regs.dat asm/tokens.dat asm/tokhash.pl \ perllib/phash.ph $(RUNPERL) $(srcdir)/asm/tokhash.pl h \ $(srcdir)/x86/insns.dat $(srcdir)/x86/regs.dat \ $(srcdir)/asm/tokens.dat > asm/tokens.h # Preprocessor token hash asm/pptok.h: asm/pptok.dat asm/pptok.pl perllib/phash.ph $(RUNPERL) $(srcdir)/asm/pptok.pl h \ $(srcdir)/asm/pptok.dat asm/pptok.h asm/pptok.c: asm/pptok.dat asm/pptok.pl perllib/phash.ph $(RUNPERL) $(srcdir)/asm/pptok.pl c \ $(srcdir)/asm/pptok.dat asm/pptok.c asm/pptok.ph: asm/pptok.dat asm/pptok.pl perllib/phash.ph $(RUNPERL) $(srcdir)/asm/pptok.pl ph \ $(srcdir)/asm/pptok.dat asm/pptok.ph # Directives hash asm/directiv.h: asm/directiv.dat asm/directiv.pl perllib/phash.ph $(RUNPERL) $(srcdir)/asm/directiv.pl h \ $(srcdir)/asm/directiv.dat asm/directiv.h asm/directiv.c: asm/directiv.dat asm/directiv.pl perllib/phash.ph $(RUNPERL) $(srcdir)/asm/directiv.pl c \ $(srcdir)/asm/directiv.dat asm/directiv.c # This target generates all files that require perl. # This allows easier generation of distribution (see dist target). PERLREQ = x86/insnsb.c x86/insnsa.c x86/insnsd.c x86/insnsi.h x86/insnsn.c \ x86/regs.c x86/regs.h x86/regflags.c x86/regdis.c x86/regdis.h \ x86/regvals.c asm/tokhash.c asm/tokens.h asm/pptok.h asm/pptok.c \ x86/iflag.c x86/iflaggen.h \ macros/macros.c \ asm/pptok.ph asm/directiv.c asm/directiv.h \ version.h version.mac version.mak nsis/version.nsh perlreq: $(PERLREQ) # NSIS is not built except by explicit request, as it only applies to # Windows platforms nsis/arch.nsh: nsis/getpearch.pl nasm$(X) $(PERL) $(srcdir)/nsis/getpearch.pl nasm$(X) > nsis/arch.nsh # Should only be done after "make everything". # The use of redirection here keeps makensis from moving the cwd to the # source directory. nsis: nsis/nasm.nsi nsis/arch.nsh nsis/version.nsh $(MAKENSIS) -Dsrcdir="$(srcdir)" -Dobjdir="$(objdir)" - < "$<" # Generated manpages, also pregenerated for distribution manpages: nasm.1 ndisasm.1 install: nasm$(X) ndisasm$(X) $(MKDIR) -p $(INSTALLROOT)$(bindir) $(INSTALL_PROGRAM) nasm$(X) $(INSTALLROOT)$(bindir)/nasm$(X) $(INSTALL_PROGRAM) ndisasm$(X) $(INSTALLROOT)$(bindir)/ndisasm$(X) $(MKDIR) -p $(INSTALLROOT)$(mandir)/man1 $(INSTALL_DATA) $(srcdir)/nasm.1 $(INSTALLROOT)$(mandir)/man1/nasm.1 $(INSTALL_DATA) $(srcdir)/ndisasm.1 $(INSTALLROOT)$(mandir)/man1/ndisasm.1 clean: for d in . stdlib nasmlib output asm dis asm x86; do \ $(RM) -f "$$d"/*.$(O) "$$d"/*.s "$$d"/*.i "$$d"/*.$(A) ; \ done $(RM) -f nasm$(X) ndisasm$(X) $(RM) -f nasm-*-installer-*.exe $(RM) -f tags TAGS $(RM) -f nsis/arch.nsh cd rdoff && $(MAKE) clean distclean: clean $(RM) -f config.h config.log config.status $(RM) -f Makefile *~ *.bak *.lst *.bin $(RM) -f output/*~ output/*.bak $(RM) -f test/*.lst test/*.bin test/*.$(O) test/*.bin $(RM) -rf autom4te*.cache cd rdoff && $(MAKE) distclean cleaner: clean $(RM) -f $(PERLREQ) *.1 nasm.spec cd doc && $(MAKE) clean spotless: distclean cleaner $(RM) -f doc/Makefile doc/*~ doc/*.bak strip: $(STRIP) --strip-unneeded nasm$(X) ndisasm$(X) rdf: $(NASMLIB) cd rdoff && $(MAKE) all TAGS: $(RM) -f TAGS $(FIND) . -name '*.[hcS]' -print | xargs etags -a tags: $(RM) -f tags $(FIND) . -name '*.[hcS]' -print | xargs ctags -a cscope: $(RM) -f cscope.out cscope.files $(FIND) . -name '*.[hcS]' -print > cscope.files cscope -b -f cscope.out rdf_install install_rdf: cd rdoff && $(MAKE) install doc: cd doc && $(MAKE) all doc_install install_doc: cd doc && $(MAKE) install everything: all manpages doc rdf install_everything: everything install install_doc install_rdf dist: $(MAKE) alldeps $(MAKE) spotless perlreq manpages spec autoheader autoconf $(RM) -rf ./autom4te*.cache tar: dist tar -cvj --exclude CVS -C .. -f ../nasm-`cat version`-`date +%Y%m%d`.tar.bz2 `basename \`pwd\`` spec: nasm.spec nasm.spec: nasm.spec.in version.sed sed -f version.sed < nasm.spec.in > nasm.spec splint: splint -weak *.c test: nasm$(X) cd test && $(RUNPERL) performtest.pl --nasm=../nasm *.asm golden: nasm$(X) cd test && $(RUNPERL) performtest.pl --golden --nasm=../nasm *.asm # # This build dependencies in *ALL* makefiles. Partially for that reason, # it's expected to be invoked manually. # alldeps: perlreq tools/syncfiles.pl tools/mkdep.pl $(RUNPERL) tools/syncfiles.pl Makefile.in Mkfiles/*.mak $(RUNPERL) tools/mkdep.pl -M Makefile.in Mkfiles/*.mak -- \ . include asm common disasm macros nasmlib output stdlib x86 ./config.status #-- Magic hints to mkdep.pl --# # @object-ending: ".$(O)" # @path-separator: "/" #-- Everything below is generated by mkdep.pl - do not edit --# asm/assemble.$(O): asm/assemble.c asm/assemble.h include/compiler.h \ include/disp8.h include/insns.h asm/listing.h include/nasm.h \ include/nasmlib.h include/tables.h asm/directiv.$(O): asm/directiv.c include/compiler.h asm/directiv.h \ include/hashtbl.h include/nasm.h asm/eval.$(O): asm/eval.c include/compiler.h asm/eval.h asm/float.h \ include/labels.h include/nasm.h include/nasmlib.h asm/exprlib.$(O): asm/exprlib.c include/nasm.h asm/float.$(O): asm/float.c include/compiler.h asm/float.h include/nasm.h asm/labels.$(O): asm/labels.c include/compiler.h include/hashtbl.h \ include/labels.h include/nasm.h include/nasmlib.h asm/listing.$(O): asm/listing.c include/compiler.h asm/listing.h \ include/nasm.h include/nasmlib.h asm/nasm.$(O): asm/nasm.c asm/assemble.h include/compiler.h asm/eval.h \ asm/float.h include/iflag.h include/insns.h include/labels.h asm/listing.h \ include/nasm.h include/nasmlib.h output/outform.h asm/parser.h \ asm/preproc.h include/raa.h include/saa.h asm/stdscan.h include/ver.h asm/parser.$(O): asm/parser.c include/compiler.h asm/eval.h asm/float.h \ include/insns.h include/nasm.h include/nasmlib.h asm/parser.h asm/stdscan.h \ include/tables.h asm/pptok.$(O): asm/pptok.c include/compiler.h include/hashtbl.h \ include/nasmlib.h asm/preproc.h asm/preproc-nop.$(O): asm/preproc-nop.c include/compiler.h asm/listing.h \ include/nasm.h include/nasmlib.h asm/preproc.h asm/preproc.$(O): asm/preproc.c include/compiler.h asm/eval.h \ include/hashtbl.h asm/listing.h include/nasm.h include/nasmlib.h \ asm/preproc.h asm/quote.h asm/stdscan.h include/tables.h asm/tokens.h asm/quote.$(O): asm/quote.c include/compiler.h include/nasmlib.h asm/quote.h asm/rdstrnum.$(O): asm/rdstrnum.c include/compiler.h include/nasm.h \ include/nasmlib.h asm/segalloc.$(O): asm/segalloc.c include/compiler.h include/insns.h \ include/nasm.h include/nasmlib.h asm/stdscan.$(O): asm/stdscan.c include/compiler.h include/insns.h \ include/nasm.h include/nasmlib.h asm/quote.h asm/stdscan.h asm/strfunc.$(O): asm/strfunc.c include/nasm.h include/nasmlib.h asm/tokhash.$(O): asm/tokhash.c include/compiler.h include/hashtbl.h \ include/insns.h include/nasm.h asm/stdscan.h common/common.$(O): common/common.c include/compiler.h include/insns.h \ include/nasm.h include/nasmlib.h disasm/disasm.$(O): disasm/disasm.c include/compiler.h disasm/disasm.h \ include/disp8.h include/insns.h include/nasm.h x86/regdis.h disasm/sync.h \ include/tables.h disasm/ndisasm.$(O): disasm/ndisasm.c include/compiler.h disasm/disasm.h \ include/insns.h include/nasm.h include/nasmlib.h disasm/sync.h \ include/ver.h disasm/sync.$(O): disasm/sync.c include/compiler.h include/nasmlib.h \ disasm/sync.h macros/macros.$(O): macros/macros.c include/hashtbl.h include/nasmlib.h \ output/outform.h include/tables.h nasmlib/bsi.$(O): nasmlib/bsi.c include/compiler.h include/nasmlib.h nasmlib/crc64.$(O): nasmlib/crc64.c include/compiler.h include/hashtbl.h \ include/nasmlib.h nasmlib/error.$(O): nasmlib/error.c include/compiler.h include/nasmlib.h nasmlib/file.$(O): nasmlib/file.c include/compiler.h include/nasmlib.h nasmlib/filename.$(O): nasmlib/filename.c include/compiler.h \ include/nasmlib.h nasmlib/hashtbl.$(O): nasmlib/hashtbl.c include/compiler.h include/hashtbl.h \ include/nasm.h nasmlib/ilog2.$(O): nasmlib/ilog2.c include/compiler.h include/nasmlib.h nasmlib/malloc.$(O): nasmlib/malloc.c include/compiler.h include/nasmlib.h nasmlib/md5c.$(O): nasmlib/md5c.c include/md5.h nasmlib/raa.$(O): nasmlib/raa.c include/nasmlib.h include/raa.h nasmlib/rbtree.$(O): nasmlib/rbtree.c include/rbtree.h nasmlib/readnum.$(O): nasmlib/readnum.c include/compiler.h include/nasm.h \ include/nasmlib.h nasmlib/realpath.$(O): nasmlib/realpath.c include/compiler.h \ include/nasmlib.h nasmlib/saa.$(O): nasmlib/saa.c include/compiler.h include/nasmlib.h \ include/saa.h nasmlib/srcfile.$(O): nasmlib/srcfile.c include/compiler.h include/hashtbl.h \ include/nasmlib.h nasmlib/string.$(O): nasmlib/string.c include/compiler.h include/nasmlib.h nasmlib/ver.$(O): nasmlib/ver.c include/ver.h version.h nasmlib/zerobuf.$(O): nasmlib/zerobuf.c include/compiler.h include/nasmlib.h output/codeview.$(O): output/codeview.c include/compiler.h include/hashtbl.h \ include/md5.h include/nasm.h include/nasmlib.h output/outlib.h \ output/pecoff.h asm/preproc.h include/saa.h version.h output/nulldbg.$(O): output/nulldbg.c include/nasm.h include/nasmlib.h \ output/outlib.h output/nullout.$(O): output/nullout.c include/nasm.h include/nasmlib.h \ output/outlib.h output/outaout.$(O): output/outaout.c include/compiler.h asm/eval.h \ include/nasm.h include/nasmlib.h output/outform.h output/outlib.h \ include/raa.h include/saa.h asm/stdscan.h output/outas86.$(O): output/outas86.c include/compiler.h include/nasm.h \ include/nasmlib.h output/outform.h output/outlib.h include/raa.h \ include/saa.h output/outbin.$(O): output/outbin.c include/compiler.h asm/eval.h \ include/labels.h include/nasm.h include/nasmlib.h output/outform.h \ output/outlib.h include/saa.h asm/stdscan.h output/outcoff.$(O): output/outcoff.c include/compiler.h asm/eval.h \ include/nasm.h include/nasmlib.h output/outform.h output/outlib.h \ output/pecoff.h include/raa.h include/saa.h output/outdbg.$(O): output/outdbg.c include/compiler.h include/nasm.h \ include/nasmlib.h output/outform.h output/outelf.$(O): output/outelf.c include/compiler.h output/dwarf.h \ output/elf.h asm/eval.h include/nasm.h include/nasmlib.h output/outelf.h \ output/outform.h output/outlib.h include/raa.h include/rbtree.h \ include/saa.h output/stabs.h asm/stdscan.h include/ver.h output/outform.$(O): output/outform.c include/compiler.h output/outform.h output/outieee.$(O): output/outieee.c include/compiler.h include/nasm.h \ include/nasmlib.h output/outform.h output/outlib.h include/ver.h output/outlib.$(O): output/outlib.c include/compiler.h include/nasm.h \ output/outlib.h output/outmacho.$(O): output/outmacho.c include/compiler.h include/nasm.h \ include/nasmlib.h output/outform.h output/outlib.h include/raa.h \ include/rbtree.h include/saa.h output/outobj.$(O): output/outobj.c include/compiler.h asm/eval.h \ include/nasm.h include/nasmlib.h output/outform.h output/outlib.h \ asm/stdscan.h include/ver.h output/outrdf2.$(O): output/outrdf2.c include/compiler.h include/nasm.h \ include/nasmlib.h output/outform.h output/outlib.h include/rdoff.h \ include/saa.h stdlib/snprintf.$(O): stdlib/snprintf.c include/compiler.h include/nasmlib.h stdlib/strlcpy.$(O): stdlib/strlcpy.c include/compiler.h stdlib/strnlen.$(O): stdlib/strnlen.c include/compiler.h stdlib/vsnprintf.$(O): stdlib/vsnprintf.c include/compiler.h \ include/nasmlib.h x86/disp8.$(O): x86/disp8.c include/disp8.h x86/iflag.$(O): x86/iflag.c include/iflag.h x86/insnsa.$(O): x86/insnsa.c include/insns.h include/nasm.h x86/insnsb.$(O): x86/insnsb.c include/insns.h include/nasm.h x86/insnsd.$(O): x86/insnsd.c include/insns.h include/nasm.h x86/insnsn.$(O): x86/insnsn.c include/tables.h x86/regdis.$(O): x86/regdis.c x86/regdis.h x86/regflags.$(O): x86/regflags.c include/nasm.h include/tables.h x86/regs.$(O): x86/regs.c include/tables.h x86/regvals.$(O): x86/regvals.c include/tables.h