LoongArch: gas: Fix make check-gas crash
[binutils-gdb.git] / gas / Makefile.am
index 596e469eadc76d769b5b5c3f3262d432c04c276b..0e98ca3ec85c8aeda3fec05f04cd7e21e9992f7d 100644 (file)
@@ -1,6 +1,6 @@
 ## Process this file with automake to generate Makefile.in
 #
-#   Copyright (C) 2012-2016 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2023 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # <http://www.gnu.org/licenses/>.
 #
 
-AUTOMAKE_OPTIONS = 1.11 dejagnu foreign no-dist
+AUTOMAKE_OPTIONS = dejagnu foreign no-dist subdir-objects info-in-builddir no-texinfo.tex
 ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
 
-SUBDIRS = doc po
+MAINTAINERCLEANFILES =
+
+SUBDIRS = po
 
 tooldir = $(exec_prefix)/$(target_alias)
 
 # This is where we get zlib from.  zlibdir is -L../zlib and zlibinc is
 # -I../zlib, unless we were configured with --with-system-zlib, in which
 # case both are empty.
+ZLIB = @zlibdir@ -lz
 ZLIBINC = @zlibinc@
 
 YACC = `if [ -f ../bison/bison ] ; then echo ../bison/bison -y -L../bison/bison ; else echo @YACC@ ; fi`
@@ -39,18 +42,18 @@ am__skipyacc =
 
 WARN_CFLAGS = @WARN_CFLAGS@ @WARN_WRITE_STRINGS@
 NO_WERROR = @NO_WERROR@
-AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
+AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) $(ZSTD_CFLAGS)
 
 TARG_CPU = @target_cpu_type@
 TARG_CPU_C = $(srcdir)/config/tc-@target_cpu_type@.c
-TARG_CPU_O = tc-@target_cpu_type@.@OBJEXT@
+TARG_CPU_O = config/tc-@target_cpu_type@.@OBJEXT@
 TARG_CPU_H = $(srcdir)/config/tc-@target_cpu_type@.h
 OBJ_FORMAT_C = $(srcdir)/config/obj-@obj_format@.c
-OBJ_FORMAT_O = obj-@obj_format@.@OBJEXT@
+OBJ_FORMAT_O = config/obj-@obj_format@.@OBJEXT@
 OBJ_FORMAT_H = $(srcdir)/config/obj-@obj_format@.h
 TARG_ENV_H = $(srcdir)/config/te-@te_file@.h
 ATOF_TARG_C = $(srcdir)/config/atof-@atof@.c
-ATOF_TARG_O = atof-@atof@.@OBJEXT@
+ATOF_TARG_O = config/atof-@atof@.@OBJEXT@
 
 # use @target_cpu_type@ for refering to configured target name
 IT_HDRS=itbl-parse.h $(srcdir)/itbl-ops.h
@@ -65,6 +68,7 @@ GAS_CFILES = \
        app.c \
        as.c \
        atof-generic.c \
+       codeview.c \
        compress-debug.c \
        cond.c \
        depend.c \
@@ -77,6 +81,7 @@ GAS_CFILES = \
        flonum-konst.c \
        flonum-mult.c \
        frags.c \
+       gen-sframe.c \
        hash.c \
        input-file.c \
        input-scrub.c \
@@ -88,6 +93,7 @@ GAS_CFILES = \
        read.c \
        remap.c \
        sb.c \
+       sframe-opt.c \
        stabs.c \
        subsegs.c \
        symbols.c \
@@ -101,6 +107,7 @@ HFILES = \
        bignum.h \
        bit_fix.h \
        cgen.h \
+       codeview.h \
        compress-debug.h \
        dwarf2dbg.h \
        dw2gencfi.h \
@@ -110,6 +117,7 @@ HFILES = \
        expr.h \
        flonum.h \
        frags.h \
+       gen-sframe.h \
        hash.h \
        input-file.h \
        itbl-lex.h \
