Build cleanups in opcodes: cross-compilation and generators.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Tue, 25 Aug 2009 03:13:44 +0000 (03:13 +0000)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Tue, 25 Aug 2009 03:13:44 +0000 (03:13 +0000)
opcodes/:
* Makefile.am (SUBDIRS): Build '.' before 'po'.
(COMPILE_FOR_BUILD, LINK_FOR_BUILD, BUILD_LIBIBERTY)
(MOSTLYCLEANFILES, MAINTAINERCLEANFILES): New variables.
(i386-gen$(EXEEXT_FOR_BUILD)): Renamed from i386-gen, rewrite
using *BUILD variables, depend upon $(BUILD_LIBIBERTY).
(i386-gen.o): New rule.
($(srcdir)/i386-init.h): Adjust.
(i386-opc.lo): Depend on $(srcdir)/i386-tbl.h.
(ia64-gen$(EXEEXT_FOR_BUILD)): Rename from ia64-gen, adjust likewise.
(ia64-gen.o): New rule.
(ia64_asmtab_deps): New variable.
($(srcdir)/ia64-asmtab.c): Use it; adjust likewise.
(ia64-opc.lo): Depend on $(srcdir)/ia64-asmtab.c.
(s390-mkopc$(EXEEXT_FOR_BUILD)): Rename from s390-mkopc, adjust
likewise.
(s390-opc.tab): Adjust.
(z8kgen$(EXEEXT_FOR_BUILD), z8kgen.o, $(srcdir)/z8k-opc.h): New
rules.
(z8k-dis.lo): Depend on $(srcdir)/z8k-opc.h.
* Makefile.in: Regenerate.
* z8kgen.c (gas): Avoid '/*' in comment.
* z8k-opc.h (func): Regenerate.

opcodes/ChangeLog
opcodes/Makefile.am
opcodes/Makefile.in
opcodes/z8k-opc.h
opcodes/z8kgen.c

index 22cd1dfa8f4820fe2a777f512adbe89ae335cb63..9b0e2a0253f7e45dbfd8b4e96e08b16f371006fa 100644 (file)
@@ -1,3 +1,28 @@
+2009-08-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * Makefile.am (SUBDIRS): Build '.' before 'po'.
+       (COMPILE_FOR_BUILD, LINK_FOR_BUILD, BUILD_LIBIBERTY)
+       (MOSTLYCLEANFILES, MAINTAINERCLEANFILES): New variables.
+       (i386-gen$(EXEEXT_FOR_BUILD)): Renamed from i386-gen, rewrite
+       using *BUILD variables, depend upon $(BUILD_LIBIBERTY).
+       (i386-gen.o): New rule.
+       ($(srcdir)/i386-init.h): Adjust.
+       (i386-opc.lo): Depend on $(srcdir)/i386-tbl.h.
+       (ia64-gen$(EXEEXT_FOR_BUILD)): Rename from ia64-gen, adjust likewise.
+       (ia64-gen.o): New rule.
+       (ia64_asmtab_deps): New variable.
+       ($(srcdir)/ia64-asmtab.c): Use it; adjust likewise.
+       (ia64-opc.lo): Depend on $(srcdir)/ia64-asmtab.c.
+       (s390-mkopc$(EXEEXT_FOR_BUILD)): Rename from s390-mkopc, adjust
+       likewise.
+       (s390-opc.tab): Adjust.
+       (z8kgen$(EXEEXT_FOR_BUILD), z8kgen.o, $(srcdir)/z8k-opc.h): New
+       rules.
+       (z8k-dis.lo): Depend on $(srcdir)/z8k-opc.h.
+       * Makefile.in: Regenerate.
+       * z8kgen.c (gas): Avoid '/*' in comment.
+       * z8k-opc.h (func): Regenerate.
+
 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * Makefile.am (TARGET_LIBOPCODES_CFILES): New variable, taken
index f9b7060306f1a4259e0f60ca9ec0324d0f382a23..465ea05b795412bfe20d1bc3b04aa38c669a3da0 100644 (file)
@@ -3,7 +3,8 @@
 AUTOMAKE_OPTIONS = 1.11 foreign no-dist
 ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
 
