Switch to cmake for building.
This commit is contained in:
		
							parent
							
								
									47525ef796
								
							
						
					
					
						commit
						0091737339
					
				|  | @ -0,0 +1,57 @@ | |||
| # CMake definitions for SoftFM | ||||
| 
 | ||||
| cmake_minimum_required(VERSION 2.4) | ||||
| project(SoftFM) | ||||
| 
 | ||||
| find_package(PkgConfig) | ||||
| find_package(ALSA REQUIRED) | ||||
| 
 | ||||
| # Find RTL-SDR library (for linking). | ||||
| pkg_check_modules(PKG_RTLSDR librtlsdr) | ||||
| find_path(RTLSDR_INCLUDE_DIR rtl-sdr.h | ||||
|           HINT ${PKG_RTLSDR_INCLUDE_DIRS}) | ||||
| find_library(RTLSDR_LIBRARY librtlsdr.a | ||||
|              HINT ${PKG_RTLSDR_LIBRARY_DIRS}) | ||||
| 
 | ||||
| # Find libusb | ||||
| pkg_check_modules(PKG_LIBUSB libusb-1.0) | ||||
| find_path(LIBUSB_INCLUDE_DIR libusb.h | ||||
|           HINT ${PKG_LIBUSB_INCLUDE_DIRS} | ||||
|           PATH_SUFFIXES libusb-1.0) | ||||
| find_library(LIBUSB_LIBRARY usb-1.0 | ||||
|              HINT ${PKG_LIBUSB_LIBRARY_DIRS}) | ||||
| 
 | ||||
| if(RTLSDR_INCLUDE_DIR AND RTLSDR_LIBRARY) | ||||
|     message(STATUS "Found librtlsdr: ${RTLSDR_INCLUDE_DIR}, ${RTLSDR_LIBRARY}") | ||||
| else() | ||||
|     message(WARNING "Can not find Osmocom RTL-SDR library") | ||||
|     message("Try again with environment variable PKG_CONFIG_PATH") | ||||
|     message("or with -DRTLSDR_INCLUDE_DIR=/path/rtlsdr/include") | ||||
|     message("        -DRTLSDR_LIBRARY=/path/rtlsdr/lib/librtlsdr.a") | ||||
| endif() | ||||
| 
 | ||||
| set(RTLSDR_INCLUDE_DIRS ${RTLSDR_INCLUDE_DIR} ${LIBUSB_INCLUDE_DIR}) | ||||
| set(RTLSDR_LIBRARIES    ${RTLSDR_LIBRARY} ${LIBUSB_LIBRARY}) | ||||
| 
 | ||||
| # Compiler flags. | ||||
| set(CMAKE_CXX_FLAGS "-Wall -std=c++11 -O2 -ffast-math -ftree-vectorize ${EXTRA_FLAGS}") | ||||
| 
 | ||||
| add_executable(softfm | ||||
|     main.cc | ||||
|     RtlSdrSource.cc | ||||
|     Filter.cc | ||||
|     FmDecode.cc | ||||
|     AudioOutput.cc ) | ||||
| 
 | ||||
| include_directories( | ||||
|     ${RTLSDR_INCLUDE_DIRS} | ||||
|     ${ALSA_INCLUDE_DIRS} | ||||
|     ${EXTRA_INCLUDES} ) | ||||
| 
 | ||||
| target_link_libraries(softfm | ||||
|     ${RTLSDR_LIBRARIES} | ||||
|     ${ALSA_LIBRARIES} | ||||
|     ${EXTRA_LIBS} ) | ||||
| 
 | ||||
| install(TARGETS softfm DESTINATION bin) | ||||
| 
 | ||||
							
								
								
									
										41
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										41
									
								
								Makefile
								
								
								
								
							|  | @ -1,41 +0,0 @@ | |||
| # Makefile for SoftFM
 | ||||
| 
 | ||||
| # ----- Tweak these settings to configure for your system
 | ||||
| 
 | ||||
| CROSS         = | ||||
| CFLAGS_OPT    = -O2 -ffast-math -ftree-vectorize | ||||
| CFLAGS_DEBUG  = -g | ||||
| CFLAGS_ARCH   = | ||||
| CFLAGS_PATH   = -I/home/joris/test/rtl-sdr/inst/include | ||||
| CFLAGS_EXTRA  = | ||||
| LDFLAGS_PATH  = -L/home/joris/test/rtl-sdr/inst/lib | ||||
| LDFLAGS_EXTRA = | ||||
| LIBS_ALSA     = -lasound | ||||
| LIBS_RTLSDR   = /home/joris/test/rtl-sdr/inst/lib/librtlsdr.a -lusb-1.0 | ||||
| LIBS_EXTRA    = | ||||
| 
 | ||||
| # ----- end tweakable settings
 | ||||
| 
 | ||||
| 
 | ||||
| CXX = $(CROSS)g++ | ||||
| CXXFLAGS = -std=c++11 -Wall -D_FILE_OFFSET_BITS=64 \
 | ||||
|            $(CFLAGS_OPT) $(CFLAGS_DEBUG) \
 | ||||
|            $(CFLAGS_ARCH) $(CFLAGS_PATH) $(CFLAGS_EXTRA) | ||||
| LDFLAGS = $(LDFLAGS_PATH) $(LDFLAGS_EXTRA) | ||||
| LDLIBS  = $(LIBS_ALSA) $(LIBS_RTLSDR) $(LIBS_EXTRA) | ||||
| 
 | ||||
| OBJS	= RtlSdrSource.o Filter.o FmDecode.o AudioOutput.o main.o | ||||
| 
 | ||||
| softfm         : $(OBJS) | ||||
| 	$(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS) | ||||
| 
 | ||||
| RtlSdrSource.o : RtlSdrSource.cc RtlSdrSource.h SoftFM.h | ||||
| Filter.o       : Filter.cc Filter.h SoftFM.h | ||||
| FmDecode.o     : FmDecode.cc FmDecode.h SoftFM.h Filter.h | ||||
| AudioOutput.o  : AudioOutput.cc AudioOutput.h SoftFM.h | ||||
| main.o         : main.cc SoftFM.h RtlSdrSource.h Filter.h FmDecode.h AudioOutput.h | ||||
| 
 | ||||
| .PHONY: clean | ||||
| clean: | ||||
| 	$(RM) softfm *.o | ||||
| 
 | ||||
|  | @ -0,0 +1,10 @@ | |||
| * write README.txt | ||||
| * push to github | ||||
| * implement WAV file writing | ||||
| * implement stereo pilot PPS | ||||
| * implement RDS decoding | ||||
| * figure out why we sometimes lose stereo lock | ||||
| * investigate problem at low IF sample rates; apparently librtlsdr is not telling the truth about the actual sample rate. | ||||
| * look at I/Q balance to improve weak stations | ||||
| * look at hardware gain settings to improve weak stations | ||||
| * consider FM demodulation with PLL instead of phase discriminator | ||||
		Loading…
	
		Reference in New Issue