help-smalltalk
[Top][All Lists]
Advanced

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

[Help-smalltalk] Gtk building and order


From: Samuel Tardieu
Subject: [Help-smalltalk] Gtk building and order
Date: Tue, 23 Mar 2004 17:57:22 +0100
User-agent: T-gnus/6.16.2 (based on Gnus v5.10.2) (revision 02) SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.6 Emacs/21.3 (i386--freebsd) MULE/5.0 (SAKAKI)

Here is a hack I use to have the Makefile pick up the right directory
in which to find the header files. Applies to GNU Smalltalk 2.1d.

  Sam

--- orig/gtk/Makefile.am
+++ mod/gtk/Makefile.am
@@ -150,17 +150,21 @@
        xargs ./cpp < .order | ./sigtable > sigtable.c
 
 # Cmdline to strip -I from the output of pkg-config --cflags-only-I
-EXTRACT_PATH = $(AWK) '{ print substr ($$1, 3) }'
+FIND_PATH = $(SHELL) $(srcdir)/find_dir.sh $(AWK) $(PKG_CONFIG)
+GLIB_DIR := $(shell $(FIND_PATH) glib-2.0 glib.h)
+ATK_DIR := $(shell $(FIND_PATH) atk atk/atk.h)
+PANGO_DIR := $(shell $(FIND_PATH) pango pango/pango.h)
+GTK_DIR := $(shell $(FIND_PATH) gtk+-2.0 gtk/gtk.h)
 
 .order: order Makefile
        builddir=`pwd`; ( \
-         cd `$(PKG_CONFIG) glib-2.0 --cflags-only-I | $(EXTRACT_PATH)` && \
+         cd $(GLIB_DIR) && \
          $$builddir/order -v path="`pwd`" $(GLIB_FILES) && \
-         cd `$(PKG_CONFIG) atk --cflags-only-I | $(EXTRACT_PATH)` && \
+         cd $(ATK_DIR) && \
          $$builddir/order -v path="`pwd`" $(ATK_FILES) && \
-         cd `$(PKG_CONFIG) pango --cflags-only-I | $(EXTRACT_PATH)` && \
+         cd $(PANGO_DIR) && \
          $$builddir/order -v path="`pwd`" $(PANGO_FILES) && \
-         cd `$(PKG_CONFIG) gtk+-2.0 --cflags-only-I | $(EXTRACT_PATH)` && \
+         cd $(GTK_DIR) && \
          $$builddir/order -v path="`pwd`" $(GTK_FILES) && \
          cd $$builddir && \
          $$builddir/order -v path="`pwd`" $(LOCAL_FILES)) > $$builddir/.order


--- /dev/null
+++ mod/gtk/find_dir.sh
@@ -0,0 +1,18 @@
+#! /bin/sh
+#
+# Usage: find_dir awk_path pkg-config_path package filename
+#
+# Return the first dir which contains the given filename
+#
+# Example:
+# find_dir /usr/local/bin/gawk gtk+-2.0 gdk/gdk.h
+
+for i in `$2 $3 --cflags-only-I`; do
+  p=`echo $i | $1 '{print substr(\$1,3)}'`
+  if test -f $p/$4; then
+    echo $p
+    exit 0
+  fi
+done
+
+exit 1





reply via email to

[Prev in Thread] Current Thread [Next in Thread]