diff options
Diffstat (limited to 'volk')
-rw-r--r-- | volk/Makefile.am | 2 | ||||
-rw-r--r-- | volk/Makefile.common | 30 | ||||
-rw-r--r-- | volk/configure.ac | 9 | ||||
-rw-r--r-- | volk/include/volk/Makefile.am | 26 | ||||
-rw-r--r-- | volk/include/volk/make_cpuid_generic_c.py | 26 | ||||
-rw-r--r-- | volk/include/volk/make_cpuid_h.py | 25 | ||||
-rw-r--r-- | volk/include/volk/make_cpuid_powerpc_c.py | 26 | ||||
-rw-r--r-- | volk/include/volk/make_cpuid_x86_c.py | 27 | ||||
-rw-r--r-- | volk/include/volk/make_proccpu_sim.py | 22 | ||||
-rw-r--r-- | volk/lib/Makefile.am | 74 |
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 |