From 1ddd1966da007ba6d1aa6d858473492932cc78ca Mon Sep 17 00:00:00 2001 From: cnlohr Date: Sun, 15 Apr 2018 21:13:00 -0400 Subject: Make things more TCC 0.27 friendly. --- Makefile | 14 ++++++++++---- redist/CNFGWinDriver.c | 1 - redist/linmath.h | 6 ++---- winbuild/build_tcc.bat | 17 ++++++----------- winbuild/getdelim.c | 5 +++++ 5 files changed, 23 insertions(+), 20 deletions(-) diff --git a/Makefile b/Makefile index d7848f7..e3c633d 100644 --- a/Makefile +++ b/Makefile @@ -42,6 +42,7 @@ else LIBSURVIVE_C:=$(POSERS) $(REDISTS) $(LIBSURVIVE_CORE) $(SBA) $(MINIMAL_NEEDED) $(AUX_NEEDED) endif + LIBSURVIVE_O:=$(LIBSURVIVE_C:%.c=$(OBJDIR)/%.o) LIBSURVIVE_D:=$(LIBSURVIVE_C:%.c=$(OBJDIR)/%.d) -include $(LIBSURVIVE_D) @@ -73,6 +74,7 @@ ifeq ($(UNAME), Darwin) REDISTS:=$(REDISTS) redist/hid-osx.c endif + ifdef LINUX_USE_HIDAPI CFLAGS:=$(CFLAGS) -DHIDAPI REDISTS:=$(REDISTS) redist/hid-linux.o @@ -153,15 +155,19 @@ clean : .run_tests: .test_redist + +#To do this, you probably want to `make tccbatch MINIMAL=1 WINDOWS=1` + tccbatch : echo "@echo off" > winbuild/build_tcc.bat echo "set TCC=C:\\\\tcc\\\\tcc.exe" >> winbuild/build_tcc.bat echo "echo USing %TCC%" >> winbuild/build_tcc.bat - echo "set SOURCES=$(LIBSURVIVE_C)" >> winbuild/build_tcc.bat - echo "set EXEC=..\\\\calibrate.c redist\\\\CNFGWinDriver.c redist\\\\os_generic.c redist\\\\CNFGFunctions.c" >> winbuild/build_tcc.bat - echo "set CFLAGS=$(CFLAGS)" >> winbuild/build_tcc.bat + echo "set EXEC=calibrate.c redist\\\\CNFGWinDriver.c redist\\\\CNFGFunctions.c" >> winbuild/build_tcc.bat + echo "set SOURCES=$(subst "/","\\",$(LIBSURVIVE_C))" >> winbuild/build_tcc.bat + echo "set CFLAGS=-DTCC $(CFLAGS)" >> winbuild/build_tcc.bat + echo "set LDFLAGS=-lkernel32 -lgdi32 -luser32" >> winbuild/build_tcc.bat echo "@echo on" >> winbuild/build_tcc.bat - echo "%TCC% -v %CFLAGS% %SOURCES% %REDIST% %EXEC% %LDFLAGS% tcc_stubs.c %RD%hid-windows.c -o calibrate.exe" >> winbuild/build_tcc.bat + echo "%TCC% -v %CFLAGS% %SOURCES% %REDIST% %EXEC% %LDFLAGS% winbuild/tcc_stubs.c -o calibrate.exe" >> winbuild/build_tcc.bat help : @echo "Usage: make [flags]" diff --git a/redist/CNFGWinDriver.c b/redist/CNFGWinDriver.c index 4d34e19..3bbf509 100644 --- a/redist/CNFGWinDriver.c +++ b/redist/CNFGWinDriver.c @@ -240,7 +240,6 @@ void CNFGHandleInput() break; } } - return 0; } #ifndef CNFGOGL diff --git a/redist/linmath.h b/redist/linmath.h index e46bbd4..78cac5c 100644 --- a/redist/linmath.h +++ b/redist/linmath.h @@ -7,13 +7,11 @@ extern "C" { #endif -#ifndef LINMATH_EXPORT -#ifdef _WIN32 -#define LINMATH_EXPORT extern __declspec(dllexport) +#if defined( _WIN32 ) && !defined(TCC) +#define LINMATH_EXPORT __declspec(dllexport) #else #define LINMATH_EXPORT __attribute__((visibility("default"))) #endif -#endif // Yes, I know it's kind of arbitrary. #define DEFAULT_EPSILON 0.001 diff --git a/winbuild/build_tcc.bat b/winbuild/build_tcc.bat index 5be1361..e9cad66 100644 --- a/winbuild/build_tcc.bat +++ b/winbuild/build_tcc.bat @@ -1,14 +1,9 @@ @echo off - set TCC=C:\tcc\tcc.exe -echo Be sure to have TinyCC installed to %TCC% (or change the TCC parameter.) - -set SR=..\src\ -set RD=..\redist\ -set SOURCES=%SR%ootx_decoder.c %SR%poser_charlesslow.c %SR%poser_daveortho.c %SR%poser_dummy.c %SR%survive.c %SR%survive_cal.c %SR%survive_config.c %SR%survive_data.c %SR%survive_driverman.c %SR%survive_process.c %SR%survive_vive.c -set REDIST=%RD%crc32.c %RD%linmath.c %RD%puff.c %RD%jsmn.c %RD%json_helpers.c %RD%symbol_enumerator.c -set EXEC=..\calibrate.c %RD%CNFGWinDriver.c %RD%os_generic.c %RD%CNFGFunctions.c -set CFLAGS=-DNOZLIB -DTCC -DWINDOWS -DHIDAPI -DWIN32 -DRUNTIME_SYMNUM -O0 -g -rdynamic -I..\redist -I..\include\libsurvive -I..\src -I. -set LDFLAGS=-lkernel32 -lgdi32 -luser32 -lsetupapi -ldbghelp +echo USing %TCC% +set EXEC=calibrate.c redist\CNFGWinDriver.c redist\CNFGFunctions.c +set SOURCES=redist/json_helpers.c redist/linmath.c redist/jsmn.c redist/puff.c redist/crc32.c redist/hid-windows.c winbuild/getdelim.c src/survive.c src/survive_process.c src/ootx_decoder.c src/survive_driverman.c src/survive_default_devices.c src/survive_playback.c src/survive_config.c src/survive_cal.c src/poser.c src/survive_sensor_activations.c src/survive_disambiguator.c src/survive_imu.c src/survive_usb.c src/survive_charlesbiguator.c src/survive_vive.c src/survive_reproject.c +set CFLAGS=-DTCC -Iinclude/libsurvive -g -O3 -Iredist -DUSE_DOUBLE -std=gnu99 -MD -DNOZLIB -DWINDOWS -DWIN32 -DHIDAPI +set LDFLAGS=-lkernel32 -lgdi32 -luser32 @echo on -%TCC% -v %CFLAGS% %SOURCES% %REDIST% %EXEC% %LDFLAGS% tcc_stubs.c %RD%hid-windows.c -o calibrate.exe +%TCC% -v %CFLAGS% %SOURCES% %REDIST% %EXEC% %LDFLAGS% winbuild/tcc_stubs.c -o calibrate.exe diff --git a/winbuild/getdelim.c b/winbuild/getdelim.c index 0447ba0..a2d85d4 100644 --- a/winbuild/getdelim.c +++ b/winbuild/getdelim.c @@ -41,6 +41,11 @@ #define restrict #endif +#ifdef TCC +#define EOVERFLOW 75 +#define SSIZE_MAX (1<<31) +#endif + #ifdef _MSC_VER typedef long ssize_t; #define SSIZE_MAX LONG_MAX -- cgit v1.2.3