[glib] gio: Convert data-to-c.c to perl



commit 552b815365649521379c60b672f608a40a8a5f44
Author: Kalev Lember <kalevlember gmail com>
Date:   Wed Feb 1 18:44:15 2012 +0200

    gio: Convert data-to-c.c to perl
    
    Helper scripts in C can be problematic for cross compiling: the compiler
    produces executables for the target platform, which the host is usually
    unable to run.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=669224

 gio/Makefile.am  |   10 +++-------
 gio/data-to-c.c  |   51 ---------------------------------------------------
 gio/data-to-c.pl |   39 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 42 insertions(+), 58 deletions(-)
---
diff --git a/gio/Makefile.am b/gio/Makefile.am
index d9227b9..67eeae6 100644
--- a/gio/Makefile.am
+++ b/gio/Makefile.am
@@ -8,11 +8,6 @@ if OS_UNIX
 SUBDIRS += xdgmime
 endif
 
-noinst_PROGRAMS = data-to-c
-
-data_to_c_SOURCES = data-to-c.c
-data_to_c_LDADD = $(top_builddir)/glib/libglib-2.0.la
-
 if OS_WIN32_AND_DLL_COMPILATION
 if MS_LIB_AVAILABLE
 noinst_DATA = gio-2.0.lib
@@ -612,6 +607,7 @@ BUILT_SOURCES = 		\
 	$(NULL)
 
 EXTRA_DIST += 			\
+	data-to-c.pl		\
 	gio.symbols		\
 	gioenumtypes.h.template	\
 	gioenumtypes.c.template	\
@@ -666,8 +662,8 @@ gio_querymodules_LDADD	 = \
 	libgio-2.0.la					\
 	$(NULL)
 
-gconstructor_as_data.h: $(top_srcdir)/glib/gconstructor.h data-to-c$(EXEEXT)
-	$(AM_V_GEN) $(builddir)/data-to-c $(top_srcdir)/glib/gconstructor.h gconstructor_code > $@
+gconstructor_as_data.h: $(top_srcdir)/glib/gconstructor.h data-to-c.pl
+	$(AM_V_GEN) $(srcdir)/data-to-c.pl $(top_srcdir)/glib/gconstructor.h gconstructor_code > $  tmp && mv $  tmp $@
 
 glib_compile_schemas_LDADD = $(top_builddir)/glib/libglib-2.0.la
 glib_compile_schemas_SOURCES = \
diff --git a/gio/data-to-c.pl b/gio/data-to-c.pl
new file mode 100755
index 0000000..20ba2fb
--- /dev/null
+++ b/gio/data-to-c.pl
@@ -0,0 +1,39 @@
+#!/usr/bin/perl
+
+# Copyright  2011 Red Hat, Inc
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the licence, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+#
+# Author: Kalev Lember <kalevlember gmail com>
+
+
+if (@ARGV != 2) {
+    die "Usage: data-to-c.pl <filename> <variable>\n";
+}
+
+$file = $ARGV[0];
+
+open (FILE, $file) || die "Cannot open $file: $!\n";
+
+printf ("const char %s[] = \"", $ARGV[1]);
+while (my $line = <FILE>) {
+    foreach my $c (split //, $line) {
+        printf ("\\x%02x", ord ($c));
+    }
+}
+print "\";\n";
+
+close (FILE);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]