@@ -120,7 +128,6 @@ HFILES = \
        output-file.h \
        read.h \
        sb.h \
-       struc-symbol.h \
        subsegs.h \
        symbols.h \
        tc.h \
@@ -135,9 +142,11 @@ TARGET_CPU_CFILES = \
        config/tc-arm.c \
        config/tc-avr.c \
        config/tc-bfin.c \
+       config/tc-bpf.c \
        config/tc-cr16.c \
        config/tc-cris.c \
        config/tc-crx.c \
+       config/tc-csky.c \
        config/tc-d10v.c \
        config/tc-d30v.c \
        config/tc-dlx.c \
@@ -148,17 +157,17 @@ TARGET_CPU_CFILES = \
        config/tc-h8300.c \
        config/tc-hppa.c \
        config/tc-ia64.c \
-       config/tc-i370.c \
        config/tc-i386.c \
-       config/tc-i860.c \
-       config/tc-i960.c \
        config/tc-ip2k.c \
        config/tc-iq2000.c \
+       config/tc-kvx.c \
        config/tc-lm32.c \
+       config/tc-loongarch.c \
        config/tc-m32c.c \
        config/tc-m32r.c \
        config/tc-m68hc11.c \
        config/tc-m68k.c \
+       config/tc-s12z.c \
        config/tc-mcore.c \
        config/tc-mep.c \
        config/tc-metag.c \
@@ -177,12 +186,13 @@ TARGET_CPU_CFILES = \
        config/tc-pdp11.c \
        config/tc-pj.c \
        config/tc-ppc.c \
+       config/tc-pru.c \
+       config/tc-riscv.c \
        config/tc-rl78.c \
        config/tc-rx.c \
        config/tc-s390.c \
        config/tc-score.c \
        config/tc-sh.c \
-       config/tc-sh64.c \
        config/tc-sparc.c \
        config/tc-spu.c \
        config/tc-tic30.c \
@@ -194,13 +204,12 @@ TARGET_CPU_CFILES = \
        config/tc-v850.c \
        config/tc-vax.c \
        config/tc-visium.c \
+       config/tc-wasm32.c \
        config/tc-xstormy16.c \
-       config/tc-xc16x.c \
        config/tc-xgate.c \
        config/tc-xtensa.c \
        config/tc-z80.c \
-       config/tc-z8k.c \
-       config/xtensa-relax.c
+       config/tc-z8k.c
 
 TARGET_CPU_HFILES = \
        config/tc-aarch64.h \
@@ -209,9 +218,11 @@ TARGET_CPU_HFILES = \
        config/tc-arm.h \
        config/tc-avr.h \
        config/tc-bfin.h \
+       config/tc-bpf.h \
        config/tc-cr16.h \
        config/tc-cris.h \
        config/tc-crx.h \
+       config/tc-csky.h \
        config/tc-d10v.h \
        config/tc-d30v.h \
        config/tc-dlx.h \
@@ -222,17 +233,16 @@ TARGET_CPU_HFILES = \
        config/tc-h8300.h \
        config/tc-hppa.h \
        config/tc-ia64.h \
-       config/tc-i370.h \
        config/tc-i386.h \
-       config/tc-i860.h \
-       config/tc-i960.h \
        config/tc-ip2k.h \
        config/tc-iq2000.h \
+       config/tc-kvx.h \
        config/tc-lm32.h \
        config/tc-m32c.h \
        config/tc-m32r.h \
        config/tc-m68hc11.h \
        config/tc-m68k.h \
+       config/tc-s12z.h \
        config/tc-mcore.h \
        config/tc-mep.h \
        config/tc-metag.h \
@@ -250,12 +260,13 @@ TARGET_CPU_HFILES = \
        config/tc-pdp11.h \
        config/tc-pj.h \
        config/tc-ppc.h \
+       config/tc-pru.h \
+       config/tc-riscv.h \
        config/tc-rl78.h \
        config/tc-rx.h \
        config/tc-s390.h \
        config/tc-score.h \
        config/tc-sh.h \
