--- rep-gtk-0.15/Makefile.in 2000-07-23 23:53:55.000000000 +0100
+++ rep-gtk-0.15-cygwin/Makefile.in 2002-06-28 23:08:08.000000000 +0100
@@ -72,30 +72,39 @@ all : build_dirs $(OUT)
gtk/types.la : $(SGTK_OBJS)
$(rep_DL_LD) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(REP_SGTK_LIBS)
+ cd gtk && PREFIX=$(prefix) DLDIR=":" DLPREFIX=":" LIBPREFIX=":" sh ../mkdll.sh $(notdir $@) $(LDFLAGS) $$(rep-config --libs) $(REP_SGTK_LIBS)
gtk/gtk.la : $(OBJS)
$(rep_DL_LD) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(REP_GTK_LIBS)
+ cd gtk && PREFIX=$(prefix) DLDIR=":" DLPREFIX=":" LIBPREFIX=":" sh ../mkdll.sh $(notdir $@) .libs/types.dll.a $(LDFLAGS) $$(rep-config --libs) $(REP_GTK_LIBS)
gtk/libglade.la : $(LIBGLADE_OBJS)
$(rep_DL_LD) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(REP_LIBGLADE_LIBS)
+ cd gtk && PREFIX=$(prefix) DLDIR=":" DLPREFIX="lib" LIBPREFIX="lib" sh ../mkdll.sh $(notdir $@) .libs/gtk.dll.a .libs/types.dll.a $(LDFLAGS) $$(rep-config --libs) $(REP_LIBGLADE_LIBS)
gnome/libglade.la : $(GNOME_LIBGLADE_OBJS)
$(rep_DL_LD) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(REP_GNOME_LIBGLADE_LIBS)
+ cd gnome && PREFIX=$(prefix) DLDIR=":" DLPREFIX="lib" LIBPREFIX="lib" sh ../mkdll.sh $(notdir $@) ../gtk/.libs/gtk.dll.a ../gtk/.libs/types.dll.a $(LDFLAGS) $$(rep-config --libs) $(REP_GNOME_LIBGLADE_LIBS)
gnome/lib.la : $(GNOMELIB_OBJS)
$(rep_DL_LD) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(REP_GNOMELIB_LIBS)
+ cd gnome && PREFIX=$(prefix) DLDIR=":" DLPREFIX=":" LIBPREFIX=":" sh ../mkdll.sh $(notdir $@) ../gtk/.libs/types.dll.a $(LDFLAGS) $$(rep-config --libs) $(REP_GNOMELIB_LIBS)
gnome/ui.la : $(GNOMEUI_OBJS)
$(rep_DL_LD) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(REP_GNOMEUI_LIBS)
+ cd gnome && PREFIX=$(prefix) DLDIR=":" DLPREFIX=":" LIBPREFIX=":" sh ../mkdll.sh $(notdir $@) ../gtk/.libs/gtk.dll.a ../gtk/.libs/types.dll.a $(LDFLAGS) $$(rep-config --libs) $(REP_GNOMEUI_LIBS)
gnome/canvas.la : $(GNOME_CANVAS_OBJS)
$(rep_DL_LD) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(REP_GNOMEUI_LIBS)
+ cd gnome && PREFIX=$(prefix) DLDIR=":" DLPREFIX=":" LIBPREFIX=":" sh ../mkdll.sh $(notdir $@) ../gtk/.libs/gtk.dll.a ../gtk/.libs/types.dll.a $(LDFLAGS) $$(rep-config --libs) $(REP_GNOMEUI_LIBS)
gtk/gdk-pixbuf.la : $(GDK_PIXBUF_OBJS)
$(rep_DL_LD) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(REP_GDK_PIXBUF_LIBS)
+ cd gtk && PREFIX=$(prefix) DLDIR=":" DLPREFIX=":" LIBPREFIX=":" sh ../mkdll.sh $(notdir $@) .libs/gtk.dll.a .libs/types.dll.a $(LDFLAGS) $$(rep-config --libs) $(REP_GDK_PIXBUF_LIBS)
gnome/canvas-pixbuf.la : $(GNOME_CANVAS_PIXBUF_OBJS)
$(rep_DL_LD) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(REP_GNOME_CANVAS_PIXBUF_LIBS)
+ cd gnome && PREFIX=$(prefix) DLDIR=":" DLPREFIX=":" LIBPREFIX=":" sh ../mkdll.sh $(notdir $@) ../gtk/.libs/gtk.dll.a ../gtk/.libs/types.dll.a $(LDFLAGS) $$(rep-config --libs) $(REP_GNOME_CANVAS_PIXBUF_LIBS)
%-glue.c : %.defs build-gtk.jlc
rep build-gtk.jlc -f build-gtk-batch $< $@
@@ -109,7 +118,10 @@ libglade-gnome-support.lo : libglade-sup
install : all installdirs $(INSTALL_GLUE)
set -e; for f in $(OUT); do \
- $(rep_DL_INSTALL) $$f $(DESTDIR)$(installdir)/gui/`dirname $$f`; \
+ here=`pwd`; \
+ cd `dirname $$f`; \
+ $(rep_DL_INSTALL) `basename $$f` $(DESTDIR)$(installdir)/gui/`dirname $$f`; \
+ cd $$here; \
done
set -e; for f in $(OUT_DESTS); do \
case $$f in \
@@ -131,7 +143,9 @@ installdirs : $(top_srcdir)/mkinstalldir
$(DESTDIR)$(installdir)/gui/gnome
uninstall :
- $(rep_DL_UNINSTALL) $(DESTDIR)$(installdir)/$(OUT)
+ for f in $(OUT_DESTS); do \
+ $(rep_DL_UNINSTALL) $(DESTDIR)$(installdir)/$$f; \
+ done
clean :
rm -f *-glue.c *~ core *.jlc *.o *.lo *.la
diff -Naurp rep-gtk-0.15/examples/test-libglade rep-gtk-0.15-cygwin/examples/test-libglade
--- rep-gtk-0.15/examples/test-libglade 2000-04-16 14:48:28.000000000 +0100
+++ rep-gtk-0.15-cygwin/examples/test-libglade 2002-06-22 21:46:20.000000000 +0100
@@ -8,7 +8,7 @@ exec rep "$0" "$@"
(require 'gnomeui)
(gnome-init "test-libglade" "0.0"))
(require 'libglade))
-
+(require 'gtk)
(let
((xml (or (glade-xml-new (car command-line-args))
(error "something bad happened while creating the interface"))))
diff -Naurp rep-gtk-0.15/mkdll.sh rep-gtk-0.15-cygwin/mkdll.sh
--- rep-gtk-0.15/mkdll.sh 1970-01-01 00:00:00.000000000 +0000
+++ rep-gtk-0.15-cygwin/mkdll.sh 2002-06-21 17:34:51.000000000 +0100
@@ -0,0 +1,98 @@
+#!/bin/sh
+
+# script to generate dll from libtool-generated static archive (.la file)
+# invoke with:
+# mkdll.sh
+# eg:
+# mkdll.sh libtest.la -L/usr/local/lib -llocal
+
+# defaults to using gcc for libraries written in C.
+# set the CC env var to use a different compiler driver: eg
+# export CC=g++
+# for C++ libraries
+
+# defaults to using /usr/local as the installation PREFIX
+# override this by setting the PREFIX env var: eg
+# export PREFIX=/opt/gnome
+
+archive=$1
+test -f $archive || { echo $(basename $0): $archive not found; exit 1; }
+
+module=$(echo $(basename $archive) | sed -e 's,^lib,,' -e 's,.la$,,')
+
+shift
+dependency_libs="$@"
+
+test -n "$CC" || CC=gcc
+prefix=${PREFIX:=/usr/local}
+case "$DLDIR" in
+ :) dldir=
+ ;;
+ "") dldir=../bin/
+ ;;
+ *) dldir=$DLDIR/
+ ;;
+esac
+case "$DLPREFIX" in
+ :) dlprefix=
+ ;;
+ "") dlprefix=cyg
+ ;;
+ *) dlprefix=$DLPREFIX
+ ;;
+esac
+case "$LIBPREFIX" in
+ :) libprefix=
+ ;;
+ "") libprefix=lib
+ ;;
+ *) libprefix=$LIBPREFIX
+ ;;
+esac
+
+# get the static library name
+# first look in the .la archive
+old_lib=$(sed -ne '/^old_library=/ s,^old_library='\''\(.*\)'\''.*$,\1,p' .libs/$archive)
+# if not there, use default name
+test -n "$old_lib" || old_lib=${libprefix}${module}.a
+
+
+
+# update the archive with the dll and import lib name; fix install dir; remove relink command
+# (${prefix}/lib is hard-coded here - edit it if necessary)
+libdir=${prefix}/lib
+if sed -e 's,^dlname='\'\'',dlname='\'${dlprefix}${module}.dll\'',' \
+ -e 's,^library_names='\'\'',library_names='\'${libprefix}${module}.dll.a\'',' \
+ -e 's,^libdir='\'\'',libdir='\'$libdir\'',' \
+ -e 's,^relink_command=.*$,,' \
+ .libs/$archive > .libs/${archive}.tmp
+then cat .libs/${archive}.tmp > .libs/${archive}
+fi
+rm -f .libs/${archive}.tmp
+
+# update the install archive if it exists
+if [ -f .libs/${archive}i ] ; then
+ if sed -e 's,^dlname='\'\'',dlname='\'${dldir}${dlprefix}${module}.dll\'',' \
+ -e 's,^library_names='\'\'',library_names='\'${libprefix}${module}.dll.a\'',' \
+ -e 's,^relink_command=.*$,,' \
+ .libs/${archive}i > .libs/${archive}i.tmp
+ then cat .libs/${archive}i.tmp > .libs/${archive}i
+ fi
+ rm -f .libs/${archive}i.tmp
+fi
+
+
+# report the link command to stdout
+eval echo $CC -shared -o .libs/${dlprefix}${module}.dll -Wl,--out-implib=.libs/${libprefix}${module}.dll.a \
+-Wl,--export-all-symbols -Wl,--whole-archive .libs/$old_lib -Wl,--no-whole-archive ${dependency_libs}
+
+# do the link command - if it fails, remove archive so make knows to re-build it
+eval $CC -shared -o .libs/${dlprefix}${module}.dll -Wl,--out-implib=.libs/${libprefix}${module}.dll.a -Wl,--export-all-symbols \
+-Wl,--whole-archive .libs/$old_lib -Wl,--no-whole-archive ${dependency_libs} || { rm -f $archive; false; }
+ret=$?
+
+# copy the .dll.a file to .dll.aT to keep libtool happy
+rm -f .libs/${libprefix}${module}.dll.aT
+ln .libs/${libprefix}${module}.dll.a .libs/${libprefix}${module}.dll.aT
+
+exit $ret