summaryrefslogtreecommitdiff
path: root/gr-fcd
diff options
context:
space:
mode:
authorJohnathan Corgan <jcorgan@corganenterprises.com>2012-03-22 13:35:20 -0700
committerJohnathan Corgan <jcorgan@corganenterprises.com>2012-03-22 13:57:13 -0700
commit81fba6490c6471e1db3bcc85d16ff2242f68fb43 (patch)
tree89d54a97c23fdd5205c38947029e9d69e04f6db6 /gr-fcd
parente383cfe2674fa6682a1392af8d9b9f090af1aec5 (diff)
Implement conditionalized build for WIN32
Diffstat (limited to 'gr-fcd')
-rw-r--r--gr-fcd/CMakeLists.txt24
-rw-r--r--gr-fcd/examples/CMakeLists.txt4
-rw-r--r--gr-fcd/include/fcd/fcd_api.h2
-rw-r--r--gr-fcd/lib/CMakeLists.txt4
-rw-r--r--gr-fcd/lib/fcd/Makefile.am1
-rw-r--r--gr-fcd/lib/fcd/fcd.c26
-rw-r--r--gr-fcd/lib/fcd/fcd.h36
7 files changed, 52 insertions, 45 deletions
diff --git a/gr-fcd/CMakeLists.txt b/gr-fcd/CMakeLists.txt
index d0dc54bfd4..e454c01fad 100644
--- a/gr-fcd/CMakeLists.txt
+++ b/gr-fcd/CMakeLists.txt
@@ -21,7 +21,7 @@
# Setup dependencies
########################################################################
include(GrBoost)
-if(NOT WIN32 AND NOT MACOSX)
+if(NOT WIN32 AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
include(FindUSB)
endif()
@@ -29,12 +29,22 @@ endif()
# Register component
########################################################################
include(GrComponent)
-GR_REGISTER_COMPONENT("gr-fcd" ENABLE_GR_FCD
- Boost_FOUND
- ENABLE_GR_CORE
- ENABLE_GR_AUDIO
- LIBUSB_FOUND
-)
+
+# FIXME make better conditionalization
+if (LINUX)
+ GR_REGISTER_COMPONENT("gr-fcd" ENABLE_GR_FCD
+ Boost_FOUND
+ ENABLE_GR_CORE
+ ENABLE_GR_AUDIO
+ LIBUSB_FOUND
+ )
+else()
+ GR_REGISTER_COMPONENT("gr-fcd" ENABLE_GR_FCD
+ Boost_FOUND
+ ENABLE_GR_CORE
+ ENABLE_GR_AUDIO
+ )
+endif()
GR_SET_GLOBAL(GR_FCD_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/lib
diff --git a/gr-fcd/examples/CMakeLists.txt b/gr-fcd/examples/CMakeLists.txt
index 9913a30f3f..477a6311b8 100644
--- a/gr-fcd/examples/CMakeLists.txt
+++ b/gr-fcd/examples/CMakeLists.txt
@@ -24,8 +24,8 @@ include_directories(${GR_AUDIO_INCLUDE_DIRS})
add_executable(fcd_nfm_rx fcd_nfm_rx.cc)
target_link_libraries(fcd_nfm_rx gnuradio-fcd)
-INSTALL(PROGRAMS
- ${CMAKE_CURRENT_BINARY_DIR}/fcd_nfm_rx
+INSTALL(TARGETS
+ fcd_nfm_rx
DESTINATION ${GR_PKG_DATA_DIR}/examples/fcd
COMPONENT "fcd_examples"
)
diff --git a/gr-fcd/include/fcd/fcd_api.h b/gr-fcd/include/fcd/fcd_api.h
index d6d1bd31f1..e1452b8afc 100644
--- a/gr-fcd/include/fcd/fcd_api.h
+++ b/gr-fcd/include/fcd/fcd_api.h
@@ -24,7 +24,7 @@
#include <gruel/attributes.h>
-#ifdef gnuradio_pager_EXPORTS
+#ifdef gnuradio_fcd_EXPORTS
# define FCD_API __GR_ATTR_EXPORT
#else
# define FCD_API __GR_ATTR_IMPORT
diff --git a/gr-fcd/lib/CMakeLists.txt b/gr-fcd/lib/CMakeLists.txt
index ee28def04f..0e1f2aa017 100644
--- a/gr-fcd/lib/CMakeLists.txt
+++ b/gr-fcd/lib/CMakeLists.txt
@@ -48,6 +48,10 @@ list(APPEND fcd_libs
${Boost_LIBRARIES}
)
+if (WIN32)
+ list(APPEND fcd_libs setupapi)
+endif()
+
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
FIND_LIBRARY(IOKIT_LIBRARY IOKit)
list(APPEND fcd_libs ${IOKIT_LIBRARY})
diff --git a/gr-fcd/lib/fcd/Makefile.am b/gr-fcd/lib/fcd/Makefile.am
index 0eff4785b2..f328a7cacb 100644
--- a/gr-fcd/lib/fcd/Makefile.am
+++ b/gr-fcd/lib/fcd/Makefile.am
@@ -25,6 +25,7 @@ AM_CPPFLAGS = \
$(STD_DEFINES_AND_INCLUDES) \
$(WITH_INCLUDES) \
$(USB_CPPFLAGS) \
+ -I$(top_srcdir)/gr-fcd/include/fcd \
-I$(top_srcdir)/gr-fcd/lib/hid
noinst_LTLIBRARIES = libfcd.la
diff --git a/gr-fcd/lib/fcd/fcd.c b/gr-fcd/lib/fcd/fcd.c
index 7e5e82998b..ca90502318 100644
--- a/gr-fcd/lib/fcd/fcd.c
+++ b/gr-fcd/lib/fcd/fcd.c
@@ -96,7 +96,7 @@ static void fcdClose(hid_device *phd)
* \return The current FCD mode.
* \sa FCD_MODE_ENUM
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetMode(void)
+EXTERN FCD_MODE_ENUM fcdGetMode(void)
{
hid_device *phd=NULL;
unsigned char aucBufIn[65];
@@ -147,7 +147,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetMode(void)
* \return The current FCD mode.
* \sa FCD_MODE_ENUM
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetFwVerStr(char *str)
+EXTERN FCD_MODE_ENUM fcdGetFwVerStr(char *str)
{
hid_device *phd=NULL;
unsigned char aucBufIn[65];
@@ -211,7 +211,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetFwVerStr(char *str)
*
* Ref: http://uk.groups.yahoo.com/group/FCDevelopment/message/303
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetCaps(FCD_CAPS_STRUCT *fcd_caps)
+EXTERN FCD_MODE_ENUM fcdGetCaps(FCD_CAPS_STRUCT *fcd_caps)
{
hid_device *phd=NULL;
unsigned char aucBufIn[65];
@@ -285,7 +285,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetCaps(FCD_CAPS_STRUCT *fcd
*
* Ref: http://uk.groups.yahoo.com/group/FCDevelopment/message/303
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetCapsStr(char *caps_str)
+EXTERN FCD_MODE_ENUM fcdGetCapsStr(char *caps_str)
{
hid_device *phd=NULL;
unsigned char aucBufIn[65];
@@ -342,7 +342,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetCapsStr(char *caps_str)
* This function is used to switch the FCD into bootloader mode in which
* various firmware operations can be performed.
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppReset(void)
+EXTERN FCD_MODE_ENUM fcdAppReset(void)
{
hid_device *phd=NULL;
//unsigned char aucBufIn[65];
@@ -401,7 +401,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppReset(void)
*
* \sa fcdAppSetFreq
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppSetFreqkHz(int nFreq)
+EXTERN FCD_MODE_ENUM fcdAppSetFreqkHz(int nFreq)
{
hid_device *phd=NULL;
unsigned char aucBufIn[65];
@@ -448,7 +448,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppSetFreqkHz(int nFreq)
*
* \sa fcdAppSetFreq
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppSetFreq(int nFreq)
+EXTERN FCD_MODE_ENUM fcdAppSetFreq(int nFreq)
{
hid_device *phd=NULL;
unsigned char aucBufIn[65];
@@ -494,7 +494,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppSetFreq(int nFreq)
* This function is used to switch the FCD from bootloader mode
* into application mode.
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlReset(void)
+EXTERN FCD_MODE_ENUM fcdBlReset(void)
{
hid_device *phd=NULL;
// unsigned char aucBufIn[65];
@@ -552,7 +552,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlReset(void)
*
* \sa fcdBlWriteFirmware
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlErase(void)
+EXTERN FCD_MODE_ENUM fcdBlErase(void)
{
hid_device *phd=NULL;
unsigned char aucBufIn[65];
@@ -596,7 +596,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlErase(void)
*
* \sa fcdBlErase
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlWriteFirmware(char *pc, int64_t n64Size)
+EXTERN FCD_MODE_ENUM fcdBlWriteFirmware(char *pc, int64_t n64Size)
{
hid_device *phd=NULL;
unsigned char aucBufIn[65];
@@ -695,7 +695,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlWriteFirmware(char *pc, in
* image pointed to by pc. The function return FCD_MODE_BL if the verification is OK and
* FCD_MODE_APP otherwise.
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlVerifyFirmware(char *pc, int64_t n64Size)
+EXTERN FCD_MODE_ENUM fcdBlVerifyFirmware(char *pc, int64_t n64Size)
{
hid_device *phd=NULL;
unsigned char aucBufIn[65];
@@ -810,7 +810,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlVerifyFirmware(char *pc, i
* - FCD_MODE_BL : Reply from FCD was not as expected.
* - FCD_MODE_NONE : No FCD was found
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppSetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len)
+EXTERN FCD_MODE_ENUM fcdAppSetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len)
{
hid_device *phd=NULL;
unsigned char aucBufOut[65];
@@ -866,7 +866,7 @@ EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppSetParam(uint8_t u8Cmd, u
* - FCD_MODE_BL : Reply from FCD was not as expected.
* - FCD_MODE_NONE : No FCD was found
*/
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppGetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len)
+EXTERN FCD_MODE_ENUM fcdAppGetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len)
{
hid_device *phd=NULL;
unsigned char aucBufOut[65];
diff --git a/gr-fcd/lib/fcd/fcd.h b/gr-fcd/lib/fcd/fcd.h
index 50983b473a..7cfe9b7ede 100644
--- a/gr-fcd/lib/fcd/fcd.h
+++ b/gr-fcd/lib/fcd/fcd.h
@@ -23,6 +23,7 @@
#ifndef FCD_H
#define FCD_H 1
+#include <fcd_api.h>
#ifdef FCD
#define EXTERN
@@ -32,17 +33,8 @@
#define ASSIGN(x)
#endif
-#ifdef _WIN32
-#define FCD_API_EXPORT __declspec(dllexport)
-#define FCD_API_CALL _stdcall
-#else
-#define FCD_API_EXPORT
-#define FCD_API_CALL
-#endif
-
#include <inttypes.h>
-
/** \brief FCD mode enumeration. */
typedef enum {
FCD_MODE_NONE, /*!< No FCD detected. */
@@ -61,23 +53,23 @@ extern "C" {
#endif
/* Application functions */
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetMode(void);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetFwVerStr(char *str);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetCaps(FCD_CAPS_STRUCT *fcd_caps);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdGetCapsStr(char *caps_str);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppReset(void);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppSetFreqkHz(int nFreq);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppSetFreq(int nFreq);
+EXTERN FCD_API FCD_MODE_ENUM fcdGetMode(void);
+EXTERN FCD_API FCD_MODE_ENUM fcdGetFwVerStr(char *str);
+EXTERN FCD_API FCD_MODE_ENUM fcdGetCaps(FCD_CAPS_STRUCT *fcd_caps);
+EXTERN FCD_API FCD_MODE_ENUM fcdGetCapsStr(char *caps_str);
+EXTERN FCD_API FCD_MODE_ENUM fcdAppReset(void);
+EXTERN FCD_API FCD_MODE_ENUM fcdAppSetFreqkHz(int nFreq);
+EXTERN FCD_API FCD_MODE_ENUM fcdAppSetFreq(int nFreq);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppSetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdAppGetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len);
+EXTERN FCD_API FCD_MODE_ENUM fcdAppSetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len);
+EXTERN FCD_API FCD_MODE_ENUM fcdAppGetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len);
/* Bootloader functions */
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlReset(void);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlErase(void);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlWriteFirmware(char *pc, int64_t n64Size);
-EXTERN FCD_API_EXPORT FCD_API_CALL FCD_MODE_ENUM fcdBlVerifyFirmware(char *pc, int64_t n64Size);
+EXTERN FCD_API FCD_MODE_ENUM fcdBlReset(void);
+EXTERN FCD_API FCD_MODE_ENUM fcdBlErase(void);
+EXTERN FCD_API FCD_MODE_ENUM fcdBlWriteFirmware(char *pc, int64_t n64Size);
+EXTERN FCD_API FCD_MODE_ENUM fcdBlVerifyFirmware(char *pc, int64_t n64Size);
#ifdef __cplusplus