-       config/tc-sh64.h \
        config/tc-sparc.h \
        config/tc-spu.h \
        config/tc-tic30.h \
@@ -267,13 +278,19 @@ TARGET_CPU_HFILES = \
        config/tc-v850.h \
        config/tc-vax.h \
        config/tc-visium.h \
+       config/tc-wasm32.h \
        config/tc-xstormy16.h \
-       config/tc-xc16x.h \
        config/tc-xgate.h \
        config/tc-xtensa.h \
        config/tc-z80.h \
-       config/tc-z8k.h \
-       config/xtensa-relax.h
+       config/tc-z8k.h
+
+TARGET_EXTRA_FILES = \
+       config/bfin-lex-wrapper.c \
+       config/xtensa-relax.c \
+       config/xtensa-relax.h \
+       config/kvx-parse.h \
+       config/kvx-parse.c
 
 # OBJ files in config
 
@@ -308,8 +325,10 @@ TARG_ENV_HFILES = \
        config/te-armfbsdeabi.h \
        config/te-armfbsdvfp.h \
        config/te-armlinuxeabi.h \
-       config/te-dynix.h \
-       config/te-epoc-pe.h \
+       config/te-csky_abiv1.h \
+       config/te-csky_abiv1_linux.h \
+       config/te-csky_abiv2.h \
+       config/te-csky_abiv2_linux.h \
        config/te-freebsd.h \
        config/te-generic.h \
        config/te-gnu.h \
@@ -317,24 +336,15 @@ TARG_ENV_HFILES = \
        config/te-hppa.h \
        config/te-hppa64.h \
        config/te-hppalinux64.h \
-       config/te-i386aix.h \
        config/te-ia64aix.h \
        config/te-interix.h \
        config/te-lynx.h \
-       config/te-mach.h \
        config/te-macos.h \
        config/te-nbsd.h \
        config/te-nbsd532.h \
-       config/te-netware.h \
        config/te-pc532mach.h \
        config/te-pe.h \
-       config/te-psos.h \
-       config/te-riscix.h \
        config/te-solaris.h \
-       config/te-sparcaout.h \
-       config/te-sun3.h \
-       config/te-svr4.h \
-       config/te-symbian.h \
        config/te-tmips.h \
        config/te-vxworks.h \
        config/te-wince-pe.h
@@ -359,7 +369,7 @@ CONFIG_ATOF_CFILES = \
 POTFILES = $(MULTI_CFILES) $(CONFIG_ATOF_CFILES) \
        $(TARG_ENV_HFILES) $(TARG_ENV_CFILES) $(OBJ_FORMAT_HFILES) \
        $(OBJ_FORMAT_CFILES) $(TARGET_CPU_HFILES) $(TARGET_CPU_CFILES) \
-       $(HFILES) $(CFILES)
+       $(TARGET_EXTRA_FILES) $(HFILES) $(CFILES)
 po/POTFILES.in: @MAINT@ Makefile
        for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
          && mv tmp $(srcdir)/po/POTFILES.in
@@ -370,10 +380,11 @@ noinst_PROGRAMS = as-new
 noinst_SCRIPTS = $(GDBINIT)
 EXTRA_SCRIPTS = .gdbinit
 
-EXTRA_DIST = m68k-parse.c itbl-parse.c itbl-parse.h itbl-lex.c \
-       bfin-parse.c bfin-parse.h bfin-lex.c \
-       rl78-parse.c rl78-parse.h \
-       rx-parse.c rx-parse.h
+EXTRA_DIST = config/m68k-parse.c itbl-parse.c itbl-parse.h itbl-lex.c \
+       config/bfin-parse.c config/bfin-parse.h config/bfin-lex.c \
+       config/rl78-parse.c config/rl78-parse.h \
+       config/rx-parse.c config/rx-parse.h \
+       config/loongarch-parse.c config/loongarch-parse.h config/loongarch-lex.c
 
 diststuff: $(EXTRA_DIST) info
 
