summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Canciani <ranma42@gmail.com>2012-06-21 08:17:36 +0200
committerAndrea Canciani <ranma42@gmail.com>2012-07-31 16:06:33 +0200
commit42cc854bdafaa0683045c9b97722e4cb7240aa0a (patch)
tree49ccb22265a58e50b07b91084ce132a79c50a5bc
parent103d5bae827a0b7e53f8d423483eeadceb54aad5 (diff)
build: Introduce simpleops dependency
The purpose of the simpleops library is to provide through a unified interface basic functions and macros which are supported by most compilers and runtimes, but with different names and syntax. This should allow the removal of most platform-specific code. As added benefit, simpleops should help in fixing the following bugs: https://bugs.freedesktop.org/show_bug.cgi?id=31177 https://bugs.freedesktop.org/show_bug.cgi?id=34842 https://bugs.freedesktop.org/show_bug.cgi?id=37811
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.win32.common12
-rw-r--r--configure.ac3
-rw-r--r--demos/Makefile.am2
-rw-r--r--pixman/Makefile.am35
-rw-r--r--test/Makefile.am2
6 files changed, 34 insertions, 22 deletions
diff --git a/Makefile.am b/Makefile.am
index 88ff897..b12c969 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,5 @@
+ACLOCAL_AMFLAGS = -I simpleops/m4
+
SUBDIRS = pixman demos test
pkgconfigdir=$(libdir)/pkgconfig
diff --git a/Makefile.win32.common b/Makefile.win32.common
index 777f94c..a93e3b9 100644
--- a/Makefile.win32.common
+++ b/Makefile.win32.common
@@ -1,3 +1,11 @@
+ifeq ($(top_builddir),)
+top_builddir = $(top_srcdir)
+endif
+
+include $(top_builddir)/simpleops/Makefile.win32
+
+LIBS = $(SIMPLEOPS_LIBS)
+
LIBRARY = pixman-1
CC = cl
@@ -5,10 +13,6 @@ LD = link
AR = lib
PERL = perl
-ifeq ($(top_builddir),)
-top_builddir = $(top_srcdir)
-endif
-
CFG_VAR = $(CFG)
ifeq ($(CFG_VAR),)
CFG_VAR = release
diff --git a/configure.ac b/configure.ac
index 36f423e..bea674f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -77,6 +77,9 @@ AC_CHECK_FUNCS([getisax])
AC_C_BIGENDIAN
AC_C_INLINE
+AC_CONFIG_SUBDIRS([simpleops])
+SIMPLEOPS_CONFIG
+
dnl PIXMAN_LINK_WITH_ENV(env-setup, program, true-action, false-action)
dnl
dnl Compiles and links the given program in the environment setup by env-setup
diff --git a/demos/Makefile.am b/demos/Makefile.am
index d8fb0da..d84d212 100644
--- a/demos/Makefile.am
+++ b/demos/Makefile.am
@@ -4,7 +4,7 @@ AM_CFLAGS = $(OPENMP_CFLAGS)
AM_LDFLAGS = $(OPENMP_CFLAGS)
LDADD = $(top_builddir)/pixman/libpixman-1.la -lm $(GTK_LIBS) $(PNG_LIBS)
-INCLUDES = -I$(top_srcdir)/pixman -I$(top_builddir)/pixman $(GTK_CFLAGS) $(PNG_CFLAGS)
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/pixman -I$(top_builddir)/pixman $(GTK_CFLAGS) $(PNG_CFLAGS)
GTK_UTILS = gtk-utils.c gtk-utils.h ../test/utils.c ../test/utils.h
diff --git a/pixman/Makefile.am b/pixman/Makefile.am
index deacf87..5032027 100644
--- a/pixman/Makefile.am
+++ b/pixman/Makefile.am
@@ -1,9 +1,12 @@
include $(top_srcdir)/pixman/Makefile.sources
+AM_CFLAGS = $(SIMPLEOPS_CFLAGS) -I$(top_srcdir)
+AM_LDFLAGS = $(SIMPLEOPS_LIBS)
+
lib_LTLIBRARIES = libpixman-1.la
libpixman_1_la_LDFLAGS = -version-info $(LT_VERSION_INFO) -no-undefined @PTHREAD_LDFLAGS@
-libpixman_1_la_LIBADD = @PTHREAD_LIBS@ @DEP_LIBS@ -lm
+libpixman_1_la_LIBADD = $(SIMPLEOPS_LIBS) @PTHREAD_LIBS@ @DEP_LIBS@ -lm
libpixman_1_la_SOURCES = $(libpixman_sources) $(libpixman_headers)
libpixmanincludedir = $(includedir)/pixman-1
@@ -26,8 +29,8 @@ if USE_X86_MMX
noinst_LTLIBRARIES += libpixman-mmx.la
libpixman_mmx_la_SOURCES = \
pixman-mmx.c
-libpixman_mmx_la_CFLAGS = $(DEP_CFLAGS) $(MMX_CFLAGS)
-libpixman_mmx_la_LIBADD = $(DEP_LIBS)
+libpixman_mmx_la_CFLAGS = $(AM_CFLAGS) $(DEP_CFLAGS) $(MMX_CFLAGS)
+libpixman_mmx_la_LIBADD = $(SIMPLEOPS_LIBS) $(DEP_LIBS)
libpixman_1_la_LDFLAGS += $(MMX_LDFLAGS)
libpixman_1_la_LIBADD += libpixman-mmx.la
@@ -40,8 +43,8 @@ noinst_LTLIBRARIES += libpixman-vmx.la
libpixman_vmx_la_SOURCES = \
pixman-vmx.c \
pixman-combine32.h
-libpixman_vmx_la_CFLAGS = $(DEP_CFLAGS) $(VMX_CFLAGS)
-libpixman_vmx_la_LIBADD = $(DEP_LIBS)
+libpixman_vmx_la_CFLAGS = $(AM_CFLAGS) $(DEP_CFLAGS) $(VMX_CFLAGS)
+libpixman_vmx_la_LIBADD = $(SIMPLEOPS_LIBS) $(DEP_LIBS)
libpixman_1_la_LIBADD += libpixman-vmx.la
ASM_CFLAGS_vmx=$(VMX_CFLAGS)
@@ -52,8 +55,8 @@ if USE_SSE2
noinst_LTLIBRARIES += libpixman-sse2.la
libpixman_sse2_la_SOURCES = \
pixman-sse2.c
-libpixman_sse2_la_CFLAGS = $(DEP_CFLAGS) $(SSE2_CFLAGS)
-libpixman_sse2_la_LIBADD = $(DEP_LIBS)
+libpixman_sse2_la_CFLAGS = $(AM_CFLAGS) $(DEP_CFLAGS) $(SSE2_CFLAGS)
+libpixman_sse2_la_LIBADD = $(SIMPLEOPS_LIBS) $(DEP_LIBS)
libpixman_1_la_LDFLAGS += $(SSE2_LDFLAGS)
libpixman_1_la_LIBADD += libpixman-sse2.la
@@ -67,8 +70,8 @@ libpixman_arm_simd_la_SOURCES = \
pixman-arm-simd.c \
pixman-arm-common.h \
pixman-arm-simd-asm.S
-libpixman_arm_simd_la_CFLAGS = $(DEP_CFLAGS)
-libpixman_arm_simd_la_LIBADD = $(DEP_LIBS)
+libpixman_arm_simd_la_CFLAGS = $(AM_CFLAGS) $(DEP_CFLAGS)
+libpixman_arm_simd_la_LIBADD = $(SIMPLEOPS_LIBS) $(DEP_LIBS)
libpixman_1_la_LIBADD += libpixman-arm-simd.la
ASM_CFLAGS_arm_simd=
@@ -83,8 +86,8 @@ libpixman_arm_neon_la_SOURCES = \
pixman-arm-neon-asm.S \
pixman-arm-neon-asm-bilinear.S \
pixman-arm-neon-asm.h
-libpixman_arm_neon_la_CFLAGS = $(DEP_CFLAGS)
-libpixman_arm_neon_la_LIBADD = $(DEP_LIBS)
+libpixman_arm_neon_la_CFLAGS = $(AM_CFLAGS) $(DEP_CFLAGS)
+libpixman_arm_neon_la_LIBADD = $(SIMPLEOPS_LIBS) $(DEP_LIBS)
libpixman_1_la_LIBADD += libpixman-arm-neon.la
ASM_CFLAGS_arm_neon=
@@ -105,7 +108,7 @@ libpixman_iwmmxt_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(CFLAGS) $(IWMMXT_CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
-libpixman_iwmmxt_la_LIBADD = $(DEP_LIBS)
+libpixman_iwmmxt_la_LIBADD = $(SIMPLEOPS_LIBS) $(DEP_LIBS)
libpixman-iwmmxt.la: libpixman_iwmmxt_la-pixman-mmx.lo $(libpixman_iwmmxt_la_DEPENDENCIES)
$(AM_V_CCLD)$(libpixman_iwmmxt_la_LINK) libpixman_iwmmxt_la-pixman-mmx.lo $(libpixman_iwmmxt_la_LIBADD) $(LIBS)
@@ -120,8 +123,8 @@ libpixman_mips_dspr2_la_SOURCES = \
pixman-mips-dspr2-asm.S \
pixman-mips-dspr2-asm.h \
pixman-mips-memcpy-asm.S
-libpixman_mips_dspr2_la_CFLAGS = $(DEP_CFLAGS)
-libpixman_mips_dspr2_la_LIBADD = $(DEP_LIBS)
+libpixman_mips_dspr2_la_CFLAGS = $(AM_CFLAGS) $(DEP_CFLAGS)
+libpixman_mips_dspr2_la_LIBADD = $(SIMPLEOPS_LIBS) $(DEP_LIBS)
libpixman_1_la_LIBADD += libpixman-mips-dspr2.la
ASM_CFLAGS_mips_dspr2=
@@ -131,8 +134,8 @@ endif
if USE_LOONGSON_MMI
noinst_LTLIBRARIES += libpixman-loongson-mmi.la
libpixman_loongson_mmi_la_SOURCES = pixman-mmx.c loongson-mmintrin.h
-libpixman_loongson_mmi_la_CFLAGS = $(DEP_CFLAGS) $(LS_CFLAGS)
-libpixman_loongson_mmi_la_LIBADD = $(DEP_LIBS)
+libpixman_loongson_mmi_la_CFLAGS = $(AM_CFLAGS) $(DEP_CFLAGS) $(LS_CFLAGS)
+libpixman_loongson_mmi_la_LIBADD = $(SIMPLEOPS_LIBS) $(DEP_LIBS)
libpixman_1_la_LDFLAGS += $(LS_LDFLAGS)
libpixman_1_la_LIBADD += libpixman-loongson-mmi.la
diff --git a/test/Makefile.am b/test/Makefile.am
index eeb3679..aa3f400 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -3,7 +3,7 @@ include $(top_srcdir)/test/Makefile.sources
AM_CFLAGS = $(OPENMP_CFLAGS)
AM_LDFLAGS = $(OPENMP_CFLAGS) $(TESTPROGS_EXTRA_LDFLAGS)
LDADD = libutils.la $(top_builddir)/pixman/libpixman-1.la -lm $(PNG_LIBS)
-INCLUDES = -I$(top_srcdir)/pixman -I$(top_builddir)/pixman $(PNG_CFLAGS)
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/pixman -I$(top_builddir)/pixman $(PNG_CFLAGS)
libutils_la_SOURCES = $(libutils_sources) $(libutils_headers)