diff options
author | Josh Blum | 2011-07-23 23:17:06 -0700 |
---|---|---|
committer | Josh Blum | 2011-07-23 23:17:06 -0700 |
commit | 7f622fef32225552811ccffa6b55fa6b2ad08f23 (patch) | |
tree | c408f7856f6cabcd6751708f6faa358c7f24a645 | |
parent | 8752b611c5351c61ba83ffc93fee23091f187e4b (diff) | |
download | gnuradio-7f622fef32225552811ccffa6b55fa6b2ad08f23.tar.gz gnuradio-7f622fef32225552811ccffa6b55fa6b2ad08f23.tar.bz2 gnuradio-7f622fef32225552811ccffa6b55fa6b2ad08f23.zip |
comedi: cmake build support for gr-comedi component (linux only)
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | gr-atsc/src/lib/CMakeLists.txt | 132 | ||||
-rw-r--r-- | gr-comedi/CMakeLists.txt | 104 | ||||
-rw-r--r-- | gr-comedi/src/CMakeLists.txt | 107 | ||||
-rw-r--r-- | gr-comedi/src/comedi_sink_s.cc | 2 | ||||
-rw-r--r-- | gr-comedi/src/comedi_source_s.cc | 2 |
6 files changed, 280 insertions, 68 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 517d96998..dfd7d5a60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -182,6 +182,7 @@ ADD_SUBDIRECTORY(docs) ADD_SUBDIRECTORY(gr-atsc) ADD_SUBDIRECTORY(gr-audio) +ADD_SUBDIRECTORY(gr-comedi) ADD_SUBDIRECTORY(gr-digital) ADD_SUBDIRECTORY(gr-noaa) ADD_SUBDIRECTORY(gr-pager) diff --git a/gr-atsc/src/lib/CMakeLists.txt b/gr-atsc/src/lib/CMakeLists.txt index fbada9bcd..51acf8931 100644 --- a/gr-atsc/src/lib/CMakeLists.txt +++ b/gr-atsc/src/lib/CMakeLists.txt @@ -114,20 +114,20 @@ INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIRS}) LINK_DIRECTORIES(${CPPUNIT_LIBRARY_DIRS}) LIST(APPEND test_atsci_sources - qa_atsci_basic_trellis_encoder.cc - qa_atsci_data_interleaver.cc - qa_atsci_equalizer_nop.cc - qa_atsci_fake_single_viterbi.cc - qa_atsci_fs_correlator.cc - qa_atsci_single_viterbi.cc - qa_atsci_randomizer.cc - qa_atsci_reed_solomon.cc - qa_atsci_sliding_correlator.cc - qa_atsci_trellis_encoder.cc - qa_atsci_viterbi_decoder.cc - qa_convolutional_interleaver.cc - qa_atsci.cc - qa_interleaver_fifo.cc + qa_atsci_basic_trellis_encoder.cc + qa_atsci_data_interleaver.cc + qa_atsci_equalizer_nop.cc + qa_atsci_fake_single_viterbi.cc + qa_atsci_fs_correlator.cc + qa_atsci_single_viterbi.cc + qa_atsci_randomizer.cc + qa_atsci_reed_solomon.cc + qa_atsci_sliding_correlator.cc + qa_atsci_trellis_encoder.cc + qa_atsci_viterbi_decoder.cc + qa_convolutional_interleaver.cc + qa_atsci.cc + qa_interleaver_fifo.cc ) INCLUDE(GrTest) @@ -142,58 +142,58 @@ ENDIF(ENABLE_TESTING) # Install public header files ######################################################################## INSTALL(FILES - atsc_consts.h - atsc_derandomizer.h - atsc_randomizer.h - atsc_rs_decoder.h - atsc_rs_encoder.h - atsc_interleaver.h - atsc_deinterleaver.h - atsc_trellis_encoder.h - atsc_viterbi_decoder.h - atsc_ds_to_softds.h - atsc_field_sync_mux.h - atsc_field_sync_demux.h - atsc_equalizer.h - atsc_fs_checker.h - atsc_bit_timing_loop.h - atsc_fpll.h - atsc_depad.h - atsc_pad.h - atsc_types.h - atsci_basic_trellis_encoder.h - atsci_data_interleaver.h - atsci_diag_output.h - atsci_equalizer.h - atsci_equalizer_lms.h - atsci_equalizer_lms2.h - atsci_equalizer_nop.h - atsci_exp2_lp.h - atsci_fake_single_viterbi.h - atsci_fs_checker.h - atsci_fs_checker_naive.h - atsci_fs_correlator.h - atsci_fs_correlator_naive.h - atsci_pnXXX.h - atsci_randomizer.h - atsci_reed_solomon.h - atsci_root_raised_cosine.h - atsci_root_raised_cosine_bandpass.h - atsci_single_viterbi.h - atsci_slicer_agc.h - atsci_sliding_correlator.h - atsci_sssr.h - atsci_syminfo.h - atsci_sync_tag.h - atsci_trellis_encoder.h - atsci_viterbi_decoder.h - atsci_vsbtx_lp.h - convolutional_interleaver.h - create_atsci_equalizer.h - create_atsci_fs_checker.h - create_atsci_fs_correlator.h - fpll_btloop_coupling.h - interleaver_fifo.h + atsc_consts.h + atsc_derandomizer.h + atsc_randomizer.h + atsc_rs_decoder.h + atsc_rs_encoder.h + atsc_interleaver.h + atsc_deinterleaver.h + atsc_trellis_encoder.h + atsc_viterbi_decoder.h + atsc_ds_to_softds.h + atsc_field_sync_mux.h + atsc_field_sync_demux.h + atsc_equalizer.h + atsc_fs_checker.h + atsc_bit_timing_loop.h + atsc_fpll.h + atsc_depad.h + atsc_pad.h + atsc_types.h + atsci_basic_trellis_encoder.h + atsci_data_interleaver.h + atsci_diag_output.h + atsci_equalizer.h + atsci_equalizer_lms.h + atsci_equalizer_lms2.h + atsci_equalizer_nop.h + atsci_exp2_lp.h + atsci_fake_single_viterbi.h + atsci_fs_checker.h + atsci_fs_checker_naive.h + atsci_fs_correlator.h + atsci_fs_correlator_naive.h + atsci_pnXXX.h + atsci_randomizer.h + atsci_reed_solomon.h + atsci_root_raised_cosine.h + atsci_root_raised_cosine_bandpass.h + atsci_single_viterbi.h + atsci_slicer_agc.h + atsci_sliding_correlator.h + atsci_sssr.h + atsci_syminfo.h + atsci_sync_tag.h + atsci_trellis_encoder.h + atsci_viterbi_decoder.h + atsci_vsbtx_lp.h + convolutional_interleaver.h + create_atsci_equalizer.h + create_atsci_fs_checker.h + create_atsci_fs_correlator.h + fpll_btloop_coupling.h + interleaver_fifo.h DESTINATION ${GR_INCLUDE_DIR}/gnuradio COMPONENT "atsc_devel" ) diff --git a/gr-comedi/CMakeLists.txt b/gr-comedi/CMakeLists.txt new file mode 100644 index 000000000..d3b937067 --- /dev/null +++ b/gr-comedi/CMakeLists.txt @@ -0,0 +1,104 @@ +# 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. + +######################################################################## +# Setup dependencies +######################################################################## +INCLUDE(GrBoost) + +INCLUDE(FindPkgConfig) + +PKG_CHECK_MODULES(COMEDI comedilib) + +######################################################################## +# Register component +######################################################################## +INCLUDE(GrComponent) +GR_REGISTER_COMPONENT("gr-comedi" ENABLE_GR_PAGER + COMEDI_FOUND + LINUX #comedi uses linux specific device noces + Boost_FOUND + ENABLE_GR_CORE_ +) + +REMOVE_DEFINITIONS(-fvisibility=hidden) #FIXME until we do symbol visibility + +GR_SET_GLOBAL(GR_COMEDI_INCLUDE_DIRS + ${CMAKE_CURRENT_SOURCE_DIR}/src +) + +######################################################################## +# Begin conditional configuration +######################################################################## +IF(ENABLE_GR_PAGER) + +######################################################################## +# Setup CPack components +######################################################################## +INCLUDE(GrPackage) +CPACK_SET(CPACK_COMPONENT_GROUP_PAGER_DESCRIPTION "The GNU Radio Comedi Blocks") + +CPACK_COMPONENT("comedi_runtime" + GROUP "Comedi" + DISPLAY_NAME "Runtime" + DESCRIPTION "Runtime" + DEPENDS "core_runtime" +) + +CPACK_COMPONENT("comedi_devel" + GROUP "Comedi" + DISPLAY_NAME "Development" + DESCRIPTION "C++ headers, package config, import libraries" + DEPENDS "core_devel" +) + +CPACK_COMPONENT("comedi_python" + GROUP "Comedi" + DISPLAY_NAME "Python" + DESCRIPTION "Python modules for runtime; GRC xml files" + DEPENDS "core_python;comedi_runtime" +) + +CPACK_COMPONENT("comedi_swig" + GROUP "Comedi" + DISPLAY_NAME "SWIG" + DESCRIPTION "SWIG development .i files" + DEPENDS "core_swig;comedi_python;comedi_devel" +) + +######################################################################## +# Add subdirectories +######################################################################## +ADD_SUBDIRECTORY(src) + +######################################################################## +# Create Pkg Config File +######################################################################## +CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-comedi.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-comedi.pc +@ONLY) + +INSTALL( + FILES ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-comedi.pc + DESTINATION ${GR_LIBRARY_DIR}/pkgconfig + COMPONENT "comedi_devel" +) + +ENDIF(ENABLE_GR_PAGER) diff --git a/gr-comedi/src/CMakeLists.txt b/gr-comedi/src/CMakeLists.txt new file mode 100644 index 000000000..f9dfb169d --- /dev/null +++ b/gr-comedi/src/CMakeLists.txt @@ -0,0 +1,107 @@ +# 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. + +######################################################################## +# Setup the include and linker paths +######################################################################## +INCLUDE_DIRECTORIES( + ${GNURADIO_CORE_INCLUDE_DIRS} + ${GR_COMEDI_INCLUDE_DIRS} +) + +INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) +LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) + +INCLUDE_DIRECTORIES(${COMEDI_INCLUDE_DIRS}) +LINK_DIRECTORIES(${COMEDI_LIBRARY_DIRS}) + +######################################################################## +# Setup library +######################################################################## +LIST(APPEND gr_comedi_sources + ${comedii_viterbi_mux_cc} + comedi_sink_s.cc + comedi_source_s.cc + gri_comedi.cc +) + +LIST(APPEND comedi_libs + gnuradio-core + ${Boost_LIBRARIES} + ${COMEDI_LIBRARIES} +) + +ADD_LIBRARY(gnuradio-comedi SHARED ${gr_comedi_sources}) +TARGET_LINK_LIBRARIES(gnuradio-comedi ${comedi_libs}) +SET_TARGET_PROPERTIES(gnuradio-comedi PROPERTIES DEFINE_SYMBOL "gnuradio_comedi_EXPORTS") +SET_TARGET_PROPERTIES(gnuradio-comedi PROPERTIES SOVERSION ${LIBVER}) + +INSTALL(TARGETS gnuradio-comedi + LIBRARY DESTINATION ${GR_LIBRARY_DIR} COMPONENT "comedi_runtime" # .so/.dylib file + ARCHIVE DESTINATION ${GR_LIBRARY_DIR} COMPONENT "comedi_devel" # .lib file + RUNTIME DESTINATION ${GR_RUNTIME_DIR} COMPONENT "comedi_runtime" # .dll file +) + +######################################################################## +# Setup swig generation +######################################################################## +IF(ENABLE_PYTHON) +INCLUDE(GrPython) +INCLUDE(GrSwig) + +SET(GR_SWIG_INCLUDE_DIRS + ${GR_COMEDI_INCLUDE_DIRS} + ${GNURADIO_CORE_SWIG_INCLUDE_DIRS} +) + +SET(GR_SWIG_LIBRARIES gnuradio-comedi) + +GR_SWIG_MAKE(comedi comedi.i) + +GR_SWIG_INSTALL( + TARGETS comedi + DESTINATION ${GR_PYTHON_DIR}/gnuradio + COMPONENT "comedi_python" +) + +INSTALL( + FILES comedi.i + DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig + COMPONENT "comedi_swig" +) + +ENDIF(ENABLE_PYTHON) + +######################################################################## +# Handle the unit tests +######################################################################## +IF(ENABLE_TESTING AND ENABLE_PYTHON) +INCLUDE(GrTest) +FILE(GLOB py_qa_test_files "qa_*.py") +FOREACH(py_qa_test_file ${py_qa_test_files}) + GET_FILENAME_COMPONENT(py_qa_test_name ${py_qa_test_file} NAME_WE) + SET(GR_TEST_PYTHON_DIRS + ${CMAKE_BINARY_DIR}/gnuradio-core/src/python + ${CMAKE_BINARY_DIR}/gnuradio-core/src/lib/swig + ${CMAKE_BINARY_DIR}/gr-comedi/src + ) + SET(GR_TEST_TARGET_DEPS gruel gnuradio-core gnuradio-comedi) + GR_ADD_TEST(${py_qa_test_name} ${PYTHON_EXECUTABLE} ${py_qa_test_file}) +ENDFOREACH(py_qa_test_file) +ENDIF(ENABLE_TESTING AND ENABLE_PYTHON) diff --git a/gr-comedi/src/comedi_sink_s.cc b/gr-comedi/src/comedi_sink_s.cc index d4a668758..fc5c14931 100644 --- a/gr-comedi/src/comedi_sink_s.cc +++ b/gr-comedi/src/comedi_sink_s.cc @@ -88,7 +88,7 @@ comedi_sink_s::comedi_sink_s (int sampling_freq, comedi_cmd cmd; int ret; - ret = comedi_get_cmd_generic_timed(d_dev,d_subdevice,&cmd,(unsigned int)(1e9/sampling_freq)); + ret = comedi_get_cmd_generic_timed(d_dev,d_subdevice,&cmd,d_n_chan,(unsigned int)(1e9/sampling_freq)); if(ret<0) bail ("comedi_get_cmd_generic_timed", comedi_errno()); diff --git a/gr-comedi/src/comedi_source_s.cc b/gr-comedi/src/comedi_source_s.cc index a52d04e2a..5d9f2f6b0 100644 --- a/gr-comedi/src/comedi_source_s.cc +++ b/gr-comedi/src/comedi_source_s.cc @@ -85,7 +85,7 @@ comedi_source_s::comedi_source_s (int sampling_freq, comedi_cmd cmd; int ret; - ret = comedi_get_cmd_generic_timed(d_dev,d_subdevice,&cmd,(unsigned int)(1e9/sampling_freq)); + ret = comedi_get_cmd_generic_timed(d_dev,d_subdevice,&cmd,d_n_chan,(unsigned int)(1e9/sampling_freq)); if(ret<0) bail ("comedi_get_cmd_generic_timed", comedi_errno()); |