-SUBDIRS = po
+# Build '.' first so all generated files exist.
+SUBDIRS = . po
 
 INCDIR = $(srcdir)/../include
 BFDDIR = $(srcdir)/../bfd
@@ -12,6 +13,10 @@ WARN_CFLAGS = @WARN_CFLAGS@
 NO_WERROR = @NO_WERROR@
 AM_CFLAGS = $(WARN_CFLAGS)
 
+COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(BUILD_CPPFLAGS) $(BUILD_CFLAGS)
+LINK_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o $@
+
 bfdlibdir = @bfdlibdir@
 bfdincludedir = @bfdincludedir@
 
@@ -29,6 +34,8 @@ BFD_H = ../bfd/bfd.h
 
 # This is where libiberty lives.
 LIBIBERTY = ../libiberty/libiberty.a
+# This is only true when not cross-compiling.
+BUILD_LIBIBERTY = $(LIBIBERTY)
 
 # Header files.
 HFILES = \
@@ -438,31 +445,67 @@ stamp-xc16x: $(CGENDEPS) $(CPUDIR)/xc16x.cpu $(CPUDIR)/xc16x.opc
        $(MAKE) run-cgen arch=xc16x prefix=xc16x options= \
                archfile=$(CPUDIR)/xc16x.cpu opcfile=$(CPUDIR)/xc16x.opc extrafiles=
 
-i386-gen: i386-gen.o
-       $(LINK) i386-gen.o $(LIBIBERTY)
+MOSTLYCLEANFILES = i386-gen$(EXEEXT_FOR_BUILD) ia64-gen$(EXEEXT_FOR_BUILD) \
+       s390-mkopc$(EXEEXT_FOR_BUILD) z8kgen$(EXEEXT_FOR_BUILD)
+
+MAINTAINERCLEANFILES = $(srcdir)/i386-tbl.h $(srcdir)/i386-init.h \
+       $(srcdir)/ia64-asmtab.c s390-opc.tab $(srcdir)/z8k-opc.h
+
+i386-gen$(EXEEXT_FOR_BUILD): i386-gen.o $(BUILD_LIBIBERTY)
+       $(LINK_FOR_BUILD) i386-gen.o $(BUILD_LIBIBERTY)
+
+i386-gen.o: i386-gen.c i386-opc.h $(srcdir)/../include/opcode/i386.h \
+       $(INCDIR)/ansidecl.h $(INCDIR)/getopt.h $(INCDIR)/hashtab.h \
+       $(INCDIR)/libiberty.h $(INCDIR)/opcode/i386.h $(INCDIR)/safe-ctype.h \
+       config.h i386-opc.h sysdep.h
+       $(COMPILE_FOR_BUILD) -c $(srcdir)/i386-gen.c
 
 $(srcdir)/i386-tbl.h: $(srcdir)/i386-init.h 
        @echo $@
 
-$(srcdir)/i386-init.h: @MAINT@ i386-gen i386-opc.tbl i386-reg.tbl
-       ./i386-gen --srcdir $(srcdir)
+$(srcdir)/i386-init.h: @MAINT@ i386-gen$(EXEEXT_FOR_BUILD) i386-opc.tbl i386-reg.tbl
+       ./i386-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir)
+
+i386-opc.lo: $(srcdir)/i386-tbl.h
+
+ia64-gen$(EXEEXT_FOR_BUILD): ia64-gen.o $(BUILD_LIBIBERTY)
+       $(LINK_FOR_BUILD) ia64-gen.o $(BUILD_LIBIBERTY)
 
-ia64-gen: ia64-gen.o
-       $(LINK) ia64-gen.o $(LIBIBERTY)
+ia64-gen.o: ia64-gen.c $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/getopt.h \
+       $(INCDIR)/libiberty.h $(INCDIR)/opcode/ia64.h $(INCDIR)/safe-ctype.h \
+       $(INCDIR)/symcat.h config.h ia64-opc-a.c ia64-opc-b.c \
+       ia64-opc-d.c ia64-opc-f.c ia64-opc-i.c ia64-opc-m.c \
+       ia64-opc-x.c ia64-opc.h sysdep.h
+       $(COMPILE_FOR_BUILD) -c $(srcdir)/ia64-gen.c
 
