12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- From 4390f1c84e8fee51fc22468821e6fc158e783053 Mon Sep 17 00:00:00 2001
- From: Michael Drake <michael.drake@codethink.co.uk>
- Date: Thu, 20 Apr 2017 10:51:07 +0100
- Subject: Build: Include gperf-generated code directly.
- Previously we built the generated code separatly and then linked to
- it. However, this caused problems with certain compilers and gperf
- versions. This change includes the generated code directly in
- svgtiny.c instead, which is the only place its used.
- [Retrieved from:
- https://source.netsurf-browser.org/libsvgtiny.git/commit/src?id=4390f1c84e8fee51fc22468821e6fc158e783053]
- Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
- ---
- src/Makefile | 13 +++++++------
- src/colors.gperf | 8 --------
- src/svgtiny.c | 3 +++
- src/svgtiny_internal.h | 5 -----
- 4 files changed, 10 insertions(+), 19 deletions(-)
- (limited to 'src')
- diff --git a/src/Makefile b/src/Makefile
- index a979720..fb8a72f 100644
- --- a/src/Makefile
- +++ b/src/Makefile
- @@ -1,13 +1,14 @@
- # Sources
- DIR_SOURCES := svgtiny.c svgtiny_gradient.c svgtiny_list.c
-
- -SOURCES := $(SOURCES) $(BUILDDIR)/src_colors.c
- +SOURCES := $(SOURCES)
-
- -$(BUILDDIR)/src_colors.c: src/colors.gperf
- +$(DIR)autogenerated_colors.c: src/colors.gperf
- $(VQ)$(ECHO) " GPERF: $<"
- - $(Q)gperf --output-file=$@.tmp $<
- -# Hack for GCC 4.2 compatibility (gperf 3.0.4 solves this properly)
- - $(Q)$(SED) -e 's/#ifdef __GNUC_STDC_INLINE__/#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__/' $@.tmp >$@
- - $(Q)$(RM) $@.tmp
- + $(Q)gperf --output-file=$@ $<
- +
- +PRE_TARGETS := $(DIR)autogenerated_colors.c
- +
- +CLEAN_ITEMS := $(DIR)autogenerated_colors.c
-
- include $(NSBUILD)/Makefile.subdir
- diff --git a/src/colors.gperf b/src/colors.gperf
- index 96d5b9e..a836787 100644
- --- a/src/colors.gperf
- +++ b/src/colors.gperf
- @@ -17,14 +17,6 @@
- #include "svgtiny.h"
- #include "svgtiny_internal.h"
-
- -/* This unusual define shennanigan is to try and prevent the gperf
- - * generated function from being inlined. This is pointless given
- - * it (a) is in a separate .c file and (b) has external linkage.
- - */
- -#ifdef __inline
- -#undef __inline
- -#define __inline
- -#endif
- %}
-
- struct svgtiny_named_color;
- diff --git a/src/svgtiny.c b/src/svgtiny.c
- index 4661a58..bbefb88 100644
- --- a/src/svgtiny.c
- +++ b/src/svgtiny.c
- @@ -20,6 +20,9 @@
- #include "svgtiny.h"
- #include "svgtiny_internal.h"
-
- +/* Source file generated by `gperf`. */
- +#include "autogenerated_colors.c"
- +
- #ifndef M_PI
- #define M_PI 3.14159265358979323846
- #endif
- diff --git a/src/svgtiny_internal.h b/src/svgtiny_internal.h
- index 158d230..6bf5d64 100644
- --- a/src/svgtiny_internal.h
- +++ b/src/svgtiny_internal.h
- @@ -102,9 +102,4 @@ void *svgtiny_list_get(struct svgtiny_list *list,
- void *svgtiny_list_push(struct svgtiny_list *list);
- void svgtiny_list_free(struct svgtiny_list *list);
-
- -/* colors.gperf */
- -const struct svgtiny_named_color *
- - svgtiny_color_lookup(register const char *str,
- - register unsigned int len);
- -
- #endif
- --
- cgit v1.2.1
|