2002-12-29  Roland McGrath  <roland@redhat.com>

	* configure.ac, Makefile.am: Punt subdirs, handle everything here.
	* linux/Makefile.am: File removed.
	* freebsd/Makefile.am: File removed.
	* sunos4/Makefile.in: File removed.
	* svr4/Makefile.in: File removed.
diff --git a/Makefile.am b/Makefile.am
index c61ccca..8f36fa9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,19 +14,58 @@
 		 io.c ioctl.c mem.c net.c process.c bjm.c \
 		 resource.c signal.c sock.c system.c term.c time.c \
 		 proc.c stream.c
+noinst_HEADERS = defs.h
 
 EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c \
 	     linux/ioctlsort.c \
 	     linux/ioctlent.h linux/errnoent.h linux/signalent.h \
 	     linux/syscall.h linux/syscallent.h linux/dummy.h \
-	     linux/*/errnoent.h linux/*/ioctlent.h \
-	     linux/*/signalent.h linux/*/syscallent.h \
+	     linux/alpha/errnoent.h linux/alpha/ioctlent.h \
+	     linux/alpha/signalent.h linux/alpha/syscallent.h linux/dummy.h \
+	     linux/errnoent.h linux/ioctlent.h linux/signalent.h \
+	     linux/syscall.h linux/syscallent.h linux/hppa/errnoent.h \
+	     linux/hppa/ioctlent.h linux/hppa/signalent.h \
+	     linux/hppa/syscallent.h linux/ia64/syscallent.h \
+	     linux/ia64/errnoent.h linux/ia64/ioctlent.h \
+	     linux/ia64/signalent.h linux/mips/errnoent.h \
+	     linux/mips/ioctlent.h linux/mips/signalent.h \
+	     linux/mips/syscallent.h linux/powerpc/syscallent.h \
+	     linux/powerpc/errnoent.h linux/powerpc/ioctlent.h \
+	     linux/powerpc/signalent.h linux/s390/errnoent.h \
+	     linux/s390/ioctlent.h linux/s390/signalent.h \
+	     linux/s390/syscallent.h linux/s390x/errnoent.h \
+	     linux/s390x/ioctlent.h linux/s390x/signalent.h \
+	     linux/s390x/syscallent.h linux/sparc/dummy2.h \
+	     linux/sparc/errnoent.h linux/sparc/errnoent1.h \
+	     linux/sparc/ioctlent.h linux/sparc/ioctlent1.h \
+	     linux/sparc/signalent.h linux/sparc/signalent1.h \
+	     linux/sparc/syscall.h linux/sparc/syscall1.h \
+	     linux/sparc/syscallent.h linux/sparc/syscallent1.h \
+	     linux/x86_64/syscallent.h linux/x86_64/gentab.pl \
+	     linux/x86_64/i386-headers.diff linux/x86_64/makeheaders.sh \
 	     freebsd/ioctlent.sh \
 	     freebsd/syscalls.cat freebsd/syscalls.pl freebsd/syscalls.print \
