Adding compatibility with Mac OS X 10.6.8 (Snow Leopard)

git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@94 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
Carles Fernandez 2011-12-24 20:54:25 +00:00
parent b4eae8c37a
commit baebfd96be
9 changed files with 44 additions and 19 deletions

View File

@ -17,7 +17,7 @@ ControlThread.wait_for_flowgraph=false
SignalSource.implementation=File_Signal_Source
;#filename: path to file with the captured GNSS signal samples to be processed
SignalSource.filename=/media/sf_captures/cap2/agilent_cap2.dat
SignalSource.filename=/Users/carlesfernandez/Documents/workspace/gnss-sdr/trunk/data/agilent_cap2.dat

View File

@ -3,12 +3,11 @@ lib gtest ;
lib glog ;
lib gflags ;
lib gnuradio-core ;
lib armadillo ;
project : requirements
<define>OMNITHREAD_POSIX
<cxxflags>"-std=c++0x -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free"
<linkflags>"-larmadillo -lboost_thread -llapack -lblas -lprofiler -ltcmalloc"
<linkflags>"-larmadillo -lboost_system -lboost_filesystem -lboost_thread -llapack -lblas -lprofiler -ltcmalloc"
<include>src/algorithms/acquisition/adapters
<include>src/algorithms/acquisition/gnuradio_blocks
<include>src/algorithms/channel/adapters
@ -42,6 +41,7 @@ project : requirements
<include>$GNURADIO_ROOT/gnuradio-core/src/lib/io
<include>$GNURADIO_ROOT/gnuradio-core/src/lib/general
<include>$GNURADIO_ROOT/gnuradio-core/src/lib/gengen
<threading>multi ;
<threading>multi
<toolset>darwin:<include>/opt/local/include ;
build-project src ;

View File