@@ -391,7 +402,7 @@ INCDIR = $(BASEDIR)/include
 # so that tm.h and config.h will be found in the compilation
 # subdirectory rather than in the source directory.
 AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(srcdir)/config \
-       -I$(INCDIR) -I$(srcdir)/.. -I$(BFDDIR) @INCINTL@ \
+       -I$(INCDIR) -I$(srcdir)/.. -I$(BFDDIR) @INCINTL@ @LARGEFILE_CPPFLAGS@ \
        -DLOCALEDIR="\"$(datadir)/locale\""
 
 # How to link with both our special library facilities
@@ -404,12 +415,13 @@ STAGESTUFF = *.@OBJEXT@ $(noinst_PROGRAMS)
 
 as_new_SOURCES = $(GAS_CFILES)
 as_new_LDADD = $(TARG_CPU_O) $(OBJ_FORMAT_O) $(ATOF_TARG_O) \
-       $(extra_objects) $(GASLIBS) $(LIBINTL) $(LIBM)
+       $(extra_objects) $(GASLIBS) $(LIBINTL) $(LIBM) $(ZLIB) $(ZSTD_LIBS)
 as_new_DEPENDENCIES = $(TARG_CPU_O) $(OBJ_FORMAT_O) $(ATOF_TARG_O) \
        $(extra_objects) $(GASLIBS) $(LIBINTL_DEP)
 EXTRA_as_new_SOURCES = $(CFILES) $(HFILES) $(TARGET_CPU_CFILES) \
-       $(TARGET_CPU_HFILES) $(OBJ_FORMAT_CFILES) $(OBJ_FORMAT_HFILES) \
-       $(TARG_ENV_CFILES) $(CONFIG_ATOF_CFILES) $(MULTI_CFILES)
+       $(TARGET_CPU_HFILES) $(TARGET_EXTRA_FILES) $(TARG_ENV_CFILES) \
+       $(OBJ_FORMAT_CFILES) $(OBJ_FORMAT_HFILES) \
+       $(CONFIG_ATOF_CFILES) $(MULTI_CFILES)
 
 EXPECT = expect
 RUNTEST = runtest
@@ -435,125 +447,73 @@ check-DEJAGNU: site.exp
        else echo "WARNING: could not find \`runtest'" 1>&2; :;\
        fi
 
-# The m68k operand parser.
-
-EXTRA_as_new_SOURCES += config/m68k-parse.y config/bfin-parse.y
-
-# If m68k-parse.y is in a different directory, then ylwrap will use an
-# absolute path when it invokes yacc, which will cause yacc to put the
-# absolute path into the generated file.  That's a pain when it comes
-# to generating snapshots, because it introduces spurious diffs.
-# Since when we make the snapshots $(srcdir) = ".", we check for that
-# case and handle it differently.  This means that anybody who
-# configures with $(srcdir) = "." will have to set their path in the
-# debugger if they want to debug m68k-parse.y.  This is bad, but on
-# the other hand it's good that people who use the prebuilt
-# m68k-parse.c don't get a spurious absolute path.
-m68k-parse.c: $(srcdir)/config/m68k-parse.y
-       f=$(srcdir)/config/m68k-parse.y; \
-       if [ $$f = "./config/m68k-parse.y" ]; then \
-         ln -s config/m68k-parse.y . > /dev/null 2>/dev/null || \
-          ln config/m68k-parse.y . > /dev/null 2>/dev/null || \
-          cp config/m68k-parse.y . >/dev/null 2>/dev/null; \
-         f=m68k-parse.y; \
-       else true; fi; \
-       $(SHELL) $(YLWRAP) $$f y.tab.c m68k-parse.c -- $(YACCCOMPILE); \
-       if [ $$f = "m68k-parse.y" ]; then \
-         rm -f m68k-parse.y; \
-       else true; fi
-# Disable -Werror, if it has been enabled, since old versions of bison/
-# yacc will produce working code which contain compile time warnings.
-m68k-parse.@OBJEXT@: m68k-parse.c
-if am__fastdepCC
-       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `test -f m68k-parse.c || echo $(srcdir)/`m68k-parse.c $(NO_WERROR)
-       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-else
-if AMDEP
-       source='m68k-parse.c' object='$@' libtool=no @AMDEPBACKSLASH@
-       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-endif
-       $(COMPILE) -c `test -f m68k-parse.c || echo $(srcdir)/`m68k-parse.c $(NO_WERROR)
-endif
+development.exp: $(BFDDIR)/development.sh
+       $(EGREP) "(development|experimental)=" $(BFDDIR)/development.sh  \
+         | $(AWK) -F= '{ print "set " $$1 " " $$2 }' > $@
 
