--- Documentation/Makefile~	Tue May 12 06:10:00 1998
+++ Documentation/Makefile	Wed May 13 03:51:22 1998
@@ -47,9 +47,9 @@
 	cd $(depth); for i in $(README_TOPFILES); do \
 	ln -f $$i Documentation/$(outdir); done
 
-$(outdir)/%$(DOTTEXT): $(depth)/%$(DOTTEXT)
-	rm -f $@
-	ln $< $@
+#$(outdir)/%$(DOTTEXT): $(depth)/%$(DOTTEXT)
+#	rm -f $@
+#	ln $< $@
 
 README_TOPFILES=NEWS DEDICATION TODO ANNOUNCE-0.1
 README_TXTFILES=$(addprefix $(outdir)/,$(addsuffix $(DOTTEXT), $(README_TOPFILES)))
--- ./config.hh.in~	Sat Apr 18 21:40:29 1998
+++ ./config.hh.in	Wed May 13 17:31:46 1998
@@ -9,3 +9,6 @@
 
 /* define if you have snprintf */
 #define HAVE_SNPRINTF 0
+
+/* define if explicit instantiation is needed */
+#undef NEED_EXPLICIT_INSTANTIATION
--- ./configure.in~	Tue May 12 07:10:01 1998
+++ ./configure.in	Wed May 13 17:30:25 1998
@@ -60,6 +60,18 @@
 
 AC_LANG_CPLUSPLUS
 
+AC_CACHE_CHECK([whether explicit instantiation is needed],
+    lily_cv_need_explicit_instantiation,
+    AC_TRY_LINK([
+template <class T> struct foo { static int baz; };
+template <class T> int foo<T>::baz = 1;
+], [ return foo<int>::baz; ],
+	lily_cv_need_explicit_instantiation=no,
+	lily_cv_need_explicit_instantiation=yes))
+if test x"$lily_cv_need_explicit_instantiation"x = x"yes"x; then
+    AC_DEFINE(NEED_EXPLICIT_INSTANTIATION)
+fi
+
 AC_ARG_ENABLE(printing,
     [  enable-printing         turn on debug printing. Default: off],
     [printing_b=$enableval])
--- ./lib/template.cc~	Tue May 12 07:10:04 1998
+++ ./lib/template.cc	Wed May 13 18:29:06 1998
@@ -6,18 +6,14 @@
   (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+#include "config.hh"
 #include "source-file.hh"
 #include "plist.tcc"
 #include "pcursor.tcc"
 #include "cursor.tcc"
 #include "list.tcc"
 
-// #if!defined(__CYGWIN32__) && __GNUC_MINOR__ < 8 
-// it seems irix (-Dsgi ?)  and sunos (-Dsparc ?)
-
-// see comments in lily/template1.cc mi2mu/template9.cc
-
-#if (defined(__linux__) && (__GNUC_MINOR__ < 8))
+#ifdef NEED_EXPLICIT_INSTANTIATION
 LIST_INSTANTIATE (void *);
 #endif
 
--- ./mi2mu/template9.cc~	Tue May 12 07:10:07 1998
+++ ./mi2mu/template9.cc	Wed May 13 17:53:32 1998
@@ -30,29 +30,3 @@
 POINTERLIST_INSTANTIATE(Mudela_voice);
 POINTERLIST_INSTANTIATE(Mudela_column);
 POINTERLIST_INSTANTIATE(Mudela_score);
-
-#if 0
-/* 
-   what gcc version?
-   they're in lib/template.cc too, and break linux/gcc-2.7.2 
-   are you sure they must be here too?
-
-   for now, i'll just change the switch in lib/template.cc
-   jcn
-
- */
-
-#if defined (__linux__) && && __GNUC_MINOR__ < 8
-
-#include "list.tcc"
-
-// template class List<void *>;
-// template class Cursor<void *>;
-
-// this should work too, and
-LIST_INSTANTIATE (void *);
-
-#endif
-
-#endif
-
--- ./lily/template1.cc~	Tue May 12 07:10:07 1998
+++ ./lily/template1.cc	Wed May 13 17:53:11 1998
@@ -23,29 +23,3 @@
 IPLC_INSTANTIATE(Score_elem);
 IPLC_INSTANTIATE(Spanner);
 IPLC_INSTANTIATE(Idealspacing);
-
-/* these are required at least on IRIX 5 and SunOS 4 */
-
-#if 0
-/* 
-   what gcc version?
-   they're in lib/template.cc too, and break linux/gcc-2.7.2 
-   are you sure they must be here too?
-
-   for now, i'll just change the switch in lib/template.cc
-   jcn
- */
-
-#if defined (__linux__) && && __GNUC_MINOR__ < 8
-
-#include "list.tcc"
-
-// template class List<void *>;
-// template class Cursor<void *>;
-
-// this should work too, and
-LIST_INSTANTIATE (void *);
-
-#endif
-
-#endif