-	     freebsd/*/errnoent.h freebsd/*/ioctlent.h \
-	     freebsd/*/signalent.h freebsd/*/syscall.h freebsd/*/syscallent.h
+	     freebsd/i386/errnoent.h freebsd/i386/ioctlent.h \
+	     freebsd/i386/signalent.h \
+	     freebsd/i386/syscall.h freebsd/i386/syscallent.h \
 	     sunos4/dummy.h sunos4/errnoent.h \
 	     sunos4/ioctlent.h sunos4/ioctlent.sh sunos4/signalent.h \
 	     sunos4/syscall.h sunos4/syscallent.h \
 	     svr4/dummy.h svr4/errnoent.h svr4/ioctlent.h svr4/ioctlent.sh \
-	     svr4/signalent.h svr4/syscall.h svr4/syscallent.h
+	     svr4/signalent.h svr4/syscall.h svr4/syscallent.h \
+	     debian/changelog debian/control debian/copyright \
+	     debian/postinst debian/prerm debian/rules strace.spec
+
+if LINUX
+if X86_64
+
+BUILT_SOURCES = linux/x86_64/syscallent1.h linux/x86_64/syscall1.h \
+		linux/x86_64/signalent1.h linux/x86_64/ioctls1.h \
+		linux/x86_64/ioctlent1.h linux/x86_64/ioctldefs1.h \
+		linux/x86_64/errnoent1.h linux/x86_64/dummy1.h
+
+$(BUILT_SOURCES): $(srcdir)/linux/x86_64/makeheaders.sh
+	cd linux/x86_64 && $(SHELL) ./makeheaders.sh
+
+endif X86_64
+endif LINUX
diff --git a/configure.ac b/configure.ac
index 5fda9fc..02590ce 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,12 +12,10 @@
 linux*)
 	opsys=linux
 	AC_DEFINE([LINUX], 1, [Define for the Linux operating system.])
-	AM_CONDITIONAL([LINUX], [test x$opsys = xlinux])
 	;;
 sunos4*)
 	opsys=sunos4
 	AC_DEFINE([SUNOS4], 1, [Define for the SunOS 4.x operating system.])
-	AM_CONDITIONAL([SUNOS4], [test x$opsys = xsunos4])
 	;;
 solaris2* | sysv[[45]]* | irix[[56]]*)
 	opsys=svr4
@@ -31,12 +29,10 @@
 		AC_DEFINE(UNIXWARE, 7, [Define for UnixWare systems.])
 		;;
 	esac
-	AM_CONDITIONAL([SVR4], [test x$opsys = xsvr4])
 	;;
 freebsd*)
 	opsys=freebsd
 	AC_DEFINE([FREEBSD], 1, [Define for the FreeBSD operating system.])
-	AM_CONDITIONAL([FREEBSD], [test x$opsys = xfreebsd])
 	;;
 *)
 	AC_MSG_RESULT([NO!])
@@ -109,6 +105,12 @@
 AC_SUBST(opsys)
 AC_SUBST(arch)
 
+AM_CONDITIONAL([LINUX], [test x$opsys = xlinux])
+AM_CONDITIONAL([X86_64], [test x$arch = xx86_64])
+AM_CONDITIONAL([SUNOS4], [test x$opsys = xsunos4])
+AM_CONDITIONAL([SVR4], [test x$opsys = xsvr4])
+AM_CONDITIONAL([FREEBSD], [test x$opsys = xfreebsd])
+
 CFLAGS="-D_GNU_SOURCE $CFLAGS"
 AC_PROG_CC
 AC_INCLUDEDIR
diff --git a/freebsd/Makefile.am b/freebsd/Makefile.am
deleted file mode 100644
index 626d4de..0000000
--- a/freebsd/Makefile.am
+++ /dev/null
@@ -1,3 +0,0 @@
-# Automake input for freebsd/ subdirectory of strace.
-
-EXTRA_DIST = ioctlent.sh syscalls.cat syscalls.pl syscalls.print
diff --git a/linux/Makefile.am b/linux/Makefile.am
deleted file mode 100644
index 34e1b9e..0000000
--- a/linux/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-# Automake input for linux/ subdirectory of strace.
-
-noinst_HEADERS = ioctlent.h errnoent.h signalent.h \
-		 syscall.h syscallent.h dummy.h
-BUILT_SOURCES = $(noinst_HEADERS)
-
-DIST_SUBDIRS = mips sparc x86_64
-
-EXTRA_DIST = ioctlsort.c \
-	     */errnoent.h */ioctlent.h */signalent.h */syscallent.h
-
-ioctlent.h: ioctlsort
-	./ioctlsort >$@
-
-ioctldefs.h ioctls.h: ioctlent.sh
-	$(SHELL) $(srcdir)/ioctlent.sh
-
-errnoent.h: ../errnoent.sh $(includedir)/linux/errno.h
-	$(SHELL) $(srcdir)/../errnoent.sh $(includedir)/*/errno.h >$@
-
-signalent.h: ../signalent.sh $(includedir)/linux/signal.h
-	$(SHELL) $(srcdir)/../signalent.sh $(includedir)/*/signal.h >$@
-
-#syscallent.h: ../syscallent.sh $(includedir)/sys/syscall.h
-syscallent.h:
-	$(SHELL) $(srcdir)/../syscallent.sh $(includedir)/sys/syscall.h >$@