Author: Thibaut Paumard <paumard@users.sourceforge.net>
Date: 2012/04/01
Description: add autoload files for each plug-in
 PKG_I_START is also filled in each Makefile, although it is useless for the
 Debian package.
Forwarded: yes

--- /dev/null
+++ b/yeti_fftw/yeti_fftw_start.i
@@ -0,0 +1,6 @@
+autoload, "yeti_fftw.i";
+// interpreted
+autoload, "yeti_fftw.i", cfftw, fftw_indgen, fftw_dist, fftw_smooth;
+autoload, "yeti_fftw.i", fftw_convolve;
+// compiled
+autoload, "yeti_fftw.i", fftw_plan, fftw;
--- /dev/null
+++ b/yeti_gsl/yeti_gsl_start.i
@@ -0,0 +1,121 @@
+autoload, "yeti_gsl.i";
+autoload, "yeti_gsl.i", gsl_sf_airy_Ai;
+autoload, "yeti_gsl.i", gsl_sf_airy_Bi;
+autoload, "yeti_gsl.i", gsl_sf_airy_Ai_scaled;
+autoload, "yeti_gsl.i", gsl_sf_airy_Bi_scaled;
+autoload, "yeti_gsl.i", gsl_sf_airy_Ai_deriv;
+autoload, "yeti_gsl.i", gsl_sf_airy_Bi_deriv;
+autoload, "yeti_gsl.i", gsl_sf_airy_Ai_deriv_scaled;
+autoload, "yeti_gsl.i", gsl_sf_airy_Bi_deriv_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_J0;
+autoload, "yeti_gsl.i", gsl_sf_bessel_J1;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Jn;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Jnu;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Y0;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Y1;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Yn;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Ynu;
+autoload, "yeti_gsl.i", gsl_sf_bessel_I0;
+autoload, "yeti_gsl.i", gsl_sf_bessel_I1;
+autoload, "yeti_gsl.i", gsl_sf_bessel_In;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Inu;
+autoload, "yeti_gsl.i", gsl_sf_bessel_I0_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_I1_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_In_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Inu_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_K0;
+autoload, "yeti_gsl.i", gsl_sf_bessel_K1;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Kn;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Knu;
+autoload, "yeti_gsl.i", gsl_sf_bessel_lnKnu;
+autoload, "yeti_gsl.i", gsl_sf_bessel_K0_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_K1_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Kn_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_Knu_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_j0;
+autoload, "yeti_gsl.i", gsl_sf_bessel_j1;
+autoload, "yeti_gsl.i", gsl_sf_bessel_j2;
+autoload, "yeti_gsl.i", gsl_sf_bessel_jl;
+autoload, "yeti_gsl.i", gsl_sf_bessel_y0;
+autoload, "yeti_gsl.i", gsl_sf_bessel_y1;
+autoload, "yeti_gsl.i", gsl_sf_bessel_y2;
+autoload, "yeti_gsl.i", gsl_sf_bessel_yl;
+autoload, "yeti_gsl.i", gsl_sf_bessel_i0_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_i1_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_i2_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_il_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_k0_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_k1_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_k2_scaled;
+autoload, "yeti_gsl.i", gsl_sf_bessel_kl_scaled;
+autoload, "yeti_gsl.i", gsl_sf_clausen;
+autoload, "yeti_gsl.i", gsl_sf_dawson;
+autoload, "yeti_gsl.i", gsl_sf_debye_1;
+autoload, "yeti_gsl.i", gsl_sf_debye_2;
+autoload, "yeti_gsl.i", gsl_sf_debye_3;
+autoload, "yeti_gsl.i", gsl_sf_debye_4;
+autoload, "yeti_gsl.i", gsl_sf_debye_5;
+autoload, "yeti_gsl.i", gsl_sf_debye_6;
+autoload, "yeti_gsl.i", gsl_sf_dilog;
+autoload, "yeti_gsl.i", gsl_sf_ellint_Kcomp;
+autoload, "yeti_gsl.i", gsl_sf_ellint_Ecomp;
+autoload, "yeti_gsl.i", gsl_sf_erf;
+autoload, "yeti_gsl.i", gsl_sf_erfc;
+autoload, "yeti_gsl.i", gsl_sf_log_erfc;
+autoload, "yeti_gsl.i", gsl_sf_erf_Z;
+autoload, "yeti_gsl.i", gsl_sf_erf_Q;
+autoload, "yeti_gsl.i", gsl_sf_hazard;
+autoload, "yeti_gsl.i", gsl_sf_exp;
+autoload, "yeti_gsl.i", gsl_sf_expm1;
+autoload, "yeti_gsl.i", gsl_sf_exprel;
+autoload, "yeti_gsl.i", gsl_sf_exprel_2;
+autoload, "yeti_gsl.i", gsl_sf_exprel_n;
+autoload, "yeti_gsl.i", gsl_sf_log;
+autoload, "yeti_gsl.i", gsl_sf_log_abs;
+autoload, "yeti_gsl.i", gsl_sf_log_1plusx;
+autoload, "yeti_gsl.i", gsl_sf_log_1plusx_mx;
+autoload, "yeti_gsl.i", gsl_sf_expint_E1;
+autoload, "yeti_gsl.i", gsl_sf_expint_E2;
+autoload, "yeti_gsl.i", gsl_sf_expint_Ei;
+autoload, "yeti_gsl.i", gsl_sf_expint_3;
+autoload, "yeti_gsl.i", gsl_sf_Shi;
+autoload, "yeti_gsl.i", gsl_sf_Chi;
+autoload, "yeti_gsl.i", gsl_sf_Si;
+autoload, "yeti_gsl.i", gsl_sf_Ci;
+autoload, "yeti_gsl.i", gsl_sf_atanint;
+autoload, "yeti_gsl.i", gsl_sf_fermi_dirac_m1;
+autoload, "yeti_gsl.i", gsl_sf_fermi_dirac_0;
+autoload, "yeti_gsl.i", gsl_sf_fermi_dirac_1;
+autoload, "yeti_gsl.i", gsl_sf_fermi_dirac_2;
+autoload, "yeti_gsl.i", gsl_sf_fermi_dirac_mhalf;
+autoload, "yeti_gsl.i", gsl_sf_fermi_dirac_half;
+autoload, "yeti_gsl.i", gsl_sf_fermi_dirac_3half;
+autoload, "yeti_gsl.i", gsl_sf_fermi_dirac_int;
+autoload, "yeti_gsl.i", gsl_sf_gamma;
+autoload, "yeti_gsl.i", gsl_sf_lngamma;
+autoload, "yeti_gsl.i", gsl_sf_gammastar;
+autoload, "yeti_gsl.i", gsl_sf_gammainv;
+autoload, "yeti_gsl.i", gsl_sf_taylorcoeff;
+autoload, "yeti_gsl.i", gsl_sf_lambert_W0;
+autoload, "yeti_gsl.i", gsl_sf_lambert_Wm1;
+autoload, "yeti_gsl.i", gsl_sf_legendre_P1;
+autoload, "yeti_gsl.i", gsl_sf_legendre_P2;
+autoload, "yeti_gsl.i", gsl_sf_legendre_P3;
+autoload, "yeti_gsl.i", gsl_sf_legendre_Pl;
+autoload, "yeti_gsl.i", gsl_sf_legendre_Q0;
+autoload, "yeti_gsl.i", gsl_sf_legendre_Q1;
+autoload, "yeti_gsl.i", gsl_sf_legendre_Ql;
+autoload, "yeti_gsl.i", gsl_sf_synchrotron_1;
+autoload, "yeti_gsl.i", gsl_sf_synchrotron_2;
+autoload, "yeti_gsl.i", gsl_sf_transport_2;
+autoload, "yeti_gsl.i", gsl_sf_transport_3;
+autoload, "yeti_gsl.i", gsl_sf_transport_4;
+autoload, "yeti_gsl.i", gsl_sf_transport_5;
+autoload, "yeti_gsl.i", gsl_sf_sin;
+autoload, "yeti_gsl.i", gsl_sf_cos;
+autoload, "yeti_gsl.i", gsl_sf_sinc;
+autoload, "yeti_gsl.i", gsl_sf_lnsinh;
+autoload, "yeti_gsl.i", gsl_sf_lncosh;
+autoload, "yeti_gsl.i", gsl_sf_zeta;
+autoload, "yeti_gsl.i", gsl_sf_zetam1;
+autoload, "yeti_gsl.i", gsl_sf_eta;
--- /dev/null
+++ b/yeti_regex/yeti_regex_start.i
@@ -0,0 +1,5 @@
+autoload, "yeti_regex.i";
+autoload, "yeti_regex.i", regcomp;
+autoload, "yeti_regex.i", regmatch;
+autoload, "yeti_regex.i", regsub;
+autoload, "yeti_regex.i", regmatch_part;
--- /dev/null
+++ b/yeti_tiff/yeti_tiff_start.i
@@ -0,0 +1,8 @@
+autoload, "yeti_tiff.i";
+autoload, "yeti_tiff.i", tiff_open;
+autoload, "yeti_tiff.i", tiff_debug;
+autoload, "yeti_tiff.i", tiff_read_pixels;
+autoload, "yeti_tiff.i", tiff_read_image;
+autoload, "yeti_tiff.i", tiff_read_directory;
+autoload, "yeti_tiff.i", tiff_read;
+autoload, "yeti_tiff.i", tiff_check;
--- a/yeti/Makefile
+++ b/yeti/Makefile
@@ -89,10 +89,14 @@
 PKG_CLEAN=$(PKG_NAME)$(PLUG_SFX) $(PKG_NAME).dll $(PKG_NAME).so
 
 # autoload file for this package, if any