-# Don't wrap the line below, as @MAINT@ can be expanded to '#'.
-# Some make versions don't handle line continuations in comments.
-$(srcdir)/ia64-asmtab.c: @MAINT@ ia64-gen ia64-ic.tbl ia64-raw.tbl ia64-waw.tbl ia64-war.tbl
-       ./ia64-gen --srcdir $(srcdir) > $@
+# Use a helper variable for the dependencies to avoid 'make' issues
+# with continuations in comments, as @MAINT@ can be expanded to '#'.
+ia64_asmtab_deps = ia64-gen$(EXEEXT_FOR_BUILD) ia64-ic.tbl \
+       ia64-raw.tbl ia64-waw.tbl ia64-war.tbl
+$(srcdir)/ia64-asmtab.c: @MAINT@ $(ia64_asmtab_deps)
+       ./ia64-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir) > $@
 
-s390-mkopc: s390-mkopc.c
-       $(CC_FOR_BUILD) -o s390-mkopc $(srcdir)/s390-mkopc.c
+ia64-opc.lo: $(srcdir)/ia64-asmtab.c
 
-s390-opc.tab: s390-mkopc s390-opc.txt
-       ./s390-mkopc < $(srcdir)/s390-opc.txt > s390-opc.tab
+s390-mkopc$(EXEEXT_FOR_BUILD): s390-mkopc.c
+       $(COMPILE_FOR_BUILD) -o s390-mkopc $(srcdir)/s390-mkopc.c
+
+s390-opc.tab: s390-mkopc$(EXEEXT_FOR_BUILD) s390-opc.txt
+       ./s390-mkopc$(EXEEXT_FOR_BUILD) < $(srcdir)/s390-opc.txt > s390-opc.tab
 
 s390-opc.lo: s390-opc.tab
 
+z8kgen$(EXEEXT_FOR_BUILD): z8kgen.o $(BUILD_LIBIBERTY)
+       $(LINK_FOR_BUILD) z8kgen.o $(BUILD_LIBIBERTY)
+
+z8kgen.o: z8kgen.c
+       $(COMPILE_FOR_BUILD) -c $(srcdir)/z8kgen.c
+
+$(srcdir)/z8k-opc.h: @MAINT@ z8kgen$(EXEEXT_FOR_BUILD)
+       ./z8kgen$(EXEEXT_FOR_BUILD) -a > $@
+
+z8k-dis.lo: $(srcdir)/z8k-opc.h
+
 sh-dis.lo: sh-dis.c
 if am__fastdepCC
        $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ @archdefs@ $(srcdir)/sh-dis.c
index 7ac2b6c7ad75b651b5de644b3bd6bb4832acd0b4..b7892028bda8121c66df2d8ca6ca5be1aedadbb4 100644 (file)
@@ -281,10 +281,16 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 AUTOMAKE_OPTIONS = 1.11 foreign no-dist
 ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
-SUBDIRS = po
+
+# Build '.' first so all generated files exist.
+SUBDIRS = . po
 INCDIR = $(srcdir)/../include
 BFDDIR = $(srcdir)/../bfd
 AM_CFLAGS = $(WARN_CFLAGS)
+COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(BUILD_CPPFLAGS) $(BUILD_CFLAGS)
+
+LINK_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o $@
 libopcodes_la_LDFLAGS = $(am__append_1) -release `cat \
        ../bfd/libtool-soversion` @SHARED_LDFLAGS@
 @INSTALL_LIBBFD_TRUE@bfdlib_LTLIBRARIES = libopcodes.la
@@ -296,6 +302,8 @@ BFD_H = ../bfd/bfd.h
 
 # This is where libiberty lives.
 LIBIBERTY = ../libiberty/libiberty.a
+# This is only true when not cross-compiling.
+BUILD_LIBIBERTY = $(LIBIBERTY)
 
 # Header files.
 HFILES = \
