summaryrefslogtreecommitdiff
path: root/volk
diff options
context:
space:
mode:
Diffstat (limited to 'volk')
-rw-r--r--volk/Makefile.am2
-rw-r--r--volk/Makefile.common30
-rw-r--r--volk/configure.ac9
-rw-r--r--volk/include/volk/Makefile.am26
-rw-r--r--volk/include/volk/make_cpuid_generic_c.py26
-rw-r--r--volk/include/volk/make_cpuid_h.py25
-rw-r--r--volk/include/volk/make_cpuid_powerpc_c.py26
-rw-r--r--volk/include/volk/make_cpuid_x86_c.py27
-rw-r--r--volk/include/volk/make_proccpu_sim.py22
-rw-r--r--volk/lib/Makefile.am74
10 files changed, 159 insertions, 108 deletions
diff --git a/volk/Makefile.am b/volk/Makefile.am
index 3521dd0e4..4c6951ca7 100644
--- a/volk/Makefile.am
+++ b/volk/Makefile.am
@@ -1,5 +1,5 @@
#
-# Copyright 2004,2008 Free Software Foundation, Inc.
+# Copyright 2004,2008,2010 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
diff --git a/volk/Makefile.common b/volk/Makefile.common
index 083f6f710..daa8d78b6 100644
--- a/volk/Makefile.common
+++ b/volk/Makefile.common
@@ -1,6 +1,6 @@
# -*- Makefile -*-
#
-# Copyright 2010 Free Software Foundation, Inc.
+# Copyright 2010,2011 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -20,6 +20,33 @@
# Boston, MA 02110-1301, USA.
#
+if MD_CPU_generic
+ platform_CODE = \
+ $(top_srcdir)/lib/volk_cpu_generic.c
+endif
+
+if MD_CPU_x86
+if MD_SUBCPU_x86_64
+ platform_CODE = \
+ $(top_srcdir)/lib/volk_cpu_x86.c \
+ $(top_srcdir)/lib/cpuid_x86_64.S
+endif
+endif
+
+if MD_CPU_x86
+if !MD_SUBCPU_x86_64
+ platform_CODE = \
+ $(top_srcdir)/lib/volk_cpu_x86.c \
+ $(top_srcdir)/lib/cpuid_x86.S
+endif
+endif
+
+if MD_CPU_powerpc
+ platform_CODE = \
+ $(top_srcdir)/lib/volk_cpu_powerpc.c
+endif
+
+
ourincludedir = $(includedir)/volk
# swig includes
@@ -44,3 +71,4 @@ STD_DEFINES_AND_INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/lib $(GNURADIO
# not. We define it now in configure.ac using AM_PATH_PROG, but now
# here have to add a -f to be like GNU make.
RM=$(RM_PROG) -f
+
diff --git a/volk/configure.ac b/volk/configure.ac
index 8f17e5065..7cbcbad53 100644
--- a/volk/configure.ac
+++ b/volk/configure.ac
@@ -1,5 +1,5 @@
dnl
-dnl Copyright 2010 Free Software Foundation, Inc.
+dnl Copyright 2010,2011 Free Software Foundation, Inc.
dnl
dnl This program is free software: you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
@@ -63,13 +63,6 @@ dnl AX_BOOST_WSERIALIZATION
AC_CONFIG_HEADERS([volk_config.h])
LV_SET_SIMD_FLAGS
-# FIXME: Not very extensible to supporting more processors easily
-AM_CONDITIONAL([MYCPU_X86], [test "$MD_CPU" = "x86"])
-AM_CONDITIONAL([MYSUBCPU_X86], [test "$MD_SUBCPU" = "x86"])
-AM_CONDITIONAL([MYSUBCPU_X86_64], [test "$MD_SUBCPU" = "x86_64"])
-AM_CONDITIONAL([MYSUBCPU_POWERPC], [test "$MD_SUBCPU" = "powerpc"])
-AM_CONDITIONAL([MYSUBCPU_GENERIC], [test "$MD_SUBCPU" != "powerpc" && test "$MD_SUBCPU" != "x86" && test "$MD_SUBCPU" != "x86_64"])
-
AC_CONFIG_FILES([\
Makefile \
config/Makefile \
diff --git a/volk/include/volk/Makefile.am b/volk/include/volk/Makefile.am
index 04a43bd34..658974d3a 100644
--- a/volk/include/volk/Makefile.am
+++ b/volk/include/volk/Makefile.am
@@ -1,5 +1,5 @@
#
-# Copyright 2010 Free Software Foundation, Inc.
+# Copyright 2010,2011 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -130,33 +130,11 @@ volkinclude_HEADERS = \
volk_8s_convert_32f_unaligned16.h
VOLK_MKTABLES_SOURCES = \
+ $(platform_CODE) \
$(top_srcdir)/lib/volk_rank_archs.c \
$(top_srcdir)/lib/volk_mktables.c
-# FIXME: Not very extensible to supporting more processors easily
-if MYSUBCPU_X86_64
- VOLK_MKTABLES_SOURCES += \
- $(top_srcdir)/lib/volk_cpu_x86.c \
- $(top_srcdir)/lib/cpuid_x86_64.S
-endif
-
-if MYSUBCPU_X86
- VOLK_MKTABLES_SOURCES += \
- $(top_srcdir)/lib/volk_cpu_x86.c \
- $(top_srcdir)/lib/cpuid_x86.S
-endif
-
-if MYSUBCPU_POWERPC
- VOLK_MKTABLES_SOURCES += \
- $(top_srcdir)/lib/volk_cpu_powerpc.c
-endif
-
-if MYSUBCPU_GENERIC
- VOLK_MKTABLES_SOURCES += \
- $(top_srcdir)/lib/volk_cpu_generic.c
-endif
-
volk_mktables$(EXEEXT): $(VOLK_MKTABLES_SOURCES)
$(CC) -o $@ $^ $(AM_CPPFLAGS) -I$(top_builddir)/include
diff --git a/volk/include/volk/make_cpuid_generic_c.py b/volk/include/volk/make_cpuid_generic_c.py
index 3ba225fca..c682d4138 100644
--- a/volk/include/volk/make_cpuid_generic_c.py
+++ b/volk/include/volk/make_cpuid_generic_c.py
@@ -1,11 +1,33 @@
+#!/usr/bin/env python
+#
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
from xml.dom import minidom
def make_cpuid_generic_c(dom) :
tempstring = "";
tempstring = tempstring + "/*this file is auto_generated by volk_register.py*/\n\n";
tempstring = tempstring + "#include <volk/volk_cpu.h>\n"
- tempstring = tempstring + "#include <volk/volk_config_fixed.h>\n"
- tempstring = tempstring + "\n\n"
+ tempstring = tempstring + "#include <volk/volk_config_fixed.h>\n\n"
+ tempstring = tempstring + "struct VOLK_CPU volk_cpu;\n\n"
for domarch in dom:
if str(domarch.attributes["type"].value) == "all":
diff --git a/volk/include/volk/make_cpuid_h.py b/volk/include/volk/make_cpuid_h.py
index 823e3b2c0..cd3da2455 100644
--- a/volk/include/volk/make_cpuid_h.py
+++ b/volk/include/volk/make_cpuid_h.py
@@ -1,3 +1,25 @@
+#!/usr/bin/env python
+#
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
from xml.dom import minidom
from emit_omnilog import *
@@ -13,7 +35,8 @@ def make_cpuid_h(dom) :
for domarch in dom:
arch = str(domarch.attributes["name"].value);
tempstring = tempstring + " int (*has_" + arch + ") ();\n";
- tempstring = tempstring + "}volk_cpu;\n\n";
+ tempstring = tempstring + "};\n\n";
+ tempstring = tempstring + "extern struct VOLK_CPU volk_cpu;\n\n";
tempstring = tempstring + "void volk_cpu_init ();\n"
tempstring = tempstring + "unsigned int volk_get_lvarch ();\n"
diff --git a/volk/include/volk/make_cpuid_powerpc_c.py b/volk/include/volk/make_cpuid_powerpc_c.py
index 443a58488..0b0ea84e7 100644
--- a/volk/include/volk/make_cpuid_powerpc_c.py
+++ b/volk/include/volk/make_cpuid_powerpc_c.py
@@ -1,11 +1,33 @@
+#!/usr/bin/env python
+#
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
from xml.dom import minidom
def make_cpuid_powerpc_c(dom) :
tempstring = "";
tempstring = tempstring + "/*this file is auto_generated by volk_register.py*/\n\n";
tempstring = tempstring + "#include <volk/volk_cpu.h>\n"
- tempstring = tempstring + "#include <volk/volk_config_fixed.h>\n"
- tempstring = tempstring + "\n\n"
+ tempstring = tempstring + "#include <volk/volk_config_fixed.h>\n\n"
+ tempstring = tempstring + "struct VOLK_CPU volk_cpu;\n\n"
#just assume it has them for powerpc
for domarch in dom:
diff --git a/volk/include/volk/make_cpuid_x86_c.py b/volk/include/volk/make_cpuid_x86_c.py
index 8ebe243e5..48a406fa4 100644
--- a/volk/include/volk/make_cpuid_x86_c.py
+++ b/volk/include/volk/make_cpuid_x86_c.py
@@ -1,11 +1,34 @@
+#!/usr/bin/env python
+#
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
from xml.dom import minidom
def make_cpuid_x86_c(dom) :
tempstring = "";
tempstring = tempstring + "/*this file is auto_generated by volk_register.py*/\n\n";
tempstring = tempstring + "#include <volk/volk_cpu.h>\n"
- tempstring = tempstring + "#include <volk/volk_config_fixed.h>\n"
- tempstring = tempstring + "\n\n"
+ tempstring = tempstring + "#include <volk/volk_config_fixed.h>\n\n"
+ tempstring = tempstring + "struct VOLK_CPU volk_cpu;\n\n"
+
tempstring = tempstring + "extern void cpuid_x86 (unsigned int op, unsigned int result[4]);\n\n"
tempstring = tempstring + "static inline unsigned int cpuid_eax(unsigned int op) {\n";
tempstring = tempstring + " unsigned int regs[4];\n"
diff --git a/volk/include/volk/make_proccpu_sim.py b/volk/include/volk/make_proccpu_sim.py
index c75a4d5fb..029dacfcc 100644
--- a/volk/include/volk/make_proccpu_sim.py
+++ b/volk/include/volk/make_proccpu_sim.py
@@ -1,3 +1,25 @@
+#!/usr/bin/env python
+#
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
from xml.dom import minidom
def make_proccpu_sim(dom) :
diff --git a/volk/lib/Makefile.am b/volk/lib/Makefile.am
index 814d438fd..896d568e6 100644
--- a/volk/lib/Makefile.am
+++ b/volk/lib/Makefile.am
@@ -1,5 +1,5 @@
#
-# Copyright 2010 Free Software Foundation, Inc.
+# Copyright 2010,2011 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -61,77 +61,17 @@ EXTRA_DIST = \
# The main library
# ----------------------------------------------------------------
-universal_runtime_CODE = \
- volk_runtime.c \
- volk_init.c \
+libvolk_runtime_la_SOURCES = \
+ $(platform_CODE) \
+ volk_runtime.c \
+ volk_init.c \
volk_rank_archs.c
-universal_CODE = \
+libvolk_la_SOURCES = \
+ $(platform_CODE) \
volk.c \
volk_environment_init.c
-generic_CODE = \
- volk_cpu_generic.c
-
-x86_CODE = \
- volk_cpu_x86.c
-
-x86_SUBCODE = \
- cpuid_x86.S
-
-x86_64_SUBCODE = \
- cpuid_x86_64.S
-
-powerpc_CODE = \
- volk_cpu_powerpc.c
-
-
-if MD_CPU_generic
-libvolk_la_SOURCES = \
- $(generic_CODE) \
- $(universal_CODE)
-libvolk_runtime_la_SOURCES = \
- $(generic_CODE) \
- $(universal_runtime_CODE)
-
-endif
-
-if MD_CPU_x86
-if MD_SUBCPU_x86_64
-libvolk_la_SOURCES = \
- $(x86_CODE) \
- $(x86_64_SUBCODE) \
- $(universal_CODE)
-
-libvolk_runtime_la_SOURCES = \
- $(x86_CODE) \
- $(x86_64_SUBCODE) \
- $(universal_runtime_CODE)
-else
-libvolk_la_SOURCES = \
- $(x86_CODE) \
- $(x86_SUBCODE) \
- $(universal_CODE)
-
-libvolk_runtime_la_SOURCES = \
- $(x86_CODE) \
- $(x86_SUBCODE) \
- $(universal_runtime_CODE)
-endif
-endif
-
-
-if MD_CPU_powerpc
-libvolk_la_SOURCES = \
- $(powerpc_CODE) \
- $(universal_CODE)
-
-libvolk_runtime_la_SOURCES = \
- $(powerpc_CODE) \
- $(universal_runtime_CODE)
-endif
-
-
libvolk_la_LDFLAGS = $(NO_UNDEFINED) -version-info 0:0:0
libvolk_runtime_la_LDFLAGS = $(NO_UNDEFINED) -version-info 0:0:0