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.
# Sources
DIR_SOURCES := svgtiny.c svgtiny_gradient.c svgtiny_list.c
# Sources
DIR_SOURCES := svgtiny.c svgtiny_gradient.c svgtiny_list.c
-SOURCES := $(SOURCES) $(BUILDDIR)/src_colors.c
-$(BUILDDIR)/src_colors.c: src/colors.gperf
+$(DIR)autogenerated_colors.c: src/colors.gperf
$(VQ)$(ECHO) " 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
include $(NSBUILD)/Makefile.subdir
#include "svgtiny.h"
#include "svgtiny_internal.h"
#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;
%}
struct svgtiny_named_color;
#include "svgtiny.h"
#include "svgtiny_internal.h"
#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
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
void *svgtiny_list_push(struct svgtiny_list *list);
void svgtiny_list_free(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);
-