-# Don't let the .y.h rule clobber m68k-parse.h.
-m68k-parse.h: ; @true
-$(srcdir)/config/m68k-parse.h: ; @true
+config/tc-i386.o: $(srcdir)/../opcodes/i386-init.h $(srcdir)/../opcodes/i386-tbl.h
 
-bfin-parse.c: $(srcdir)/config/bfin-parse.y
-       $(SHELL) $(YLWRAP) $(srcdir)/config/bfin-parse.y y.tab.c bfin-parse.c y.tab.h bfin-parse.h -- $(YACCCOMPILE) -d ;
-bfin-parse.h: bfin-parse.c
-bfin-parse.@OBJEXT@: bfin-parse.c \
- $(srcdir)/config/bfin-aux.h $(srcdir)/config/bfin-defs.h \
- $(INCDIR)/elf/common.h $(INCDIR)/elf/bfin.h $(BFDDIR)/libbfd.h
+i386_tbl_deps = $(srcdir)/../opcodes/i386-opc.tbl \
+       $(srcdir)/../opcodes/i386-reg.tbl \
+       $(srcdir)/../opcodes/i386-gen.c $(srcdir)/../opcodes/i386-opc.h
 
-bfin-parse.h: ; @true
-$(srcdir)/config/bfin-parse.h: ; @true
+$(srcdir)/../opcodes/i386%init.h $(srcdir)/../opcodes/i386%tbl.h $(srcdir)/../opcodes/i386%mnem.h: @MAINT@ $(i386_tbl_deps)
+       @echo '"$@" is outdated wrt "$?"' >&2
+       @echo 'Please rebuild from the top level or in $(CURDIR)/../opcodes/' >&2
+       @false
 
-bfin-lex.c: $(srcdir)/config/bfin-lex.l
-       $(SHELL) $(YLWRAP) $(srcdir)/config/bfin-lex.l lex.yy.c bfin-lex.c -- $(LEXCOMPILE)
-bfin-lex-wrapper.@OBJEXT@: $(srcdir)/config/bfin-lex-wrapper.c bfin-lex.c bfin-parse.h $(srcdir)/config/bfin-defs.h
-if am__fastdepCC
-       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $(srcdir)/config/bfin-lex-wrapper.c $(NO_WERROR)
-       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-else
-if AMDEP
-       source='bfin-lex-wrapper.c' object='$@' libtool=no @AMDEPBACKSLASH@
-       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-endif
-       $(COMPILE) -c $(srcdir)/config/bfin-lex-wrapper.c $(NO_WERROR)
-endif
+EXTRA_as_new_SOURCES += config/m68k-parse.y
+config/m68k-parse.c: $(srcdir)/config/m68k-parse.y
+       $(SHELL) $(YLWRAP) $(srcdir)/config/m68k-parse.y y.tab.c $@ -- $(YACCCOMPILE)
+config/m68k-parse.h: config/m68k-parse.c
+       @true
 
