Introduction
Introduction Statistics Contact Development Disclaimer Help
Generate USING_BINARY{32,64} - blind - suckless command-line video editing util…
git clone git://git.suckless.org/blind
Log
Files
Refs
README
LICENSE
---
commit 48ca891887e8260be43ae641b35c4129fd4d2093
parent f3cde9060c57320c9ed7a9b4bcb494bd411fb1f4
Author: Mattias Andrée <[email protected]>
Date: Sat, 15 Jul 2017 03:19:46 +0200
Generate USING_BINARY{32,64}
Signed-off-by: Mattias Andrée <[email protected]>
Diffstat:
M .gitignore | 2 ++
M Makefile | 12 +++++++++---
M TODO | 1 -
M src/blind-from-portable.c | 3 ---
M src/blind-to-portable.c | 3 ---
M src/common.h | 1 +
A src/generate-macros.c | 22 ++++++++++++++++++++++
7 files changed, 34 insertions(+), 10 deletions(-)
---
diff --git a/.gitignore b/.gitignore
@@ -7,6 +7,8 @@
*.swp
*.o
*.out
+/platform.h
+/generate-macros
/blind-*
!/blind-rotate-90
!/blind-rotate-180
diff --git a/Makefile b/Makefile
@@ -155,9 +155,15 @@ all: $(BIN)
%: %.o $(COMMON_OBJ)
$(CC) -o $@ $^ $(LDFLAGS)
-%.o: src/%.c src/*.h src/*/*.h
+%.o: src/%.c src/*.h src/*/*.h platform.h
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+generate-macros: src/generate-macros.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $< $(LDFLAGS)
+
+platform.h: generate-macros
+ ./generate-macros > platform.h
+
install: all
mkdir -p -- "$(DESTDIR)$(PREFIX)/bin"
cp -f -- $(BIN) "$(DESTDIR)$(PREFIX)/bin"
@@ -196,9 +202,9 @@ dist:
rm -rf "blind-$(VERSION)"
clean:
- -rm -f $(BIN) *.o blind-$(VERSION).tar.gz
+ -rm -f $(BIN) *.o blind-$(VERSION).tar.gz platform.h generate-macros
-rm -rf "blind-$(VERSION)"
.PHONY: all install uninstall dist clean
-.PRECIOUS: $(COMMON_OBJ)
+.PRECIOUS: $(COMMON_OBJ) platform.h
diff --git a/TODO b/TODO
@@ -56,7 +56,6 @@ blind-arithm: add support for multiple streams
Add [-j jobs] to blind-from-video and blind-to-video.
-Generate a header file with the appropriate values for USING_BINARY32, USING_B…
long double is slightly faster than long.
long double (xyza q) could be added as another format.
unsigned char (xyza 8) could be added as another format, it's probably good fo…
diff --git a/src/blind-from-portable.c b/src/blind-from-portable.c
@@ -3,9 +3,6 @@
USAGE("[-s]")
-#define USING_BINARY32 0
-#define USING_BINARY64 0
-
#define CONV(ITYPE, SITYPE, OTYPE, EXPONENT, HA2EXPONENT, FRACTION)\
do {\
static int cache_i = 0;\
diff --git a/src/blind-to-portable.c b/src/blind-to-portable.c
@@ -9,9 +9,6 @@
USAGE("[-s]")
-#define USING_BINARY32 0
-#define USING_BINARY64 0
-
#define CONV(ITYPE, OTYPE, SOTYPE, EXPONENT, HA2EXPONENT, FRACTION)\
do {\
static int cache_i = 0;\
diff --git a/src/common.h b/src/common.h
@@ -17,6 +17,7 @@
# pragma GCC diagnostic ignored "-Wfloat-conversion"
#endif
+#include "../platform.h"
#include "stream.h"
#include "util.h"
#include "video-math.h"
diff --git a/src/generate-macros.c b/src/generate-macros.c
@@ -0,0 +1,22 @@
+#include <stdint.h>
+#include <stdio.h>
+
+int
+main(void)
+{
+ if (sizeof(float) == 4) {
+ unsigned long int a, b;
+ a = (unsigned long int)*(uint32_t *)&(float){ (float)(1. / 12…
+ b = (unsigned long int)*(uint32_t *)&(float){ -(float)(1. / 12…
+ printf("#define USING_BINARY32 %i\n",
+ a == 0x3daaaaabUL && b == 0xbdaaaaabUL);
+ }
+ if (sizeof(double) == 8) {
+ unsigned long long int a, b;
+ a = (unsigned long long int)*(uint64_t *)&(double){ 1. / 12. …
+ b = (unsigned long long int)*(uint64_t *)&(double){ -1. / 12. …
+ printf("#define USING_BINARY64 %i\n",
+ a == 0x3fb5555555555555ULL && b == 0xbfb5555555555555UL…
+ }
+ return 0;
+}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.