@@ -572,6 +580,18 @@ CGEN_CPUS = fr30 frv ip2k m32c m32r mep mt openrisc xc16x xstormy16
 @CGEN_MAINT_TRUE@XC16X_DEPS = stamp-xc16x
 @CGEN_MAINT_FALSE@XSTORMY16_DEPS = 
 @CGEN_MAINT_TRUE@XSTORMY16_DEPS = stamp-xstormy16
+MOSTLYCLEANFILES = i386-gen$(EXEEXT_FOR_BUILD) ia64-gen$(EXEEXT_FOR_BUILD) \
+       s390-mkopc$(EXEEXT_FOR_BUILD) z8kgen$(EXEEXT_FOR_BUILD)
+
+MAINTAINERCLEANFILES = $(srcdir)/i386-tbl.h $(srcdir)/i386-init.h \
+       $(srcdir)/ia64-asmtab.c s390-opc.tab $(srcdir)/z8k-opc.h
+
+
+# Use a helper variable for the dependencies to avoid 'make' issues
+# with continuations in comments, as @MAINT@ can be expanded to '#'.
+ia64_asmtab_deps = ia64-gen$(EXEEXT_FOR_BUILD) ia64-ic.tbl \
+       ia64-raw.tbl ia64-waw.tbl ia64-war.tbl
+
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
@@ -1043,6 +1063,7 @@ install-strip:
          `test -z '$(STRIP)' || \
            echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
+       -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
 
 clean-generic:
        -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -1054,6 +1075,7 @@ distclean-generic:
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
 clean: clean-recursive
 
 clean-am: clean-bfdlibLTLIBRARIES clean-generic clean-libtool \
@@ -1267,31 +1289,56 @@ stamp-xc16x: $(CGENDEPS) $(CPUDIR)/xc16x.cpu $(CPUDIR)/xc16x.opc
        $(MAKE) run-cgen arch=xc16x prefix=xc16x options= \
                archfile=$(CPUDIR)/xc16x.cpu opcfile=$(CPUDIR)/xc16x.opc extrafiles=
 
-i386-gen: i386-gen.o
-       $(LINK) i386-gen.o $(LIBIBERTY)
+i386-gen$(EXEEXT_FOR_BUILD): i386-gen.o $(BUILD_LIBIBERTY)
+       $(LINK_FOR_BUILD) i386-gen.o $(BUILD_LIBIBERTY)
+
+i386-gen.o: i386-gen.c i386-opc.h $(srcdir)/../include/opcode/i386.h \
+       $(INCDIR)/ansidecl.h $(INCDIR)/getopt.h $(INCDIR)/hashtab.h \
+       $(INCDIR)/libiberty.h $(INCDIR)/opcode/i386.h $(INCDIR)/safe-ctype.h \
+       config.h i386-opc.h sysdep.h
+       $(COMPILE_FOR_BUILD) -c $(srcdir)/i386-gen.c
 
 $(srcdir)/i386-tbl.h: $(srcdir)/i386-init.h 
        @echo $@
 
-$(srcdir)/i386-init.h: @MAINT@ i386-gen i386-opc.tbl i386-reg.tbl
-       ./i386-gen --srcdir $(srcdir)
+$(srcdir)/i386-init.h: @MAINT@ i386-gen$(EXEEXT_FOR_BUILD) i386-opc.tbl i386-reg.tbl
+       ./i386-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir)
 
-ia64-gen: ia64-gen.o
-       $(LINK) ia64-gen.o $(LIBIBERTY)
+i386-opc.lo: $(srcdir)/i386-tbl.h
 
-# Don't wrap the line below, as @MAINT@ can be expanded to '#'.
-# Some make versions don't handle line continuations in comments.
-$(srcdir)/ia64-asmtab.c: @MAINT@ ia64-gen ia64-ic.tbl ia64-raw.tbl ia64-waw.tbl ia64-war.tbl
-       ./ia64-gen --srcdir $(srcdir) > $@
+ia64-gen$(EXEEXT_FOR_BUILD): ia64-gen.o $(BUILD_LIBIBERTY)
+       $(LINK_FOR_BUILD) ia64-gen.o $(BUILD_LIBIBERTY)
 
-s390-mkopc: s390-mkopc.c
-       $(CC_FOR_BUILD) -o s390-mkopc $(srcdir)/s390-mkopc.c
+ia64-gen.o: ia64-gen.c $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/getopt.h \
+       $(INCDIR)/libiberty.h $(INCDIR)/opcode/ia64.h $(INCDIR)/safe-ctype.h \
+       $(INCDIR)/symcat.h config.h ia64-opc-a.c ia64-opc-b.c \
+       ia64-opc-d.c ia64-opc-f.c ia64-opc-i.c ia64-opc-m.c \
+       ia64-opc-x.c ia64-opc.h sysdep.h
+       $(COMPILE_FOR_BUILD) -c $(srcdir)/ia64-gen.c
+$(srcdir)/ia64-asmtab.c: @MAINT@ $(ia64_asmtab_deps)
+       ./ia64-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir) > $@
 
-s390-opc.tab: s390-mkopc s390-opc.txt
-       ./s390-mkopc < $(srcdir)/s390-opc.txt > s390-opc.tab
+ia64-opc.lo: $(srcdir)/ia64-asmtab.c
+
+s390-mkopc$(EXEEXT_FOR_BUILD): s390-mkopc.c
+       $(COMPILE_FOR_BUILD) -o s390-mkopc $(srcdir)/s390-mkopc.c
+
+s390-opc.tab: s390-mkopc$(EXEEXT_FOR_BUILD) s390-opc.txt
+       ./s390-mkopc$(EXEEXT_FOR_BUILD) < $(srcdir)/s390-opc.txt > s390-opc.tab
 
 s390-opc.lo: s390-opc.tab
 
+z8kgen$(EXEEXT_FOR_BUILD): z8kgen.o $(BUILD_LIBIBERTY)
+       $(LINK_FOR_BUILD) z8kgen.o $(BUILD_LIBIBERTY)
+
+z8kgen.o: z8kgen.c
+       $(COMPILE_FOR_BUILD) -c $(srcdir)/z8kgen.c
+
+$(srcdir)/z8k-opc.h: @MAINT@ z8kgen$(EXEEXT_FOR_BUILD)
+       ./z8kgen$(EXEEXT_FOR_BUILD) -a > $@
+
+z8k-dis.lo: $(srcdir)/z8k-opc.h
+
 sh-dis.lo: sh-dis.c
 @am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ @archdefs@ $(srcdir)/sh-dis.c
 @am__fastdepCC_TRUE@   mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
index ba05fbea30459f3da5a45a30411f2ff81cffc86f..837dd39c1305d242372348b8b3fa3d2ee87e82a1 100644 (file)
@@ -1,7 +1,7 @@
 /* DO NOT EDIT!  -*- buffer-read-only: t -*-
    This file is automatically generated by z8kgen.  */
 
-/* Copyright 2007 Free Software Foundation, Inc.
+/* Copyright 2007, 2009 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -289,7 +289,7 @@ typedef struct {
 #endif
   const char *name;
   unsigned char opcode;
-  void (*func) PARAMS ((void));
+  void (*func) (void);
   unsigned int arg_info[4];
   unsigned int byte_info[10];
   int noperands;
index bb513ba430097f79eadd5da7911bb122e0d41572..9fb7de231370fa81002a7b34bca64e101d06f59e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright 2001, 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
+/* Copyright 2001, 2002, 2003, 2005, 2007, 2009 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -969,9 +969,9 @@ gas (void)
 
   printf ("/* DO NOT EDIT!  -*- buffer-read-only: t -*-\n");
   printf ("   This file is automatically generated by z8kgen.  */\n\n");
-  printf ("/* Copyright 2007 Free Software Foundation, Inc.\n\
+  printf ("/* Copyright 2007, 2009 Free Software Foundation, Inc.\n\
 \n\
-/* This file is part of the GNU opcodes library.\n\
+   This file is part of the GNU opcodes library.\n\
 \n\
    This library is free software; you can redistribute it and/or modify\n\
    it under the terms of the GNU General Public License as published by\n\