-rl78-parse.c: $(srcdir)/config/rl78-parse.y
-       $(SHELL) $(YLWRAP) $(srcdir)/config/rl78-parse.y y.tab.c rl78-parse.c y.tab.h rl78-parse.h -- $(YACCCOMPILE) -d ;
-rl78-parse.h: rl78-parse.c
-rl78-parse.@OBJEXT@: rl78-parse.c rl78-parse.h $(srcdir)/config/rl78-defs.h \
- $(INCDIR)/elf/common.h $(INCDIR)/elf/rl78.h $(BFDDIR)/libbfd.h
+EXTRA_as_new_SOURCES += config/bfin-parse.y
+config/bfin-parse.c: $(srcdir)/config/bfin-parse.y
+       $(SHELL) $(YLWRAP) $(srcdir)/config/bfin-parse.y y.tab.c $@ y.tab.h config/bfin-parse.h -- $(YACCCOMPILE) -d ;
+config/bfin-parse.h: config/bfin-parse.c
+       @true
 
-rl78-defs.h: ; @true
+EXTRA_as_new_SOURCES += config/bfin-lex.l
+config/bfin-lex.c: $(srcdir)/config/bfin-lex.l
+       $(SHELL) $(YLWRAP) $(srcdir)/config/bfin-lex.l lex.yy.c $@ -- $(LEXCOMPILE)
 
-rx-parse.c: $(srcdir)/config/rx-parse.y
-       $(SHELL) $(YLWRAP) $(srcdir)/config/rx-parse.y y.tab.c rx-parse.c y.tab.h rx-parse.h -- $(YACCCOMPILE) -d ;
-rx-parse.h: rx-parse.c
-rx-parse.@OBJEXT@: rx-parse.c rx-parse.h $(srcdir)/config/rx-defs.h \
- $(INCDIR)/elf/common.h $(INCDIR)/elf/rx.h $(BFDDIR)/libbfd.h
+config/bfin-lex-wrapper.@OBJEXT@: config/bfin-lex.c config/bfin-parse.h
 
-rx-defs.h: ; @true
-$(srcdir)/config/rx-defs.h: ; @true
+EXTRA_as_new_SOURCES += config/rl78-parse.y
+config/rl78-parse.c: $(srcdir)/config/rl78-parse.y
+       $(SHELL) $(YLWRAP) $(srcdir)/config/rl78-parse.y y.tab.c $@ y.tab.h config/rl78-parse.h -- $(YACCCOMPILE) -d ;
+config/rl78-parse.h: config/rl78-parse.c
+       @true
 
-# The instruction table specification lexical analyzer and parser.
+EXTRA_as_new_SOURCES += config/rx-parse.y
+config/rx-parse.c: $(srcdir)/config/rx-parse.y
+       $(SHELL) $(YLWRAP) $(srcdir)/config/rx-parse.y y.tab.c $@ y.tab.h config/rx-parse.h -- $(YACCCOMPILE) -d ;
+config/rx-parse.h: config/rx-parse.c
+       @true
 
-# Disable -Werror, if it has been enabled, since old versions of bison/
-# yacc will produce working code which contain compile time warnings.
-itbl-lex-wrapper.@OBJEXT@: itbl-lex-wrapper.c itbl-lex.c itbl-parse.h
-if am__fastdepCC
-       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $(srcdir)/itbl-lex-wrapper.c $(NO_WERROR)
-       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-else
-if AMDEP
-       source='itbl-lex-wrapper.c' object='$@' libtool=no @AMDEPBACKSLASH@
-       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-endif
-       $(COMPILE) -c $(srcdir)/itbl-lex-wrapper.c $(NO_WERROR)
-endif
+# The LoongArch lexical analyzer and parser.
+EXTRA_as_new_SOURCES += config/loongarch-parse.y
+config/loongarch-parse.c: $(srcdir)/config/loongarch-parse.y
+       $(SHELL) $(YLWRAP) $(srcdir)/config/loongarch-parse.y y.tab.c $@ y.tab.h config/loongarch-parse.h -- $(YACCCOMPILE) -d ;
+config/loongarch-parse.h: config/loongarch-parse.c
+       @true
 