-PKG_I_START=
+PKG_I_START=zzyeti_start.i yeti_yhdf_start.i
 # non-pkg.i include files for this package, if any
 PKG_I_EXTRA=yeti_yhdf.i
 
+# optional prerequisites for all:
+# yeti_start.i needs to be generated during "make"
+ALL_TARGETS=zzyeti_start.i
+
 #-------------------------------------- standard targets and rules (in Makepkg)
 
 # set macros Makepkg uses in target and dependency names
@@ -136,6 +140,18 @@
 yeti_utils.o: yeti.h ../config.h
 #yeti_new.o:
 
+zz$(PKG_NAME)_start.i:
+	echo '// cancel emulation layer' > $@
+	echo 'autoload, "emulate-yeti.i";' >> $@
+	echo '// there may be another instance in the path, hide it' >> $@
+	echo 'autoload, "$(PKG_I)";' >> $@
+	echo '// YETI functions may move to Yorick. Be forward-compatible' >> $@
+	grep "^func " $(PKG_I) | awk '{print $$2}' | awk -F\( '{print  "if (!is_func(" $$1 ")) autoload, \"$(PKG_I)\", " $$1 ";"}' >> $@
+	grep "^extern " $(PKG_I) | awk '{print $$2}' | awk -F\; '{print  "if (!is_func(" $$1 ")) autoload, \"$(PKG_I)\", " $$1}' >> $@
+
+clean::
+	rm -f zzyeti_start.i
+
 #
 # Local Variables:
 # mode: Makefile
--- a/yeti_fftw/Makefile
+++ b/yeti_fftw/Makefile
@@ -36,7 +36,7 @@
 PKG_CLEAN=
 
 # autoload file for this package, if any
-PKG_I_START=
+PKG_I_START=yeti_fftw_start.i
 # non-pkg.i include files for this package, if any
 PKG_I_EXTRA=
 
--- a/yeti_gsl/Makefile
+++ b/yeti_gsl/Makefile
@@ -36,7 +36,7 @@
 PKG_CLEAN=cmp.tmp1 cmp.tmp2
 
 # autoload file for this package, if any
-PKG_I_START=
+PKG_I_START=yeti_gsl_start.i
 # non-pkg.i include files for this package, if any
 PKG_I_EXTRA=
 
--- a/yeti_regex/Makefile
+++ b/yeti_regex/Makefile
@@ -36,7 +36,7 @@
 PKG_CLEAN=
 
 # autoload file for this package, if any
-PKG_I_START=
+PKG_I_START=yeti_regex_start.i
 # non-pkg.i include files for this package, if any
 PKG_I_EXTRA=
 
--- a/yeti_tiff/Makefile
+++ b/yeti_tiff/Makefile
@@ -36,7 +36,7 @@
 PKG_CLEAN=
 
 # autoload file for this package, if any
-PKG_I_START=
+PKG_I_START=yeti_tiff_start.i
 # non-pkg.i include files for this package, if any
 PKG_I_EXTRA=
 
--- /dev/null
+++ b/yeti/yeti_yhdf_start.i
@@ -0,0 +1,3 @@
+autoload, "yeti_yhdf.i";
+autoload, "yeti_yhdf.i", yhd_save, yhd_check, yhd_info, yhd_restore;
+
