summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2005-10-29 02:32:33 +0000
committerDavid Schleef <ds@schleef.org>2005-10-29 02:32:33 +0000
commitdad30594eaca7a65c5fb5b4cf3fdb80e9a161930 (patch)
treea85a185e1a86e8cc2632f56cdd2a20eec84b81b3
parentfea6c756ecc5429c82ed37a5714a38942752c87c (diff)
downloadliboil-dad30594eaca7a65c5fb5b4cf3fdb80e9a161930.tar.gz
* configure.ac: Use AC_LIBTOOL_WIN32_DLL
* liboil/Makefile.am: Fix sed patterns for extracting symbols from libtool .exp files to handle different format on windows targets. Move sse directory to a conditional. * liboil/README: new file * liboil/liboiltest.h: remove // comment * liboil/powerpc_asm_blocks/Makefile.am: name ltlibrary correctly * m4/as-intrinsics.m4: Fix SSE2 test
-rw-r--r--ChangeLog11
-rw-r--r--configure.ac4
-rw-r--r--liboil/Makefile.am16
-rw-r--r--liboil/README42
-rw-r--r--liboil/liboiltest.h1
-rw-r--r--liboil/powerpc_asm_blocks/Makefile.am2
-rw-r--r--m4/as-intrinsics.m44
7 files changed, 68 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index ac337fd..548dafb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2005-10-28 David Schleef <ds@schleef.org>
+ * configure.ac: Use AC_LIBTOOL_WIN32_DLL
+ * liboil/Makefile.am: Fix sed patterns for extracting symbols
+ from libtool .exp files to handle different format on windows
+ targets. Move sse directory to a conditional.
+ * liboil/README: new file
+ * liboil/liboiltest.h: remove // comment
+ * liboil/powerpc_asm_blocks/Makefile.am: name ltlibrary correctly
+ * m4/as-intrinsics.m4: Fix SSE2 test
+
+2005-10-28 David Schleef <ds@schleef.org>
+
* liboil/i386/diff8x8_i386.c: (diff8x8_const128_s16_u8_mmx):
Fix problem pulling in global constant.
diff --git a/configure.ac b/configure.ac
index 1bd106c..7582e55 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,7 +19,8 @@ dnl - interfaces added -> increment AGE
dnl - interfaces removed -> AGE = 0
LIBOIL_LIBVERSION="1:0:1"
AC_SUBST(LIBOIL_LIBVERSION)
-AM_PROG_LIBTOOL
+AC_LIBTOOL_WIN32_DLL
+AC_PROG_LIBTOOL
AM_PROG_AS
AC_CONFIG_SRCDIR([liboil/liboil.h])
@@ -199,6 +200,7 @@ liboil/math/Makefile
liboil/md5/Makefile
liboil/motovec/Makefile
liboil/powerpc/Makefile
+liboil/powerpc_asm_blocks/Makefile
liboil/ref/Makefile
liboil/simdpack/Makefile
liboil/sse/Makefile
diff --git a/liboil/Makefile.am b/liboil/Makefile.am
index ae1bf14..f8442c2 100644
--- a/liboil/Makefile.am
+++ b/liboil/Makefile.am
@@ -4,6 +4,10 @@ pkgincludedir = $(includedir)/liboil-@LIBOIL_MAJORMINOR@/liboil
if HAVE_GCC_I386
subdir_i386 = i386
libs_i386 = i386/libi386.la
+if HAVE_SSE_INTRINSICS
+subdir_i386 += fb sse
+libs_i386 += fb/libfb.la sse/libsse.la
+endif
else
subdir_i386 =
libs_i386 =
@@ -23,7 +27,7 @@ endif
DIST_SUBDIRS = colorspace conv copy dct fb i386 jpeg math md5 motovec powerpc powerpc_asm_blocks ref simdpack sse utf8
-SUBDIRS = colorspace conv copy dct fb $(subdir_i386) jpeg math md5 $(subdir_powerpc) ref simdpack sse utf8
+SUBDIRS = colorspace conv copy dct $(subdir_i386) jpeg math md5 $(subdir_powerpc) ref simdpack utf8
lib_LTLIBRARIES = liboiltmp1.la liboil-@LIBOIL_MAJORMINOR@.la
@@ -53,7 +57,6 @@ liboilfunctions_la_LIBADD = \
colorspace/libcolorspace.la \
copy/libcopy.la \
dct/libdct.la \
- fb/libfb.la \
$(i386_libs) \
jpeg/libjpeg.la \
math/libmath.la \
@@ -61,7 +64,6 @@ liboilfunctions_la_LIBADD = \
$(powerpc_libs) \
ref/libref.la \
simdpack/libsimdpack.la \
- sse/libsse.la \
utf8/libutf8.la
liboilfunctions_la_LDFLAGS = \
-no-undefined
@@ -128,20 +130,20 @@ liboilarray.c: liboiltmp1.la Makefile
echo '#include <liboil/liboilfunction.h>' >>liboilarray.c.tmp
echo >>liboilarray.c.tmp
grep '^_oil_function_class_' .libs/liboiltmp1.exp | \
- sed 's/.*/extern OilFunctionClass &;/' >>liboilarray.c.tmp
+ sed -e 's/ .*//' -e 's/.*/extern OilFunctionClass &;/' >>liboilarray.c.tmp
echo >>liboilarray.c.tmp
echo 'OilFunctionClass *_oil_function_class_array[] = {' >>liboilarray.c.tmp
grep '^_oil_function_class_' .libs/liboiltmp1.exp | \
- sed 's/.*/ \&&,/' >>liboilarray.c.tmp
+ sed -e 's/ .*//' -e 's/.*/ \&&,/' >>liboilarray.c.tmp
echo ' NULL' >>liboilarray.c.tmp
echo '};' >>liboilarray.c.tmp
echo >>liboilarray.c.tmp
grep '^_oil_function_impl_' .libs/liboiltmp1.exp | \
- sed 's/.*/extern OilFunctionImpl &;/' >>liboilarray.c.tmp
+ sed -e 's/ .*//' -e 's/.*/extern OilFunctionImpl &;/' >>liboilarray.c.tmp
echo >>liboilarray.c.tmp
echo 'OilFunctionImpl *_oil_function_impl_array[] = {' >>liboilarray.c.tmp
grep '^_oil_function_impl_' .libs/liboiltmp1.exp | \
- sed 's/.*/ \&&,/' >>liboilarray.c.tmp
+ sed -e 's/ .*//' -e 's/.*/ \&&,/' >>liboilarray.c.tmp
echo ' NULL' >>liboilarray.c.tmp
echo '};' >>liboilarray.c.tmp
echo >>liboilarray.c.tmp
diff --git a/liboil/README b/liboil/README
new file mode 100644
index 0000000..beacabe
--- /dev/null
+++ b/liboil/README
@@ -0,0 +1,42 @@
+
+Source Layout
+=============
+
+(Note that at the current time, this document is not followed 100%.)
+
+Reference functions should always go in ref/. Non-reference functions
+may not be in ref/.
+
+Implementations are roughly categorized by the compiler flags they
+use, architecture they compile on, where the source code came from,
+or what type of functions they are. The goal is to have all the
+automake conditionals in liboil/Makefile.am, and none in lower-level
+makefiles.
+
+ - GCC Inline assembly directories: (powerpc, i386)
+
+These can have any kind of GCC inline assembly (post gcc-3.2) that
+compiles on the given architecture. This also typically includes
+assembly code that contains MMX/SSE/Altivec instructions, but does
+not require any special compiler flags.
+
+The directory powerpc_asm_blocks is for inline assembly that uses
+the -fasm-blocks compiler flag on powerpc.
+
+ - Intrinsics: (sse, altivec)
+
+These directories contain architecture-specific code that is portable
+among compilers.
+
+ - Source: (motovec, fb)
+
+The motovec directory should only contain source files derived from
+Motovec. The fb directory only contains source derived from X.
+
+ - Random: (simdpack, colorspace, copy, dct, md5, math, utf, jpeg)
+
+Don't add files to these directories.
+
+
+
+
diff --git a/liboil/liboiltest.h b/liboil/liboiltest.h
index 2bc1722..5acccd5 100644
--- a/liboil/liboiltest.h
+++ b/liboil/liboiltest.h
@@ -32,7 +32,6 @@
#include <liboil/liboilprototype.h>
#include <liboil/liboilprofile.h>
-//typedef struct _OilTest OilTest;
struct _OilTest {
OilFunctionClass *klass;
OilFunctionImpl *impl;
diff --git a/liboil/powerpc_asm_blocks/Makefile.am b/liboil/powerpc_asm_blocks/Makefile.am
index 49daf64..78f94b7 100644
--- a/liboil/powerpc_asm_blocks/Makefile.am
+++ b/liboil/powerpc_asm_blocks/Makefile.am
@@ -1,5 +1,5 @@
-noinst_LTLIBRARIES = libpowerpc.la
+noinst_LTLIBRARIES = libpowerpc_asm_blocks.la
sources = \
recon8x8_ppc.c \
diff --git a/m4/as-intrinsics.m4 b/m4/as-intrinsics.m4
index 946e9da..a45a0b1 100644
--- a/m4/as-intrinsics.m4
+++ b/m4/as-intrinsics.m4
@@ -4,7 +4,7 @@ dnl autostars m4 macro for detection of gcc inline assembly
dnl David Schleef <ds@schleef.org>
-dnl $Id: as-intrinsics.m4,v 1.1 2005-10-28 03:12:05 ds Exp $
+dnl $Id: as-intrinsics.m4,v 1.2 2005-10-29 02:32:33 ds Exp $
dnl AS_MMX_INTRINSICS(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
dnl Tries to compile with the given CFLAGS.
@@ -69,7 +69,7 @@ AC_DEFUN([AS_SSE2_INTRINSICS],
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -msse2"
- AC_TRY_COMPILE([#include <emmintrin.h>], [__m128 a; a = _mm_setzero_pd()], [flag_ok=yes], [flag_ok=no])
+ AC_TRY_COMPILE([#include <emmintrin.h>], [__m128d a; a = _mm_setzero_pd()], [flag_ok=yes], [flag_ok=no])
CFLAGS="$save_CFLAGS"
$1="-msse2"