From 1caa844dad647b03cf3c1d11bf211e9fcde4b7f1 Mon Sep 17 00:00:00 2001 From: mwturvey Date: Wed, 15 Mar 2017 11:38:22 -0700 Subject: Windows Compiling --- include/libsurvive/survive.h | 46 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/libsurvive/survive.h b/include/libsurvive/survive.h index 349a93e..db04a9d 100644 --- a/include/libsurvive/survive.h +++ b/include/libsurvive/survive.h @@ -136,10 +136,38 @@ void survive_default_angle_process( SurviveObject * so, int sensor_id, int acode ////////////////////// Survive Drivers //////////////////////////// +// The following macros were taken from StackOverflow here: +// http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc +// The author, Joe Lowe explicitly released this code into the public domain as part of his post. +#ifdef __cplusplus +#define INITIALIZER(f) \ + static void f(void); \ + struct f##_t_ { f##_t_(void) { f(); } }; static f##_t_ f##_; \ + static void f(void) +#elif defined(_MSC_VER) +#pragma section(".CRT$XCU",read) +#define INITIALIZER2_(f,p) \ + static void f(void); \ + __declspec(allocate(".CRT$XCU")) void (*f##_)(void) = f; \ + __pragma(comment(linker,"/include:" p #f "_")) \ + static void f(void) +#ifdef _WIN64 +#define INITIALIZER(f) INITIALIZER2_(f,"") +#else +#define INITIALIZER(f) INITIALIZER2_(f,"_") +#endif +#else +#define INITIALIZER(f) \ + static void f(void) __attribute__((constructor)); \ + static void f(void) +#endif +// End macros from StackOverflow. + + void RegisterDriver( const char * name, void * data ); #define REGISTER_LINKTIME( func ) \ - void __attribute__((constructor)) REGISTER##func() { RegisterDriver( #func, &func ); } + INITIALIZER(LTRegister##func) { RegisterDriver( #func, &func ); } @@ -151,19 +179,29 @@ void survive_add_driver( SurviveContext * ctx, void * payload, DeviceDriverCb po //For lightcap, etc. Don't change this structure at all. Regular vive is dependent on it being exactly as-is. //When you write drivers, you can use this to send survive lightcap data. +#ifdef _WIN32 +#pragma pack(push,1) +#endif typedef struct { uint8_t sensor_id; uint8_t type; //Mostly unused. Set to 255 to ignore it. uint16_t length; uint32_t timestamp; -} __attribute__((packed)) LightcapElement; +} +#ifdef __linux__ +__attribute__((packed)) +#endif +LightcapElement; +#ifdef _WIN32 +#pragma pack(pop) +#endif //This is the disambiguator function, for taking light timing and figuring out place-in-sweep for a given photodiode. void handle_lightcap( SurviveObject * so, LightcapElement * le ); -#define SV_INFO( x... ) { char stbuff[1024]; sprintf( stbuff, x ); ctx->notefunction( ctx, stbuff ); } -#define SV_ERROR( x... ) { char stbuff[1024]; sprintf( stbuff, x ); ctx->faultfunction( ctx, stbuff ); } +#define SV_INFO( ... ) { char stbuff[1024]; sprintf( stbuff, __VA_ARGS__ ); ctx->notefunction( ctx, stbuff ); } +#define SV_ERROR( ... ) { char stbuff[1024]; sprintf( stbuff, __VA_ARGS__ ); ctx->faultfunction( ctx, stbuff ); } #define SV_KILL() exit(0) //XXX This should likely be re-defined. #endif -- cgit v1.3.1 From a409645cd3e2b8f0cc67541a9e4c88bf2cd96a79 Mon Sep 17 00:00:00 2001 From: mwturvey Date: Wed, 15 Mar 2017 15:31:17 -0700 Subject: Building & basic running --- calibrate.c | 1 + include/libsurvive/survive.h | 14 +++++++++++--- redist/symbol_enumerator.c | 2 +- src/survive.c | 3 ++- winbuild/calibrate/calibrate.vcxproj | 21 +++++++++++++++++---- winbuild/libsurvive/libsurvive.vcxproj | 12 ++++++++---- winbuild/libsurvive/libsurvive.vcxproj.filters | 12 ++++++++++++ 7 files changed, 52 insertions(+), 13 deletions(-) (limited to 'include') diff --git a/calibrate.c b/calibrate.c index b6671b5..9633a77 100644 --- a/calibrate.c +++ b/calibrate.c @@ -199,3 +199,4 @@ int main() printf( "Returned\n" ); } + diff --git a/include/libsurvive/survive.h b/include/libsurvive/survive.h index db04a9d..2663c57 100644 --- a/include/libsurvive/survive.h +++ b/include/libsurvive/survive.h @@ -147,10 +147,10 @@ void survive_default_angle_process( SurviveObject * so, int sensor_id, int acode #elif defined(_MSC_VER) #pragma section(".CRT$XCU",read) #define INITIALIZER2_(f,p) \ - static void f(void); \ + __declspec(dllexport) void f(void); \ __declspec(allocate(".CRT$XCU")) void (*f##_)(void) = f; \ __pragma(comment(linker,"/include:" p #f "_")) \ - static void f(void) + void f(void) #ifdef _WIN64 #define INITIALIZER(f) INITIALIZER2_(f,"") #else @@ -163,11 +163,19 @@ void survive_default_angle_process( SurviveObject * so, int sensor_id, int acode #endif // End macros from StackOverflow. +//static void foo(void) +//{ +// int a=0; +//} +// +//INITIALIZER(foo); + void RegisterDriver( const char * name, void * data ); #define REGISTER_LINKTIME( func ) \ - INITIALIZER(LTRegister##func) { RegisterDriver( #func, &func ); } + __declspec(dllexport) void LTRegister##func() { RegisterDriver( #func, &func ); } \ + INITIALIZER(LTRegister##func) diff --git a/redist/symbol_enumerator.c b/redist/symbol_enumerator.c index eddddb9..7d33900 100644 --- a/redist/symbol_enumerator.c +++ b/redist/symbol_enumerator.c @@ -1,7 +1,7 @@ #include #include "symbol_enumerator.h" -#if defined( WIN32 ) || defined( WINDOWS ) || defined( USE_WINDOWS ) +#if defined( WIN32 ) || defined( WINDOWS ) || defined( USE_WINDOWS ) || defined( _WIN32 ) #include diff --git a/src/survive.c b/src/survive.c index 1b5bed1..2982a4f 100755 --- a/src/survive.c +++ b/src/survive.c @@ -14,7 +14,8 @@ static int did_runtime_symnum; int SymnumCheck( const char * path, const char * name, void * location, long size ) { - if( strncmp( name, "REGISTER", 8 ) == 0 ) + printf("%s\n", name); + if( strncmp( name, "LTRegister", 8 ) == 0 ) { typedef void (*sf)(); sf fn = (sf)location; diff --git a/winbuild/calibrate/calibrate.vcxproj b/winbuild/calibrate/calibrate.vcxproj index 53492e9..f08b953 100644 --- a/winbuild/calibrate/calibrate.vcxproj +++ b/winbuild/calibrate/calibrate.vcxproj @@ -88,11 +88,14 @@ Level3 Disabled - HIDAPI;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + RUNTIME_SYMNUM;HIDAPI;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) Console + + + setupapi.lib;dbghelp.lib;%(AdditionalDependencies) @@ -101,11 +104,15 @@ Level3 Disabled - HIDAPI;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + RUNTIME_SYMNUM;HIDAPI;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) Console + + + setupapi.lib;dbghelp.lib;%(AdditionalDependencies) + LTRegisterDriverRegHTCVive;%(ForceSymbolReferences) @@ -116,13 +123,16 @@ MaxSpeed true true - HIDAPI;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + RUNTIME_SYMNUM;HIDAPI;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) Console true true + + + setupapi.lib;dbghelp.lib;%(AdditionalDependencies) @@ -133,13 +143,16 @@ MaxSpeed true true - HIDAPI;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + RUNTIME_SYMNUM;HIDAPI;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) Console true true + + + setupapi.lib;dbghelp.lib;%(AdditionalDependencies) diff --git a/winbuild/libsurvive/libsurvive.vcxproj b/winbuild/libsurvive/libsurvive.vcxproj index 225cab6..f104954 100644 --- a/winbuild/libsurvive/libsurvive.vcxproj +++ b/winbuild/libsurvive/libsurvive.vcxproj @@ -77,7 +77,7 @@ Level3 Disabled - NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;_DEBUG;_LIB;%(PreprocessorDefinitions) + RUNTIME_SYMNUM;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;_DEBUG;_LIB;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -90,7 +90,7 @@ Level3 Disabled - NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + RUNTIME_SYMNUM;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -105,7 +105,7 @@ MaxSpeed true true - NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + RUNTIME_SYMNUM;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -122,7 +122,7 @@ MaxSpeed true true - NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;NDEBUG;_LIB;%(PreprocessorDefinitions) + RUNTIME_SYMNUM;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;NDEBUG;_LIB;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -141,6 +141,7 @@ + @@ -154,6 +155,7 @@ + @@ -164,10 +166,12 @@ + + diff --git a/winbuild/libsurvive/libsurvive.vcxproj.filters b/winbuild/libsurvive/libsurvive.vcxproj.filters index 0a3b6c3..761da6a 100644 --- a/winbuild/libsurvive/libsurvive.vcxproj.filters +++ b/winbuild/libsurvive/libsurvive.vcxproj.filters @@ -75,6 +75,12 @@ Source Files + + Source Files + + + Source Files + @@ -113,5 +119,11 @@ Header Files + + Header Files + + + Header Files + \ No newline at end of file -- cgit v1.3.1 From fa0f4825937ed93163bb2cd165c001d7444d8928 Mon Sep 17 00:00:00 2001 From: mwturvey Date: Thu, 16 Mar 2017 10:31:19 -0700 Subject: Last try at getting linktime registration working under MSVC --- include/libsurvive/survive.h | 4 ++++ src/survive.c | 11 +++++++++++ winbuild/calibrate/calibrate.vcxproj | 11 ++++++----- winbuild/libsurvive/libsurvive.vcxproj | 10 ++++++---- winbuild/libsurvive/libsurvive.vcxproj.filters | 6 ++++++ 5 files changed, 33 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/libsurvive/survive.h b/include/libsurvive/survive.h index 2663c57..deb91c4 100644 --- a/include/libsurvive/survive.h +++ b/include/libsurvive/survive.h @@ -149,6 +149,7 @@ void survive_default_angle_process( SurviveObject * so, int sensor_id, int acode #define INITIALIZER2_(f,p) \ __declspec(dllexport) void f(void); \ __declspec(allocate(".CRT$XCU")) void (*f##_)(void) = f; \ + volatile static void * LTRegistrationPinnerFor##f = &##f; \ __pragma(comment(linker,"/include:" p #f "_")) \ void f(void) #ifdef _WIN64 @@ -176,6 +177,9 @@ void RegisterDriver( const char * name, void * data ); #define REGISTER_LINKTIME( func ) \ __declspec(dllexport) void LTRegister##func() { RegisterDriver( #func, &func ); } \ INITIALIZER(LTRegister##func) + + + //void __attribute__((constructor)) LTRegister##func() { RegisterDriver(#func, &func); } diff --git a/src/survive.c b/src/survive.c index 2982a4f..c2b2940 100755 --- a/src/survive.c +++ b/src/survive.c @@ -47,6 +47,17 @@ SurviveContext * survive_init( int headless ) did_runtime_symnum = 1; } #endif +//#ifdef MANUAL_REGISTRATION +// // note: this manual registration is currently only in use on builds using Visual Studio. +// +//#define MANUAL_DRIVER_REGISTRATION(func) int func( SurviveObject * so, PoserData * pd ); RegisterDriver( #func, &func); +// +// MANUAL_DRIVER_REGISTRATION(PoserCharlesSlow) +// MANUAL_DRIVER_REGISTRATION(PoserDaveOrtho) +// MANUAL_DRIVER_REGISTRATION(PoserDummy) +// MANUAL_DRIVER_REGISTRATION(DriverRegHTCVive) +// +//#endif int r = 0; int i = 0; diff --git a/winbuild/calibrate/calibrate.vcxproj b/winbuild/calibrate/calibrate.vcxproj index f08b953..13fce78 100644 --- a/winbuild/calibrate/calibrate.vcxproj +++ b/winbuild/calibrate/calibrate.vcxproj @@ -88,7 +88,7 @@ Level3 Disabled - RUNTIME_SYMNUM;HIDAPI;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + USE_DOUBLE;RUNTIME_SYMNUMX;HIDAPI;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -104,7 +104,7 @@ Level3 Disabled - RUNTIME_SYMNUM;HIDAPI;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + USE_DOUBLE;RUNTIME_SYMNUMX;HIDAPI;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -112,7 +112,8 @@ setupapi.lib;dbghelp.lib;%(AdditionalDependencies) - LTRegisterDriverRegHTCVive;%(ForceSymbolReferences) + + @@ -123,7 +124,7 @@ MaxSpeed true true - RUNTIME_SYMNUM;HIDAPI;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + USE_DOUBLE;RUNTIME_SYMNUMX;HIDAPI;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -143,7 +144,7 @@ MaxSpeed true true - RUNTIME_SYMNUM;HIDAPI;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + USE_DOUBLE;RUNTIME_SYMNUMX;HIDAPI;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) diff --git a/winbuild/libsurvive/libsurvive.vcxproj b/winbuild/libsurvive/libsurvive.vcxproj index f104954..dc23907 100644 --- a/winbuild/libsurvive/libsurvive.vcxproj +++ b/winbuild/libsurvive/libsurvive.vcxproj @@ -77,7 +77,7 @@ Level3 Disabled - RUNTIME_SYMNUM;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;_DEBUG;_LIB;%(PreprocessorDefinitions) + USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;_DEBUG;_LIB;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -90,7 +90,7 @@ Level3 Disabled - RUNTIME_SYMNUM;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -105,7 +105,7 @@ MaxSpeed true true - RUNTIME_SYMNUM;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -122,7 +122,7 @@ MaxSpeed true true - RUNTIME_SYMNUM;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;NDEBUG;_LIB;%(PreprocessorDefinitions) + USE_DOUBLE;MANUAL_REGISTRATION;RUNTIME_SYMNUMX;NOZLIB;_CRT_SECURE_NO_WARNINGS;HIDAPI;NDEBUG;_LIB;%(PreprocessorDefinitions) ..\..\windows;..\..\include\libsurvive;..\..\redist;%(AdditionalIncludeDirectories) @@ -139,6 +139,7 @@ + @@ -165,6 +166,7 @@ + diff --git a/winbuild/libsurvive/libsurvive.vcxproj.filters b/winbuild/libsurvive/libsurvive.vcxproj.filters index 761da6a..370ce14 100644 --- a/winbuild/libsurvive/libsurvive.vcxproj.filters +++ b/winbuild/libsurvive/libsurvive.vcxproj.filters @@ -81,6 +81,9 @@ Source Files + + Source Files + @@ -125,5 +128,8 @@ Header Files + + Header Files + \ No newline at end of file -- cgit v1.3.1 From 27c9edd889c746e818dc3aa55971d9cd6d8595a7 Mon Sep 17 00:00:00 2001 From: mwturvey Date: Thu, 16 Mar 2017 10:32:18 -0700 Subject: Manual registration on Windows --- include/libsurvive/survive.h | 46 ++++---------------------------------------- src/survive.c | 22 ++++++++++----------- 2 files changed, 15 insertions(+), 53 deletions(-) (limited to 'include') diff --git a/include/libsurvive/survive.h b/include/libsurvive/survive.h index deb91c4..3bc3b33 100644 --- a/include/libsurvive/survive.h +++ b/include/libsurvive/survive.h @@ -136,50 +136,12 @@ void survive_default_angle_process( SurviveObject * so, int sensor_id, int acode ////////////////////// Survive Drivers //////////////////////////// -// The following macros were taken from StackOverflow here: -// http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc -// The author, Joe Lowe explicitly released this code into the public domain as part of his post. -#ifdef __cplusplus -#define INITIALIZER(f) \ - static void f(void); \ - struct f##_t_ { f##_t_(void) { f(); } }; static f##_t_ f##_; \ - static void f(void) -#elif defined(_MSC_VER) -#pragma section(".CRT$XCU",read) -#define INITIALIZER2_(f,p) \ - __declspec(dllexport) void f(void); \ - __declspec(allocate(".CRT$XCU")) void (*f##_)(void) = f; \ - volatile static void * LTRegistrationPinnerFor##f = &##f; \ - __pragma(comment(linker,"/include:" p #f "_")) \ - void f(void) -#ifdef _WIN64 -#define INITIALIZER(f) INITIALIZER2_(f,"") -#else -#define INITIALIZER(f) INITIALIZER2_(f,"_") -#endif +#ifdef _WIN32 +#define REGISTER_LINKTIME( func ) #else -#define INITIALIZER(f) \ - static void f(void) __attribute__((constructor)); \ - static void f(void) -#endif -// End macros from StackOverflow. - -//static void foo(void) -//{ -// int a=0; -//} -// -//INITIALIZER(foo); - - -void RegisterDriver( const char * name, void * data ); - #define REGISTER_LINKTIME( func ) \ - __declspec(dllexport) void LTRegister##func() { RegisterDriver( #func, &func ); } \ - INITIALIZER(LTRegister##func) - - - //void __attribute__((constructor)) LTRegister##func() { RegisterDriver(#func, &func); } + void __attribute__((constructor)) LTRegister##func() { RegisterDriver(#func, &func); } +#endif diff --git a/src/survive.c b/src/survive.c index c2b2940..d7aa691 100755 --- a/src/survive.c +++ b/src/survive.c @@ -47,17 +47,17 @@ SurviveContext * survive_init( int headless ) did_runtime_symnum = 1; } #endif -//#ifdef MANUAL_REGISTRATION -// // note: this manual registration is currently only in use on builds using Visual Studio. -// -//#define MANUAL_DRIVER_REGISTRATION(func) int func( SurviveObject * so, PoserData * pd ); RegisterDriver( #func, &func); -// -// MANUAL_DRIVER_REGISTRATION(PoserCharlesSlow) -// MANUAL_DRIVER_REGISTRATION(PoserDaveOrtho) -// MANUAL_DRIVER_REGISTRATION(PoserDummy) -// MANUAL_DRIVER_REGISTRATION(DriverRegHTCVive) -// -//#endif +#ifdef MANUAL_REGISTRATION + // note: this manual registration is currently only in use on builds using Visual Studio. + +#define MANUAL_DRIVER_REGISTRATION(func) int func( SurviveObject * so, PoserData * pd ); RegisterDriver( #func, &func); + + MANUAL_DRIVER_REGISTRATION(PoserCharlesSlow) + MANUAL_DRIVER_REGISTRATION(PoserDaveOrtho) + MANUAL_DRIVER_REGISTRATION(PoserDummy) + MANUAL_DRIVER_REGISTRATION(DriverRegHTCVive) + +#endif int r = 0; int i = 0; -- cgit v1.3.1 From d9c9ebe6de1e6f255d645dd6e641f2c288238bc2 Mon Sep 17 00:00:00 2001 From: mwturvey Date: Thu, 16 Mar 2017 10:42:56 -0700 Subject: fix linux build --- include/libsurvive/survive.h | 4 +++- src/survive.c | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/libsurvive/survive.h b/include/libsurvive/survive.h index 3bc3b33..eb30252 100644 --- a/include/libsurvive/survive.h +++ b/include/libsurvive/survive.h @@ -136,11 +136,13 @@ void survive_default_angle_process( SurviveObject * so, int sensor_id, int acode ////////////////////// Survive Drivers //////////////////////////// +void RegisterDriver( const char * name, void * data ); + #ifdef _WIN32 #define REGISTER_LINKTIME( func ) #else #define REGISTER_LINKTIME( func ) \ - void __attribute__((constructor)) LTRegister##func() { RegisterDriver(#func, &func); } + void __attribute__((constructor)) REGISTER##func() { RegisterDriver(#func, &func); } #endif diff --git a/src/survive.c b/src/survive.c index d7aa691..9d0ef01 100755 --- a/src/survive.c +++ b/src/survive.c @@ -14,8 +14,7 @@ static int did_runtime_symnum; int SymnumCheck( const char * path, const char * name, void * location, long size ) { - printf("%s\n", name); - if( strncmp( name, "LTRegister", 8 ) == 0 ) + if( strncmp( name, "REGISTER", 8 ) == 0 ) { typedef void (*sf)(); sf fn = (sf)location; -- cgit v1.3.1