--- 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