-# Disable -Werror, if it has been enabled, since old versions of bison/
-# yacc will produce working code which contain compile time warnings.
-itbl-parse.@OBJEXT@: itbl-parse.c
-if am__fastdepCC
-       $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `test -f itbl-parse.c || echo $(srcdir)/`itbl-parse.c $(NO_WERROR)
-       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-else
-if AMDEP
-       source='itbl-parse.c' object='$@' libtool=no @AMDEPBACKSLASH@
-       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-endif
-       $(COMPILE) -c `test -f itbl-parse.c || echo $(srcdir)/`itbl-parse.c $(NO_WERROR)
-endif
+EXTRA_as_new_SOURCES += config/loongarch-lex.l
+config/loongarch-lex.c: $(srcdir)/config/loongarch-lex.l
+       $(SHELL) $(YLWRAP) $(srcdir)/config/loongarch-lex.l lex.yy.c $@ -- $(LEXCOMPILE)
+
+config/loongarch-lex-wrapper.@OBJEXT@: config/loongarch-lex.c config/loongarch-parse.h
+
+# The mips instruction table specification lexical analyzer and parser.
+
+itbl-lex-wrapper.@OBJEXT@: itbl-lex.c itbl-parse.h
 
 itbl-parse.c: $(srcdir)/itbl-parse.y
-       $(SHELL) $(YLWRAP) $(srcdir)/itbl-parse.y y.tab.c itbl-parse.c y.tab.h itbl-parse.h -- $(YACCCOMPILE) -d
+       $(SHELL) $(YLWRAP) $(srcdir)/itbl-parse.y y.tab.c $@ y.tab.h itbl-parse.h -- $(YACCCOMPILE) -d
 
-itbl-parse.h: itbl-parse.c ; @true
+itbl-parse.h: itbl-parse.c
+       @true
 
 itbl-ops.@OBJEXT@: itbl-parse.h
 
@@ -600,7 +560,7 @@ cgen.@OBJEXT@: cgen.c cgen.h cgen-desc.h subsegs.h \
 
 MOSTLYCLEANFILES = $(STAGESTUFF) core \
        testsuite/*.@OBJEXT@ testsuite/*.out testsuite/gas.log testsuite/gas.sum \
-       testsuite/site.exp site.bak site.exp stage stage1 stage2
+       testsuite/site.exp site.bak site.exp development.exp stage stage1 stage2
 
 .PHONY: install-exec-local install-data-local
 .PHONY: install-exec-bindir install-exec-tooldir
@@ -671,21 +631,15 @@ stage3:
 
 against=stage2
 
-# This rule is derived from corresponding code in the Makefile.in for gcc.
-# The "tail +16c" is to bypass headers which may include timestamps or
-# temporary assembly file names.
 comparison:
        x=0 ; \
        for file in *.@OBJEXT@ ; do \
-         tail +16c ./$$file > tmp-foo1; \
-         if tail +16c ${against}/$$file > tmp-foo2 2>/dev/null ; then \
-           if cmp tmp-foo1 tmp-foo2 ; then \
-             true ; \
-           else \
-             echo $$file differs ; \
-             x=1 ; \
-           fi ; \
-         else true; fi ; \
+         f1=./$$file; f2=${against}/$$file; \
+         $(do_compare) > /dev/null 2>&1; \
+         if test $$? -ne 0; then \
+           echo $$file differs ; \
+           x=1 ; \
+         fi ; \
        done ; \
        exit $$x
        -rm -f tmp-foo*
@@ -707,3 +661,7 @@ de-stage3:
 # Reconfigure if configure.tgt changes.
 # development.sh is used to determine -Werror default.
 CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.tgt $(BFDDIR)/development.sh
+
+EXTRA_DEJAGNU_SITE_CONFIG = development.exp
+
+include doc/local.mk