From 191c85976d7f924de781ac4d9ad8a73b034493bf Mon Sep 17 00:00:00 2001 From: Damien Lespiau Date: Mon, 14 Jan 2013 23:21:21 +0000 Subject: [PATCH] build: Integrate the merged gen assembler in the build system Signed-off-by: Damien Lespiau --- .gitignore | 6 + Makefile.am | 2 +- assembler/AUTHORS | 1 - assembler/COPYING | 22 ---- assembler/INSTALL | 236 -------------------------------------- assembler/Makefile.am | 34 ++++-- assembler/autogen.sh | 12 -- assembler/{src => }/brw_defines.h | 0 assembler/{src => }/brw_structs.h | 0 assembler/configure.ac | 41 ------- assembler/{src => }/disasm-main.c | 0 assembler/{src => }/disasm.c | 0 assembler/{src => }/gen4asm.h | 0 assembler/{src => }/gram.y | 0 assembler/{src => }/lex.l | 0 assembler/{src => }/main.c | 0 assembler/src/Makefile.am | 23 ---- configure.ac | 19 +++ 18 files changed, 52 insertions(+), 344 deletions(-) delete mode 100644 assembler/AUTHORS delete mode 100644 assembler/COPYING delete mode 100644 assembler/INSTALL delete mode 100755 assembler/autogen.sh rename assembler/{src => }/brw_defines.h (100%) rename assembler/{src => }/brw_structs.h (100%) delete mode 100644 assembler/configure.ac rename assembler/{src => }/disasm-main.c (100%) rename assembler/{src => }/disasm.c (100%) rename assembler/{src => }/gen4asm.h (100%) rename assembler/{src => }/gram.y (100%) rename assembler/{src => }/lex.l (100%) rename assembler/{src => }/main.c (100%) delete mode 100644 assembler/src/Makefile.am diff --git a/.gitignore b/.gitignore index 063aeec..611ab06 100644 --- a/.gitignore +++ b/.gitignore @@ -79,3 +79,9 @@ core *.swo *.swp cscope.* + +/assembler/gram.c +/assembler/gram.h +/assembler/intel-gen4asm +/assembler/intel-gen4disasm +/assembler/lex.c diff --git a/Makefile.am b/Makefile.am index 20bca79..a806232 100644 --- a/Makefile.am +++ b/Makefile.am @@ -21,7 +21,7 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 -SUBDIRS = lib man tools scripts benchmarks demos +SUBDIRS = lib man tools scripts benchmarks demos assembler if BUILD_SHADER_DEBUGGER SUBDIRS += debugger diff --git a/assembler/AUTHORS b/assembler/AUTHORS deleted file mode 100644 index 1ae4aff..0000000 --- a/assembler/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Written in 2006 by Eric Anholt. diff --git a/assembler/COPYING b/assembler/COPYING deleted file mode 100644 index 8dfc33d..0000000 --- a/assembler/COPYING +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright © 2006 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ diff --git a/assembler/INSTALL b/assembler/INSTALL deleted file mode 100644 index 23e5f25..0000000 --- a/assembler/INSTALL +++ /dev/null @@ -1,236 +0,0 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. - -This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - -These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - -Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for -details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - -You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. - -Installation Names -================== - -By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses -PREFIX as the prefix for installing programs and libraries. -Documentation and other data files still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - -Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - -There may be some features `configure' cannot figure out automatically, -but needs to determine by the type of machine the package will run on. -Usually, assuming the package is built to be run on the _same_ -architectures, `configure' can figure that out, but if it prints a -message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the option `--target=TYPE' to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - -Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: - - /bin/bash ./configure CONFIG_SHELL=/bin/bash - -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. - -`configure' Invocation -====================== - -`configure' recognizes the following options to control how it operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/assembler/Makefile.am b/assembler/Makefile.am index 9e6147d..5914356 100644 --- a/assembler/Makefile.am +++ b/assembler/Makefile.am @@ -1,13 +1,31 @@ -SUBDIRS = doc src test +SUBDIRS = doc test +bin_PROGRAMS = intel-gen4asm intel-gen4disasm + +AM_YFLAGS = -d --warnings=all +AM_CFLAGS= $(ASSEMBLER_WARN_CFLAGS) + +LEX = flex -i +BUILT_SOURCES = gram.h gram.c lex.c +gram.h: gram.c + +intel_gen4asm_SOURCES = \ + brw_defines.h \ + brw_structs.h \ + gen4asm.h \ + gram.y \ + lex.l \ + main.c \ + $(NULL) + +intel_gen4disasm_SOURCES = \ + disasm.c disasm-main.c + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = intel-gen4asm.pc + +MAINTAINERCLEANFILES = $(BUILT_SOURCES) EXTRA_DIST = \ - AUTHORS \ - COPYING \ - INSTALL \ README \ TODO \ - autogen.sh \ intel-gen4asm.pc.in - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = intel-gen4asm.pc diff --git a/assembler/autogen.sh b/assembler/autogen.sh deleted file mode 100755 index 904cd67..0000000 --- a/assembler/autogen.sh +++ /dev/null @@ -1,12 +0,0 @@ -#! /bin/sh - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. - -ORIGDIR=`pwd` -cd $srcdir - -autoreconf -v --install || exit 1 -cd $ORIGDIR || exit $? - -$srcdir/configure --enable-maintainer-mode "$@" diff --git a/assembler/src/brw_defines.h b/assembler/brw_defines.h similarity index 100% rename from assembler/src/brw_defines.h rename to assembler/brw_defines.h diff --git a/assembler/src/brw_structs.h b/assembler/brw_structs.h similarity index 100% rename from assembler/src/brw_structs.h rename to assembler/brw_structs.h diff --git a/assembler/configure.ac b/assembler/configure.ac deleted file mode 100644 index 0b4427c..0000000 --- a/assembler/configure.ac +++ /dev/null @@ -1,41 +0,0 @@ -# -*- Autoconf -*- -# Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.57) -AC_INIT([intel-gen4asm], - 1.3, - [eric@anholt.net], - intel-gen4asm) - -AC_CONFIG_SRCDIR([Makefile.am]) -AM_INIT_AUTOMAKE([dist-bzip2 foreign]) - -AM_MAINTAINER_MODE - -# Checks for programs. -AC_PROG_CC -AM_PROG_LEX -AC_PROG_YACC - -WARN_CFLAGS="" -if test "x$GCC" = "xyes"; then - WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ - -Wmissing-prototypes -Wmissing-declarations \ - -Wnested-externs -fno-strict-aliasing" - AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1, - [Can use #warning in C files]) -fi -AC_SUBST(WARN_CFLAGS) - -# Checks for libraries. - -# Checks for header files. -AC_HEADER_STDC - -AC_OUTPUT([ - Makefile - doc/Makefile - src/Makefile - test/Makefile - intel-gen4asm.pc -]) diff --git a/assembler/src/disasm-main.c b/assembler/disasm-main.c similarity index 100% rename from assembler/src/disasm-main.c rename to assembler/disasm-main.c diff --git a/assembler/src/disasm.c b/assembler/disasm.c similarity index 100% rename from assembler/src/disasm.c rename to assembler/disasm.c diff --git a/assembler/src/gen4asm.h b/assembler/gen4asm.h similarity index 100% rename from assembler/src/gen4asm.h rename to assembler/gen4asm.h diff --git a/assembler/src/gram.y b/assembler/gram.y similarity index 100% rename from assembler/src/gram.y rename to assembler/gram.y diff --git a/assembler/src/lex.l b/assembler/lex.l similarity index 100% rename from assembler/src/lex.l rename to assembler/lex.l diff --git a/assembler/src/main.c b/assembler/main.c similarity index 100% rename from assembler/src/main.c rename to assembler/main.c diff --git a/assembler/src/Makefile.am b/assembler/src/Makefile.am deleted file mode 100644 index 09ad400..0000000 --- a/assembler/src/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -AM_YFLAGS = -d --warnings=all - -AM_CFLAGS= $(WARN_CFLAGS) -bin_PROGRAMS = intel-gen4asm intel-gen4disasm - -intel_gen4asm_SOURCES = \ - brw_defines.h \ - brw_structs.h \ - gen4asm.h \ - gram.y \ - lex.l \ - main.c - -intel_gen4disasm_SOURCES = \ - disasm.c disasm-main.c - -gram.h: gram.c - -BUILT_SOURCES = gram.h gram.c lex.c -MAINTAINERCLEANFILES = $(BUILT_SOURCES) -LEX = flex -i - -# man_MANS = intel-gen4asm.1 diff --git a/configure.ac b/configure.ac index 5e2dbed..832da27 100644 --- a/configure.ac +++ b/configure.ac @@ -38,7 +38,12 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_PATH_PYTHON([3],, [:]) AM_MAINTAINER_MODE +AC_PROG_CC +AM_PROG_LEX +AC_PROG_YACC + # Checks for functions, headers, structures, etc. +AC_HEADER_STDC AC_CHECK_HEADERS([termios.h]) AC_CHECK_MEMBERS([struct sysinfo.totalram],[],[],[AC_INCLUDES_DEFAULT #include @@ -56,6 +61,16 @@ m4_ifndef([XORG_MACROS_VERSION], XORG_MACROS_VERSION(1.16) XORG_DEFAULT_OPTIONS +# warning flags for the assembler. We can't quite use CWARNFLAGS for it yet as +# it generates waaaay to many warnings. +ASSEMBLER_WARN_CFLAGS="" +if test "x$GCC" = "xyes"; then + ASSEMBLER_WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ + -Wmissing-prototypes -Wmissing-declarations \ + -Wnested-externs -fno-strict-aliasing" +fi +AC_SUBST(ASSEMBLER_WARN_CFLAGS) + PKG_CHECK_MODULES(DRM, [libdrm_intel >= 2.4.38 libdrm]) PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) @@ -157,6 +172,10 @@ AC_CONFIG_FILES([ tools/quick_dump/Makefile debugger/Makefile debugger/system_routine/Makefile + assembler/Makefile + assembler/doc/Makefile + assembler/test/Makefile + assembler/intel-gen4asm.pc ]) AC_OUTPUT -- 2.7.4