@ -31,12 +31,15 @@
* -------------------------------------------------------------------------
*/
#include "gps_l1_ca_gps_sdr_acquisition_ss.h"
#include "gps_sdr_simd.h"
#include "gps_sdr_fft.h"
#include "gps_sdr_prn_codes_short.h"
#include "control_message_factory.h"
#include "gps_sdr_x86.h"
#ifdef NO_SIMD
#include "gps_sdr_x86.h"
#else
#include "gps_sdr_simd.h"
#endif
#include <gnuradio/gr_io_signature.h>
@ -179,7 +182,17 @@ int gps_l1_ca_gps_sdr_acquisition_ss::general_work(int noutput_items,
DLOG(INFO) << "copied " << (d_fft_size * sizeof(CPX))
<< " bytes into buffer (" << d_fft_size << " samples)";
memcpy(d_baseband_signal, in, d_fft_size * sizeof(CPX));
#ifdef NO_SIMD
x86_cmulsc(d_baseband_signal, d_sine_250,
&d_baseband_signal[d_fft_size], d_fft_size, 14);
x86_cmulsc(d_baseband_signal, d_sine_500, &d_baseband_signal[2
* d_fft_size], d_fft_size, 14);
x86_cmulsc(d_baseband_signal, d_sine_750, &d_baseband_signal[3
* d_fft_size], d_fft_size, 14);
x86_cmuls(d_baseband_signal, d_sine_if, d_fft_size, 14);
#else
sse_cmulsc(d_baseband_signal, d_sine_250,
&d_baseband_signal[d_fft_size], d_fft_size, 14);
sse_cmulsc(d_baseband_signal, d_sine_500, &d_baseband_signal[2
@ -188,7 +201,7 @@ int gps_l1_ca_gps_sdr_acquisition_ss::general_work(int noutput_items,
* d_fft_size], d_fft_size, 14);
sse_cmuls(d_baseband_signal, d_sine_if, d_fft_size, 14);
#endif
for (unsigned int i = 0; i < d_doppler_resolution; i++)
{
d_pFFT->doFFT(&d_baseband_signal[i * d_fft_size], true);
@ -209,10 +222,19 @@ int gps_l1_ca_gps_sdr_acquisition_ss::general_work(int noutput_items,
{
for (unsigned int j = 0; j < d_doppler_resolution; j++)
{
#ifdef NO_SIMD
x86_cmulsc(&d_baseband_signal_shift[(j * (d_fft_size + 201))
+ 100 + i], d_fft_codes[d_satellite], buffer,
d_fft_size, 10);
#else
sse_cmulsc(&d_baseband_signal_shift[(j * (d_fft_size + 201))
+ 100 + i], d_fft_codes[d_satellite], buffer,
d_fft_size, 10);
d_piFFT->doiFFT(buffer, true);
#endif
d_piFFT->doiFFT(buffer, true);
x86_cmag(buffer, d_fft_size);
x86_max((unsigned int *)buffer, &indext, &magt, d_fft_size);

View File

@ -1,6 +1,6 @@
project : build-dir ../../../../build ;
obj gps_l1_ca_gps_sdr_acquisition_cc : gps_l1_ca_gps_sdr_acquisition_cc.cc ;
obj gps_l1_ca_gps_sdr_acquisition_ss : gps_l1_ca_gps_sdr_acquisition_ss.cc ;
obj gps_l1_ca_gps_sdr_acquisition_ss : gps_l1_ca_gps_sdr_acquisition_ss.cc : <toolset>darwin:<define>NO_SIMD ;
obj gps_l1_ca_pcps_acquisition_cc : gps_l1_ca_pcps_acquisition_cc.cc ;
obj gps_l1_ca_tong_pcps_acquisition_cc : gps_l1_ca_tong_pcps_acquisition_cc.cc ;
obj gps_l1_ca_tong_pcps_acquisition_cc : gps_l1_ca_tong_pcps_acquisition_cc.cc ;

View File

@ -20,6 +20,9 @@ write to the:
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
************************************************************************************************/
#ifdef NO_SIMD
#else
#include "gps_sdr_simd.h"
// __asm
@ -1035,7 +1038,7 @@ void sse_prn_accum_new(CPX *A, MIX *E, MIX *P, MIX *L, int32 cnt, CPX_ACCUM *acc
}
#endif

View File

@ -3,8 +3,8 @@ project : build-dir ../../../build ;
obj gps_sdr_signal_processing : gps_sdr_signal_processing.cc ;
obj gnss_sdr_valve : gnss_sdr_valve.cc ;
obj pass_through : pass_through.cc ;
obj gps_sdr_fft : gps_sdr_fft.cc ;
obj gps_sdr_simd : gps_sdr_simd.cc ;
obj gps_sdr_fft : gps_sdr_fft.cc : <toolset>darwin:<define>NO_SIMD ;
obj gps_sdr_simd : gps_sdr_simd.cc : <toolset>darwin:<define>NO_SIMD ;
obj gps_sdr_x86 : gps_sdr_x86.cc ;

View File

@ -36,7 +36,7 @@
#include "gps_l1_ca_dll_fll_pll_tracking.h"
#include "GPS_L1_CA.h"
#include "configuration_interface.h"
#include <boost/math/special_functions/round.hpp>
#include <gnuradio/gr_io_signature.h>
#include <glog/log_severity.h>
@ -85,7 +85,7 @@ GpsL1CaDllFllPllTracking::GpsL1CaDllFllPllTracking(
dump_filename = configuration->property(role + ".dump_filename",
default_dump_filename); //unused!
vector_length = std::round(fs_in / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS));
vector_length = round(fs_in / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS));
//################# MAKE TRACKING GNURadio object ###################
if (item_type.compare("gr_complex") == 0)

View File

@ -36,7 +36,7 @@
#include "gps_l1_ca_dll_pll_tracking.h"
#include "GPS_L1_CA.h"
#include "configuration_interface.h"
#include <boost/math/special_functions/round.hpp>
#include <gnuradio/gr_io_signature.h>
#include <glog/log_severity.h>
@ -81,7 +81,7 @@ GpsL1CaDllPllTracking::GpsL1CaDllPllTracking(
dump_filename = configuration->property(role + ".dump_filename",
default_dump_filename); //unused!
vector_length = std::round(fs_in / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS));
vector_length = round(fs_in / (GPS_L1_CA_CODE_RATE_HZ / GPS_L1_CA_CODE_LENGTH_CHIPS));
//################# MAKE TRACKING GNURadio object ###################
if (item_type.compare("gr_complex") == 0)

View File

@ -16,7 +16,7 @@ exe gnss-sdr : main.cc
../algorithms/libs//gnss_sdr_valve
../algorithms/libs//pass_through
../algorithms/libs//gps_sdr_fft
../algorithms/libs//gps_sdr_simd
#../algorithms/libs//gps_sdr_simd
../algorithms/libs//gps_sdr_x86
../algorithms/observables/adapters//gps_l1_ca_observables
../algorithms/observables/gnuradio_blocks//gps_l1_ca_observables_cc